Es 03 Rogue Game

- init of structures
- not done
- tests not done
This commit is contained in:
2024-04-30 19:09:54 +02:00
parent 03ccf0e733
commit a5a6045ee3
8 changed files with 429 additions and 0 deletions

42
src/es03_game.rs Normal file
View File

@@ -0,0 +1,42 @@
#![allow(unused)]
/** 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;