void CreaTabellone() { Caselle = new Casella[40]; Caselle[0] = new Speciali("Via!", Tipo_Speciali.Tassa, -20000); Caselle[1] = new Proprieta(Brushes.Brown, "Vicolo Corto", 6000, false); Caselle[2] = new Speciali("Probabilità", Tipo_Speciali.Probabilita, 0); Caselle[3] = new Proprieta(Brushes.Brown, "Vicolo Stretto", 6000, false); Caselle[4] = new Speciali("Tassa Patrimoniale", Tipo_Speciali.Tassa, 20000); Caselle[5] = new Proprieta(Brushes.Black, "Stazione Sud", 20000, true); Caselle[6] = new Proprieta(Brushes.LightBlue, "Bastioni Gran Sasso", 10000, false); Caselle[7] = new Speciali("Imprevisti", Tipo_Speciali.Imprevisti, 0); Caselle[8] = new Proprieta(Brushes.LightBlue, "Viale Monterosa", 10000, false); Caselle[9] = new Proprieta(Brushes.LightBlue, "Viale Vesuvio", 12000, false); Caselle[10] = new Speciali("InPrigione / Transito", Tipo_Speciali.Parcheggio, 0); Caselle[11] = new Proprieta(Brushes.Purple, "Via Accademia", 14000, false); Caselle[12] = new Proprieta(Brushes.Yellow, "Società Elettrica", 15000, true); Caselle[13] = new Proprieta(Brushes.Purple, "Corso Ateneo", 14000, false); Caselle[14] = new Proprieta(Brushes.Purple, "Piazza Università", 16000, false); Caselle[15] = new Proprieta(Brushes.Black, "Stazione Ovest", 20000, true); Caselle[16] = new Proprieta(Brushes.Orange, "Via Verdi", 18000, false); Caselle[17] = new Speciali("Probabilità", Tipo_Speciali.Probabilita, 0); Caselle[18] = new Proprieta(Brushes.Orange, "Corso Raffaello", 18000, false); Caselle[19] = new Proprieta(Brushes.Orange, "Piazza Dante", 20000, false); Caselle[20] = new Speciali("Parcheggio", Tipo_Speciali.Parcheggio, 0); Caselle[21] = new Proprieta(Brushes.Red, "Via Marco Polo", 22000, false); Caselle[22] = new Speciali("Imprevisti", Tipo_Speciali.Imprevisti, 0); Caselle[23] = new Proprieta(Brushes.Red, "Corso Magellano", 22000, false); Caselle[24] = new Proprieta(Brushes.Red, "Largo Colombo", 24000, false); Caselle[25] = new Proprieta(Brushes.Black, "Stazione Nord", 20000, true); Caselle[26] = new Proprieta(Brushes.Yellow, "Viale Costantino", 26000, false); Caselle[27] = new Proprieta(Brushes.Yellow, "Viale Traiano", 26000, false); Caselle[28] = new Proprieta(Brushes.Yellow, "Società Acqua Potabile", 15000, true); Caselle[29] = new Proprieta(Brushes.Yellow, "Piazza Giulio Cesare", 28000, false); Caselle[30] = new Speciali("In InPrigione!", Tipo_Speciali.Prigione, 0); Caselle[31] = new Proprieta(Brushes.Green, "Via Roma", 30000, false); Caselle[32] = new Proprieta(Brushes.Green, "Corso Impero", 30000, false); Caselle[33] = new Speciali("Probabilità", Tipo_Speciali.Probabilita, 0); Caselle[34] = new Proprieta(Brushes.Green, "Largo Augusto", 32000, false); Caselle[35] = new Proprieta(Brushes.Black, "Stazione Est", 20000, true); Caselle[36] = new Speciali("Imprevisti", Tipo_Speciali.Imprevisti, 0); Caselle[37] = new Proprieta(Brushes.Blue, "Viale Dei Giardini", 35000, false); Caselle[38] = new Speciali("Tassa di Lusso", Tipo_Speciali.Tassa, 10000); Caselle[39] = new Proprieta(Brushes.Blue, "Parco Della Vittoria", 40000, false); for (int i = 0; i < Giocatori.Length; i++) { Ellipse Pedina = Giocatori[i].Pedina; Griglia_Principale.Children.Add(Pedina); } }
private void PassaTurno(object sender, RoutedEventArgs e) { if (Passato) { int Risultato = R.Next(1, 7) + R.Next(1, 7); MessageBox.Show(Risultato.ToString()); if (Giocatori[Turno].InPrigione > 0 && Risultato < 12) { if (Giocatori[Turno].InPrigione == 1) { Giocatori[Turno].Soldi -= 5000; } Giocatori[Turno].InPrigione--; } else { Giocatori[Turno].SetPosizione(Risultato, Turno, false); if (Giocatori[Turno].Posizione >= Caselle.Length) { Giocatori[Turno].Soldi += 20000; } if (Caselle[Giocatori[Turno].Posizione] is Speciali) { Speciali Casella = (Speciali)Caselle[Giocatori[Turno].Posizione]; switch (Casella.Tipo) { case Tipo_Speciali.Tassa: Giocatori[Turno].Soldi -= Casella.Tassa_Costo; break; case Tipo_Speciali.Prigione: if (Giocatori[Turno].BigliettoPrigione > 0) { MessageBox.Show("Usi il biglietto per saltare la prigione"); Giocatori[Turno].BigliettoPrigione--; Giocatori[Turno].SetPosizione(10, Turno, true); } else { MessageBox.Show("Vai in Prigione!"); Giocatori[Turno].InPrigione = 3; Giocatori[Turno].SetPosizione(10, Turno, true); } break; case Tipo_Speciali.Probabilita: switch (Probabilita[0].Tipo) { case Tipo_Probabilita.SpostaCasella: Giocatori[Turno].SetPosizione(Probabilita[0].Spostamento, Turno, true); Carta.Scorri(ref Probabilita); break; case Tipo_Probabilita.SpostaNumero: Giocatori[Turno].SetPosizione(Probabilita[0].Spostamento, Turno, false); Carta.Scorri(ref Probabilita); break; case Tipo_Probabilita.Tassa: Giocatori[Turno].Soldi += Probabilita[0].Pagamento; Carta.Scorri(ref Probabilita); break; case Tipo_Probabilita.TassaGlobale: foreach (Giocatore G in Giocatori) { if (G != Giocatori[Turno]) { G.Soldi -= Probabilita[0].Pagamento; } else { G.Soldi += Probabilita[0].Pagamento * (Giocatori.Length - 1); } } Carta.Scorri(ref Probabilita); break; case Tipo_Probabilita.UscitaPrigione: Giocatori[Turno].BigliettoPrigione++; Carta.RimuoviPrigione(ref Probabilita); Carta.Scorri(ref Probabilita); break; } break; } } if (Caselle[Giocatori[Turno].Posizione] is Proprieta) { Proprieta ProprietaCorrente = (Proprieta)Caselle[Giocatori[Turno].Posizione]; ProprietaCorrente.Rendita(Giocatori[Turno]); } } Passato = false; } else { bool ForzaVendita = false; if (Giocatori[Turno].Soldi < 0) { if (Giocatori[Turno].Proprieta.Count > 0) { MessageBox.Show("Non puoi passare perchè andresti in bancarotta, vendi qualcosa!"); ForzaVendita = true; } else { MessageBox.Show("Il Giocatore " + (Turno + 1) + " è andato in bancarotta!"); Giocatori[Turno].InGioco = false; } } if (!ForzaVendita) { do { Turno++; if (Turno == Giocatori.Length) { Turno = 0; } }while (!Giocatori[Turno].InGioco); Passato = true; MessageBox.Show("E' il turno del Giocatore " + (Turno + 1)); } } Menu_Azioni.Visibility = Visibility.Collapsed; AggiornaInterfaccia(); }