Winner of the Best Frontend in the challenge!
Frontend
Valinta: Svelte
Miksi: Mielenkiinto kyseistä frameworkkiä kohtaan.
CI/CD
Valinta: Vercel
Miksi: Ilmainen hostaus, kokemus aiemmista omista projekteista
"Backend"
Valinta: Json tiedosto githubista
Miksi: Laiskuus, ajanpuute
Livenä osoitteessa: https://koodihaaste-2022.vercel.app/
- Kloonaa repo koneellesi
- Aja npm install & npm run dev ratkaisun lähdekansiossa ./foodfighters
Tappelevat ruoat ovat valittavissa kymmenestä eri vaihtoehdosta, pienistä mustikoista aina pitsaan asti.
Pelilogiikka pyörii täysin käyttäjän päädyssä.
Ruokatiedot on koostettu valmiiksi fruits.json tiedostoon, hyödyntäen Finelin elintarviketietokantaa. Tiedoissa on otettu ruoan arvot / 100g. Perusarvot on pyöristetty lähimpiin lukuihin.
Sovelluksen esimerkkikäyttö:
- Käyttäjä avaa sivun
- Käyttäjä valitsee itselleen "Championit"
- Käyttäjä voi säätää Settings-painikkeen takaa taistelun nopeutta, ja lukemaan samalla kuvakkeiden selvitykset
- Käyttäjä painaa FIGHT! - painiketta, joka käynnistää tappelun
- Tulokset ilmestyvät BATTLE LOG - osioon sitä mukaa kun tappelu etenee
- Tappelun päätyttyä pelin voi käynnistää uudestaan samoilla tai uusilla valinnoilla
- 10 Food Championiä mistä valita
- Rajattomat pelikerrat
- Game speed - Säädä pelin kellon nopeutta haluamaasi välillä 10ms-1s
- Darkmode - Nyt myös tyylit yökukkujille, joilla on refers-color-scheme: dark käytössä
- Battle log type - Haluatko taistelulogin koko pötkönä vai rajattuna
- Automatic scrolling - Rullataanko viimeisimpään tapahtumaan automaattisesti
Tehtävänanto:
Tehtävänäsi on toteuttaa ruokarähinä teemainen taistelu, jossa ruoat taistelevat keskenään erilaisilla statseilla.
Tehtävän toteutusta varten sinun tulee hakea eri ruokien ravintosisällöt ja toteuttaa näistä statsit, joiden perusteella ruoat taistelevat keskenään.
Toteutuksessa käytettävät teknologiat ovat vapaasti päätettävissäsi, ja voit toteuttaa tehtävän frontend-, backend- tai fullstack-toteutuksena (kts. palkintoluokat)
Sovelluksessa tulee olla seuraavat toiminnot:
- Eri ravintosisältöjen haku ulkoisesta lähteestä (esim. Fineli API tai jokin muu vastaava kuten CSV-tiedosto)
- Ravintosisältöjen muuntaminen hahmoluokkiin
- Logiikan toteutus kahden ruokahahmon väliseen kaksintaisteluun
- Tulosten esitys tekstimuotoisena rajapinta vastauksena tai visuaalisesti Frontendilla
Statsit:
Perus statsit täytyy löytyä ja olla kaavan mukaan. On kuitenkin lupa lisätä taisteluihin satunnaisuutta.