This shows you the differences between two versions of the page.
|
pp:21:teme:target-search [2021/04/15 09:23] bot.pp |
pp:21:teme:target-search [2021/05/07 13:06] (current) bot.pp |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Haskell: Mobile target search ====== | ====== Haskell: Mobile target search ====== | ||
| - | * Deadline soft: 11.05.2021 | + | * Deadline soft: 16.05.2021 |
| * Deadline hard: 16.05.2021 | * Deadline hard: 16.05.2021 | ||
| * Data publicării: 14.04.2021 | * Data publicării: 14.04.2021 | ||
| - | * Data ultimei modificări: 15.04.2021 | + | * Data ultimei modificări: 23.04.2021 |
| * [[https://curs.upb.ro/mod/forum/view.php?id=267787|Forum temă]] | * [[https://curs.upb.ro/mod/forum/view.php?id=267787|Forum temă]] | ||
| * vmchecker (în curând) | * vmchecker (în curând) | ||
| Line 85: | Line 85: | ||
| Elementele care compun jocul, regulile de mutare și afișarea, se vor implementa în fișierul ''%%Basics.hs%%''. Va trebui să completați propriile definiții pentru tipurile de date și funcțiile din fișier, urmărind TODO-urile. | Elementele care compun jocul, regulile de mutare și afișarea, se vor implementa în fișierul ''%%Basics.hs%%''. Va trebui să completați propriile definiții pentru tipurile de date și funcțiile din fișier, urmărind TODO-urile. | ||
| - | Reprezentarea stării jocului sub formă de șir de caractere, în vederea afișării la consolă și a testării, va fi realizată definind funcția ''%%show :: Game -> String%%'', și va lua forma din diagramele de mai sus. | + | Reprezentarea stării jocului sub formă de șir de caractere, în vederea afișării la consolă și a testării, va fi realizată definind funcția ''%%gameAsString :: Game -> String%%'' (sinonim pentru funcția predefinită ''%%show%%''), și va lua forma din diagramele de mai sus. |
| Odată definite tipurile și funcțiile de mai sus, puteți citi indicațiile din secțiunea de **Rulare interactivă**, pentru a da comenzi de la tastatură //hunter//-ului. | Odată definite tipurile și funcțiile de mai sus, puteți citi indicațiile din secțiunea de **Rulare interactivă**, pentru a da comenzi de la tastatură //hunter//-ului. | ||
| Line 117: | Line 117: | ||
| </code> | </code> | ||
| - | Găsiți un tutorial de utilizare a celor două module în fișierul ''%%DemoSetPSQueue.hs%%''. | + | Găsiți un **tutorial** de utilizare a celor două module în fișierul ''%%DemoSetPSQueue.hs%%''. |
| Dacă, totuși, interpretorul generează eroare din cauză că nu găsește ultimul modul, puteți edita fișierul ''%%stack.yaml%%'' din instalarea ''%%stack%%'' și adăuga linia: | Dacă, totuși, interpretorul generează eroare din cauză că nu găsește ultimul modul, puteți edita fișierul ''%%stack.yaml%%'' din instalarea ''%%stack%%'' și adăuga linia: | ||
| Line 123: | Line 123: | ||
| <code> | <code> | ||
| extra-deps: [PSQueue-1.1.0.1] | extra-deps: [PSQueue-1.1.0.1] | ||
| + | |||
| + | </code> | ||
| + | O alternativă ar fi opțiunea ''%%--package%%''. Exemplu: | ||
| + | |||
| + | <code> | ||
| + | > stack exec ghci --package PSQueue TestMTS.hs | ||
| </code> | </code> | ||
| ==== Detalii și constrângeri de implementare ==== | ==== Detalii și constrângeri de implementare ==== | ||
| - | * **Atenție!** Funcțiile ''%%show%%'', ''%%successors%%'', ''%%suitableSuccs%%'', ''%%insertSuccs%%'' și ''%%extractPath%%'' trebuie implementate **fără recursivitate explicită**. Nerespectarea acestei cerințe va conduce la **penalizări** de 2p din 100 per funcție. | + | * **Atenție!** Funcțiile ''%%gameAsString%%'', ''%%successors%%'', ''%%suitableSuccs%%'', ''%%insertSuccs%%'' și ''%%extractPath%%'' trebuie implementate **fără recursivitate explicită**. Nerespectarea acestei cerințe va conduce la **penalizări** de 2p din 100 per funcție. |
| * Utilizați, pe cât posibil, **funcționale** și //**list comprehensions**//. | * Utilizați, pe cât posibil, **funcționale** și //**list comprehensions**//. | ||
| * Exploatați cu încredere **//pattern matching// și gărzi**, în locul //if//-urilor imbricate. | * Exploatați cu încredere **//pattern matching// și gărzi**, în locul //if//-urilor imbricate. | ||
| Line 154: | Line 160: | ||
| ===== Changelog ===== | ===== Changelog ===== | ||
| - | * 15.04 (ora 9:22) - Actualizare schelet | + | * 23.04 (ora 15:35) - Adăugare constrângere ''%%extractPath%%'' |
| + | * 22.04 (ora 18:00) - Corectură la subtestul ''%%advanceGame 6%%'' | ||
| + | * 20.04 (ora 15:28) - Modificare mică pentru testarea ''%%suitableSuccs%%'' | ||
| + | * 16.04 (ora 10:15) - Clarificată distincția dintre funcțiile ''%%gameAsString%%'' și ''%%show%%''. | ||
| + | * 16.04 (ora 00:12) - Mențiune rulare. | ||
| + | * 15.04 (ora 09:22) - Actualizare schelet. | ||