Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ***** GIOCO
- package corso.java;
- public class Program {
- /*
- * Data una griglia di gioco di 20 x 20 celle creare un gioco in cui un
- * cacciatore H catturi n prede T che ad ogni iterazione di gioco si spostano
- * casualmente di una cella. Il cacciatore può spostarsi anche lui di una cella
- * adiacente alla sua posizione ad ogni iterazione.
- *
- */
- static char muoviCacciatore() {
- return new java.util.Scanner(System.in).next().charAt(0);
- }
- // funzionamento del gioco
- static void gioca() {
- // creo l'area di gioco
- AreaGioco gioco = new AreaGioco();
- Cacciatore cacciatore = new Cacciatore("Player1");
- Preda preda = new Preda();
- // iterazione fino a che le prede sono terminate
- boolean partitaincorso = true;
- while (partitaincorso) {
- // posiziono il cacciatore
- gioco.posizioneCacciatore(cacciatore.getX(), cacciatore.getY());
- // posiziono la prede
- gioco.posizionePreda(preda.getX(), preda.getY());
- gioco.stampaGriglia();
- // sposto la prede
- preda.sposta();
- // sposto il cacciatore
- System.out.print("Dove vuoi andare? ");
- cacciatore.spostati(muoviCacciatore());
- // controllo se ha catturato la preda
- if (cacciatore.getX() == preda.getX() && cacciatore.getY() == preda.getY())
- partitaincorso = false;
- // torno ad iterare
- }
- // quando il gioco è terminato
- gioco.stampaGriglia();
- System.out.println("Hai vinto");
- // mostro le statistiche
- }
- public static void main(String[] args) {
- gioca();
- }
- }
- *** CACCIATORE
- package corso.java;
- /*
- Cacciatore
- è un elemento del gioco caratterizzato
- da una sua rappresentazione in griglia
- e da una posizione occupata
- Il cacciatore sarà il giocatore, quindi
- avrà un nome e potrà posizionarsi su una
- cella dell'area di gioco.
- Cacciatore
- nome
- x
- y
- */
- public class Cacciatore {
- private String nome;
- private int x;
- private int y;
- public Cacciatore(String n) {
- nome = n;
- x = 10;
- y = 10;
- }
- public String getNome() {
- return nome;
- }
- public int getX() {
- return x;
- }
- public int getY() {
- return y;
- }
- public void spostati(char dove) {
- if (dove == 'n' || dove == 'N')
- y -= 1;
- else if (dove == 'o' || dove == 'O')
- x += 1;
- else if (dove == 's' || dove == 'S')
- y += 1;
- else if (dove == 'e' || dove == 'E')
- x -= 1;
- }
- }
- ***** AREA DI GIOCO
- package corso.java;
- /*
- Area di gioco
- l'area di gioco è una [griglia 20x20]
- in cui posizionare opportunamente
- [prede] e [cacciatori]...
- Variabili di stato:
- griglia
- */
- public class AreaGioco {
- private char[][] griglia; // griglia di gioco (il carattere da visualizzare a video)
- // posizione del cacciatore
- private int cacciatorex;
- private int cacciatorey;
- // posizione della preda
- private int predax;
- private int preday;
- // comunica la posizione del cacciatore
- public void posizioneCacciatore(int x, int y) {
- cacciatorex = x;
- cacciatorey = y;
- }
- // comunica la posizione della preda
- public void posizionePreda(int x, int y) {
- predax = x;
- preday = y;
- }
- // costruiamo l'area di gioco
- public AreaGioco() {
- // inizializzazione della griglia...
- griglia = new char[20][];
- for (int contarighe = 0; contarighe < 20; ++contarighe) {
- griglia[contarighe] = new char[20];
- for (int contacolonne = 0; contacolonne < 20; ++contacolonne)
- griglia[contarighe][contacolonne] = '.';
- }
- }
- // stampa la griglia di gioco
- public void stampaGriglia() {
- for (int riga = 0; riga < 20; ++riga) {
- for (int colonna = 0; colonna < 20; ++colonna) {
- if (riga == preday && colonna == predax)
- System.out.print('@');
- else if (riga == cacciatorey && colonna == cacciatorex)
- System.out.print('H');
- else
- System.out.print(griglia[riga][colonna]);
- }
- System.out.println();
- }
- }
- }
- **** PREDA
- package corso.java;
- import java.util.Random;
- /*
- Preda
- è un elemento del gioco caratterizzato
- da una sua rappresentazione in griglia
- e da una posizione occupata
- */
- public class Preda {
- private int x;
- private int y;
- public int getX() {return x; }
- public int getY() { return y;}
- public Preda() {
- Random rnd = new Random();
- x = rnd.nextInt(20);
- y = rnd.nextInt(20);
- }
- public void sposta() {
- int dir = new Random().nextInt(4);
- if (dir == 0)
- x += 1;
- else if (dir == 1)
- x -= 1;
- else if (dir == 2)
- y += 1;
- else if (dir == 3)
- y -= 1;
- if (x < 0) x = 19;
- if (x > 19) x = 0;
- if (y > 19) y = 0;
- if (y < 0) y = 19;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement