Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Solitario - Scacchiera.cs

Scacchiera.cs

Caricato da: Poggi Marco
Scarica il programma completo

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Azzera
  8. {
  9.     class Scacchiera
  10.     {
  11.         private const int MAXCOLONNA = 3;
  12.         private const int ELEMENTI = 9;
  13.         private const int MAXVALORE = 5;
  14.         private int[] tabella = null;
  15.         private int mani;
  16.  
  17.         public Scacchiera()
  18.         {
  19.             tabella = new int[ELEMENTI];
  20.             Random dado = new Random();
  21.             for (int i=0; i < ELEMENTI; i++)
  22.             {
  23.                 tabella[i] = dado.Next(MAXVALORE + 1);
  24.             }
  25.             mani = 0;
  26.         }
  27.  
  28.         public override string ToString()
  29.         {
  30.             StringBuilder esito = new StringBuilder(250);
  31.             for (int i = 0; i < ELEMENTI; i++)
  32.             {
  33.                 esito.AppendFormat("|{0,4}", tabella[i]);
  34.                 if (((i + 1) % MAXCOLONNA) == 0)
  35.                     esito.Append("|\n");
  36.             }
  37.             return esito.ToString();
  38.         }
  39.  
  40.         public int Mano()
  41.         {
  42.             return mani;
  43.         }
  44.  
  45.         public bool Mossa(char lettera)
  46.         {
  47.             int riga=0, colonna=0;
  48.             switch (char.ToLower(lettera))
  49.             {
  50.                 case 'q':
  51.                         riga = 0;
  52.                         colonna = 0;
  53.                         break;
  54.                 case 'w':
  55.                     riga = 0;
  56.                     colonna = 1;
  57.                     break;
  58.                 case 'e':
  59.                     riga = 0;
  60.                     colonna = 2;
  61.                     break;
  62.                 case 'a':
  63.                     riga = 1;
  64.                     colonna = 0;
  65.                     break;
  66.                 case 's':
  67.                     riga = 1;
  68.                     colonna = 1;
  69.                     break;
  70.                 case 'd':
  71.                     riga = 1;
  72.                     colonna = 2;
  73.                     break;
  74.                 case 'z':
  75.                     riga = 2;
  76.                     colonna = 0;
  77.                     break;
  78.                 case 'x':
  79.                     riga = 2;
  80.                     colonna = 1;
  81.                     break;
  82.                 case 'c':
  83.                     riga = 2;
  84.                     colonna = 2;
  85.                     break;
  86.                 default:
  87.                     return false;
  88.             }
  89.             Incrementa(riga, colonna);
  90.             mani++;
  91.             return true;
  92.         }
  93.  
  94.         private void Incrementa(int riga, int colonna)
  95.         {
  96.             int posizione;
  97.             for (int i = 0; i < MAXCOLONNA; i++)
  98.             {
  99.                 if (i != colonna)
  100.                 {
  101.                     posizione = riga * MAXCOLONNA + i;
  102.                     tabella[posizione] = (tabella[posizione] + 1) % (MAXVALORE + 1);
  103.                 }
  104.             }
  105.             for (int i=0; i<MAXCOLONNA; i++)
  106.             {
  107.                 posizione = i * MAXCOLONNA + colonna;
  108.                 tabella[posizione] = (tabella[posizione] + 1) % (MAXVALORE + 1);
  109.             }
  110.         }
  111.  
  112.         public bool FineGioco()
  113.         {
  114.            foreach(int i in tabella)
  115.             {
  116.                 if (i != 0)
  117.                     return false;
  118.             }
  119.             return true;
  120.         }
  121.     }
  122. }