Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
        }