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++; } } }
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 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(); }
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(); }
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(); } }
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; } }
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; } } } }
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(); }