Advertisement
NelloRizzo

Gioco del Cacciatore

Nov 30th, 2018
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.51 KB | None | 0 0
  1. ***** GIOCO
  2. package corso.java;
  3.  
  4. public class Program {
  5.  
  6.     /*
  7.      * Data una griglia di gioco di 20 x 20 celle creare un gioco in cui un
  8.      * cacciatore H catturi n prede T che ad ogni iterazione di gioco si spostano
  9.      * casualmente di una cella. Il cacciatore può spostarsi anche lui di una cella
  10.      * adiacente alla sua posizione ad ogni iterazione.
  11.      *
  12.      */
  13.  
  14.     static char muoviCacciatore() {
  15.         return new java.util.Scanner(System.in).next().charAt(0);
  16.     }
  17.     // funzionamento del gioco
  18.     static void gioca() {
  19.         // creo l'area di gioco
  20.         AreaGioco gioco = new AreaGioco();
  21.         Cacciatore cacciatore = new Cacciatore("Player1");
  22.         Preda preda = new Preda();
  23.         // iterazione fino a che le prede sono terminate
  24.         boolean partitaincorso = true;
  25.         while (partitaincorso) {
  26.             // posiziono il cacciatore
  27.             gioco.posizioneCacciatore(cacciatore.getX(), cacciatore.getY());
  28.             // posiziono la prede
  29.             gioco.posizionePreda(preda.getX(), preda.getY());
  30.             gioco.stampaGriglia();
  31.             // sposto la prede
  32.             preda.sposta();
  33.             // sposto il cacciatore
  34.             System.out.print("Dove vuoi andare? ");
  35.             cacciatore.spostati(muoviCacciatore());
  36.             // controllo se ha catturato la preda
  37.             if (cacciatore.getX() == preda.getX() && cacciatore.getY() == preda.getY())
  38.                 partitaincorso = false;
  39.             // torno ad iterare
  40.         }
  41.         // quando il gioco è terminato
  42.         gioco.stampaGriglia();
  43.         System.out.println("Hai vinto");
  44.         // mostro le statistiche
  45.     }
  46.  
  47.     public static void main(String[] args) {
  48.         gioca();
  49.     }
  50.  
  51. }
  52. *** CACCIATORE
  53. package corso.java;
  54.  
  55. /*
  56.     Cacciatore
  57.     è un elemento del gioco caratterizzato
  58.     da una sua rappresentazione in griglia
  59.     e da una posizione occupata
  60.    
  61.     Il cacciatore sarà il giocatore, quindi
  62.     avrà un nome e potrà posizionarsi su una
  63.     cella dell'area di gioco.
  64.    
  65.     Cacciatore
  66.         nome
  67.         x
  68.         y
  69.  */
  70. public class Cacciatore {
  71.     private String nome;
  72.     private int x;
  73.     private int y;
  74.  
  75.     public Cacciatore(String n) {
  76.         nome = n;
  77.         x = 10;
  78.         y = 10;
  79.     }
  80.  
  81.     public String getNome() {
  82.         return nome;
  83.     }
  84.  
  85.     public int getX() {
  86.         return x;
  87.     }
  88.  
  89.     public int getY() {
  90.         return y;
  91.     }
  92.  
  93.     public void spostati(char dove) {
  94.         if (dove == 'n' || dove == 'N')
  95.             y -= 1;
  96.         else if (dove == 'o' || dove == 'O')
  97.             x += 1;
  98.         else if (dove == 's' || dove == 'S')
  99.             y += 1;
  100.         else if (dove == 'e' || dove == 'E')
  101.             x -= 1;
  102.     }
  103. }
  104. ***** AREA DI GIOCO
  105. package corso.java;
  106.  
  107. /*
  108.     Area di gioco
  109.     l'area di gioco è una [griglia 20x20]
  110.     in cui posizionare opportunamente
  111.     [prede] e [cacciatori]...
  112.    
  113.     Variabili di stato:
  114.         griglia
  115.  */
  116. public class AreaGioco {
  117.     private char[][] griglia; // griglia di gioco (il carattere da visualizzare a video)
  118.     // posizione del cacciatore
  119.     private int cacciatorex;
  120.     private int cacciatorey;
  121.     // posizione della preda
  122.     private int predax;
  123.     private int preday;
  124.  
  125.     // comunica la posizione del cacciatore
  126.     public void posizioneCacciatore(int x, int y) {
  127.         cacciatorex = x;
  128.         cacciatorey = y;
  129.     }
  130.    
  131.     // comunica la posizione della preda
  132.     public void posizionePreda(int x, int y) {
  133.         predax = x;
  134.         preday = y;
  135.     }
  136.  
  137.     // costruiamo l'area di gioco
  138.     public AreaGioco() {
  139.         // inizializzazione della griglia...
  140.         griglia = new char[20][];
  141.         for (int contarighe = 0; contarighe < 20; ++contarighe) {
  142.             griglia[contarighe] = new char[20];
  143.             for (int contacolonne = 0; contacolonne < 20; ++contacolonne)
  144.                 griglia[contarighe][contacolonne] = '.';
  145.         }
  146.     }
  147.  
  148.     // stampa la griglia di gioco
  149.     public void stampaGriglia() {
  150.         for (int riga = 0; riga < 20; ++riga) {
  151.             for (int colonna = 0; colonna < 20; ++colonna) {
  152.                 if (riga == preday && colonna == predax)
  153.                     System.out.print('@');
  154.                 else if (riga == cacciatorey && colonna == cacciatorex)
  155.                     System.out.print('H');
  156.                 else
  157.                     System.out.print(griglia[riga][colonna]);
  158.             }
  159.             System.out.println();
  160.         }
  161.     }
  162. }
  163. **** PREDA
  164. package corso.java;
  165.  
  166. import java.util.Random;
  167.  
  168. /*
  169.     Preda
  170.     è un elemento del gioco caratterizzato
  171.     da una sua rappresentazione in griglia
  172.     e da una posizione occupata
  173.  */
  174. public class Preda {
  175.     private int x;
  176.     private int y;
  177.  
  178.     public int getX() {return x; }
  179.     public int getY() { return y;}
  180.     public Preda() {
  181.         Random rnd = new Random();
  182.         x = rnd.nextInt(20);
  183.         y = rnd.nextInt(20);
  184.     }
  185.  
  186.     public void sposta() {
  187.         int dir = new Random().nextInt(4);
  188.         if (dir == 0)
  189.             x += 1;
  190.         else if (dir == 1)
  191.             x -= 1;
  192.         else if (dir == 2)
  193.             y += 1;
  194.         else if (dir == 3)
  195.             y -= 1;
  196.         if (x < 0) x = 19;
  197.         if (x > 19) x = 0;
  198.         if (y > 19) y = 0;
  199.         if (y < 0) y = 19;
  200.     }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement