Exemple #1
0
        public WindowStrutture(Giocatore G, Proprieta Pr)
        {
            InitializeComponent();
            Corrente = G;
            int i = 0;

            Attive     = new List <Proprieta>();
            Temporanee = new List <Proprieta>();
            foreach (Proprieta P in Corrente.Proprieta)
            {
                if (P.Colore == Pr.Colore)
                {
                    Attive[i]     = P;
                    Temporanee[i] = new Proprieta(Brushes.Black, "", 0, false);
                    CheckBox C = new CheckBox();
                    C.Content             = P.Nome;
                    C.Background          = P.Colore;
                    C.Width               = 200;
                    C.Height              = 10;
                    C.HorizontalAlignment = HorizontalAlignment.Left;
                    C.VerticalAlignment   = VerticalAlignment.Top;
                    C.Checked            += CambioSelezione;
                    Stack_Proprieta.Children.Add(C);
                    i++;
                }
            }
        }
Exemple #2
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);
            }
        }
Exemple #3
0
        private void CompraProprieta(object sender, RoutedEventArgs e)
        {
            Proprieta        T        = (Proprieta)Caselle[Giocatori[Turno].Posizione];
            MessageBoxResult Risposta = MessageBox.Show("Comprare '" + T.Nome + "' per L." + T.Costo + "?", "Conferma", MessageBoxButton.OKCancel);

            if (Risposta.HasFlag(MessageBoxResult.OK))
            {
                if (!Giocatori[Turno].Compra(T))
                {
                    MessageBox.Show("Non hai abbastanza soldi");
                }
            }

            Menu_Azioni.Visibility = Visibility.Collapsed;
            AggiornaInterfaccia();
        }
Exemple #4
0
        private void CambiaSelezione(object sender, RoutedEventArgs e)
        {
            CheckBox  C = (CheckBox)sender;
            Proprieta P = (Proprieta)Corrente.Proprieta[Stack_Proprieta.Children.IndexOf(C)];

            if ((bool)C.IsChecked)
            {
                GuadagnoTotale += P.Costo / 2;
            }
            else
            {
                GuadagnoTotale += P.Costo / 2;
            }

            TextBox_Guadagno.Text = GuadagnoTotale.ToString();
        }
Exemple #5
0
        private void ConfermaIpoteca(object sender, RoutedEventArgs e)
        {
            MessageBoxResult Risposta = MessageBox.Show("Sei sicuro di voler ipotecare queste proprietà per L." + GuadagnoTotale + "?", "Conferma", MessageBoxButton.OKCancel);

            if (Risposta.HasFlag(MessageBoxResult.OK))
            {
                foreach (object O in Stack_Proprieta.Children)
                {
                    CheckBox  C = (CheckBox)O;
                    Proprieta P = (Proprieta)Corrente.Proprieta[Stack_Proprieta.Children.IndexOf(C)];
                    if ((bool)C.IsChecked)
                    {
                        Corrente.Vendi(P);
                    }
                }
                this.Close();
            }
        }
Exemple #6
0
        private void CambioSelezione(object sender, RoutedEventArgs e)
        {
            CheckBox C = (CheckBox)sender;

            foreach (CheckBox Ch in Stack_Proprieta.Children)
            {
                if (Ch != C)
                {
                    Ch.IsChecked = false;
                }
            }

            Proprieta P = (Proprieta)Temporanee[Stack_Proprieta.Children.IndexOf(C)];

            if ((bool)C.IsChecked)
            {
                Selezionata = P;
            }
        }
Exemple #7
0
        void AggiornaInterfaccia()
        {
            for (int i = 0; i < Giocatori.Length; i++)
            {
                TextBlockSoldi[i].Text = "";
            }

            StackPanel_ProprietaUtente.Children.Clear();

            for (int i = 0; i < Giocatori.Length; i++)
            {
                if (i == Turno)
                {
                    TextBlockSoldi[i].Text += "»Giocatore " + (i + 1) + " |" + Giocatori[i].Soldi;
                }
                else
                {
                    TextBlockSoldi[i].Text += "─Giocatore " + (i + 1) + " |" + Giocatori[i].Soldi;
                }

                if (Giocatori[i].InPrigione > 0)
                {
                    TextBlockSoldi[i].Text += " (In Prigione per " + Giocatori[i].InPrigione + " turni)" + Environment.NewLine;
                }
                else
                {
                    TextBlockSoldi[i].Text += Environment.NewLine;
                }
                TextBlockSoldi[i].Background = Brushes.DarkGray;
                if (i == Turno)
                {
                    TextBlockSoldi[i].Text += "»Giocatore " + (i + 1) + " |" + Giocatori[i].Soldi;
                }
                else
                {
                    TextBlockSoldi[i].Text += "─Giocatore " + (i + 1) + " |" + Giocatori[i].Soldi;
                }

                if (Giocatori[i].InPrigione > 0)
                {
                    TextBlockSoldi[i].Text += " (In Prigione per " + Giocatori[i].InPrigione + " turni)";
                }

                int Altezza_Prossima = 0;

                if (Giocatori[i].Proprieta.Count > 0)
                {
                    TextBlock R = new TextBlock();
                    R.TextAlignment       = TextAlignment.Left;
                    R.HorizontalAlignment = HorizontalAlignment.Left;
                    R.VerticalAlignment   = VerticalAlignment.Top;
                    R.Width  = 200;
                    R.Height = 44;
                    R.Margin = new Thickness(0, Altezza_Prossima, 0, 0);
                    R.Text   = Environment.NewLine + "Proprietà Giocatore " + (i + 1) + ":";
                    BrushConverter B = new BrushConverter();
                    R.Background = (Brush)B.ConvertFromString("#FFCDE7CE");
                    StackPanel_ProprietaUtente.Children.Add(R);

                    foreach (Proprieta P in Giocatori[i].Proprieta)
                    {
                        R.Height          = 22;
                        R.Margin          = new Thickness(0, Altezza_Prossima, 0, 0);
                        Altezza_Prossima += 2;
                        if (!P.Speciale)
                        {
                            R.Background = P.Colore;
                        }
                        else
                        {
                            R.Background = Brushes.DarkGray;
                        }

                        R.Text = P.Nome;
                        StackPanel_ProprietaUtente.Children.Add(R);
                    }

                    for (int c = 0; c < Giocatori[i].BigliettoPrigione; c++)
                    {
                        R.Height          = 22;
                        R.Margin          = new Thickness(0, Altezza_Prossima, 0, 0);
                        Altezza_Prossima += 2;
                        R.Background      = Brushes.Black;
                        R.Foreground      = Brushes.White;
                        R.Text            = "Uscita gratis di Prigione!";
                        StackPanel_ProprietaUtente.Children.Add(R);
                    }
                }
            }
            if (Passato)
            {
                Button_Scambia.IsEnabled         = true;
                Button_CompraProprieta.IsEnabled = false;
                Button_VendiProprieta.IsEnabled  = true;
                if (Giocatori[Turno].Proprieta.Count == 0)
                {
                    Button_VendiProprieta.IsEnabled = false;
                }
                Button_Passa.Content = "Avanza";
            }
            else
            {
                Button_Scambia.IsEnabled         = false;
                Button_CompraProprieta.IsEnabled = false;
                Button_VendiProprieta.IsEnabled  = true;
                if (Giocatori[Turno].Proprieta.Count == 0)
                {
                    Button_VendiProprieta.IsEnabled = false;
                }
                Button_Passa.Content = "Passa";

                if (Caselle[Giocatori[Turno].Posizione] is Proprieta)
                {
                    Proprieta ProprietaCorrente = (Proprieta)Caselle[Giocatori[Turno].Posizione];
                    if (ProprietaCorrente.Proprietario == null)
                    {
                        Button_CompraProprieta.IsEnabled = true;
                    }
                }
            }
        }
Exemple #8
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();
        }