Files
upo-rust/src/es03_game.rs
Berack96 a75aaa13c7 Documenting 03
- added docs for all things
- added methods for accessing entity stats
- refactored some names
2024-05-11 14:16:29 +02:00

42 lines
2.1 KiB
Rust

/** Es.3
* Implementare una libreria che permetta di realizzare il seguente gioco.
* Il Campo di gioco e' una matrice n x n di celle le celle sui 4 lati sono dei muri e all'interno le celle possono essere
* - vuote
* - contenere cibo (un intero positivo)
* - contenere un veleno (un intero positivo)
*
* Un Giocatore si muove in questa matrice iniziando da una posizione casuale. Il giocatore ha
* - Direzione in cui si muove: Su, Giu', Destra, Sinistra
* - Posizione nella matrice
* - una forza (un intero positivo)
*
* Quando si muove avanza di una posizione nella direzione in cui il giocatore si muove. Una Configurazione e'
* un campo di gioco, e un giocatore in una posizione del campo per questa struttura implementate il trait Display
*
* Il gioco inizia con una configurazione in cui nella matrice ci sono m caselle con cibo e m con veleno (in posizioni casuali), un giocatore in una cella libera e un numero massimo di mosse.
* Ad ogni iterazione: Si lancia una moneta (Testa o Croce) se
* - Testa il giocatore si muove di una posizione nella direzione in cui si sta muovendo
* - altrimenti sceglie casualmente una dell 4 direzioni e fa un passo in quella direzione.
*
* Se la cella in cui si finisce
* contiene cibo, si aggiunge la quantita' di cibo alla forza
* contiene veleno, si decrementa la quantita' di veleno dalla forza
* e' un muro il giocatore rimbalza, cioe' resta nella stessa posizione ma cambia la sua direzione nella direzione opposta.
*
* Il gioco finisce quando
* - il giocatore finisce la forza (cioe' questa diventerebbe un valore <=0) e in questo caso PERDE
* - raggiunge il numero massimo di mosse nel qual caso VINCE
*
* Per n, m, le quantità iniziali dei vari elementi (elemento, cibo, forza) e il numero massimo di mosse usate variabili che possano essere inserite dall'utente.
* Se volete potete anche cambiare le regole del gioco.
* Mettere main e definizioni in files separati (le definizioni in uno o più files) e scrivete i test in una directory a parte.
*/
pub mod floor;
pub mod game;
pub mod generator;
pub mod cell;
pub mod config;
pub mod entities;