/// <summary> /// Vaihtaa Kirjainlaattojen värit /// </summary> private static void VaihdaKirjainlaattojenVarit(List <UIElement> komponentit, List <SolidColorBrush> varit) { if (komponentit == null) { return; } Pelilauta lauta = (Pelilauta)komponentit[0]; KirjainlaattaHolder holder = (KirjainlaattaHolder)komponentit[1]; KirjainlaattaPussi pussi = (KirjainlaattaPussi)komponentit[2]; // pelilaudalla olevat foreach (Kirjainlaatta k in lauta.GetLaudalleLisatyt()) { k.ActiveFillColor = varit[0]; k.ActiveBorderColor = varit[1]; k.InactiveFillColor = varit[2]; k.InactiveBorderColor = varit[3]; } // KirjainlaattaHolderissa olevat foreach (Kirjainlaatta k in holder.GetKirjainlaatat()) { k.ActiveFillColor = varit[0]; k.ActiveBorderColor = varit[1]; k.InactiveFillColor = varit[2]; k.InactiveBorderColor = varit[3]; } // KirjainlaattaPussissa olevat foreach (Kirjainlaatta k in pussi.GetKirjainlaatat()) { k.ActiveFillColor = varit[0]; k.ActiveBorderColor = varit[1]; k.InactiveFillColor = varit[2]; k.InactiveBorderColor = varit[3]; } }
/// <summary> /// Palauttaa listan komponenteista jotka sisältävät Kirjainlaattoja /// </summary> /// <param name="mainWindow">ohjelman pääikkuna</param> /// <returns>lista Kirjainlaattoja sisältävistä komponenteista</returns> private static List <UIElement> EtsiKirjainlaattojaSisaltavatKomponentit(DependencyObject mainWindow) { MainWindow main = (MainWindow)mainWindow; StackPanel main_content_area = (StackPanel)main.Content; //Jos ei olla vielä pelin puolella, ei tarvitse käydä kaikki laattoja läpi if (main_content_area.Children[1].GetType() == typeof(DockPanel)) { // vähän purkkaratkaisu, pitäisi olla fiksumpi DockPanel dpanel = (DockPanel)main_content_area.Children[1]; Pelilauta lauta = (Pelilauta)dpanel.Children[2]; KirjainlaattaHolder holder = (KirjainlaattaHolder)((StackPanel)dpanel.Children[0]).Children[1]; KirjainlaattaPussi pussi = (KirjainlaattaPussi)((StackPanel)dpanel.Children[1]).Children[5]; List <UIElement> komponentit = new List <UIElement>(); komponentit.Add(lauta); komponentit.Add(holder); komponentit.Add(pussi); return(komponentit); } return(null); }
/// <summary> /// Aloittaa uuden pelin, eli alustaa alustaa pelin komponentit. /// </summary> private void NewGame() { // Tyhjennetään pelialue if (window_content.Children.Count > 1) { window_content.Children.Remove(aloitusnaytto); window_content.Children.Remove(window_dockpanel); } window_dockpanel = new DockPanel(); if (kirjainlaattaPussi1 != null) { kirjainlaattaPussi1.Clear(); } window_dockpanel.Children.Clear(); int vaikeusaste = VAIKEUSASTE[Vaikeusaste]; KirjaintenVaihtojaJaljella = ((vaikeusaste / 60) + 2); peliControlsPanel = new StackPanel(); DockPanel.SetDock(peliControlsPanel, Dock.Left); peliControlsPanel.Width = 80; peliControlsPanel.Margin = new Thickness(4); peliControlsPanel.MaxWidth = 100; peliControlsPanel.Background = new SolidColorBrush(Colors.Gainsboro); lblLaatatKaytossa = new Label(); lblLaatatKaytossa.Content = "Kirjaimet:"; lblLaatatKaytossa.FontSize = 14; lblLaatatKaytossa.Width = 80; lblLaatatKaytossa.MaxWidth = 100; //lblLaatatKaytossa.BorderBrush = new SolidColorBrush(Colors.SlateGray); //lblLaatatKaytossa.BorderThickness = new Thickness(2); kirjainlaattaHolder1 = new KirjainlaattaHolder(); kirjainlaattaHolder1.Name = "Holder"; kirjainlaattaHolder1.MaxLukumaaraModifiable = true; kirjainlaattaHolder1.MaxLukumaara = 7; kirjainlaattaHolder1.AllowDrop = true; kirjainlaattaHolder1.MinHeight = 350; kirjainlaattaHolder1.Width = 62; kirjainlaattaHolder1.Margin = new Thickness(2); kirjainlaattaHolder1.Padding = new Thickness(2); kirjainlaattaHolder1.BorderBrush = new SolidColorBrush(Colors.SlateGray); kirjainlaattaHolder1.BorderThickness = new Thickness(4); buttonVaihdaKirjaimet = new Button(); buttonVaihdaKirjaimet.Content = "_Vaihda"; buttonVaihdaKirjaimet.Click += buttonVaihdaKirjaimet_Click; buttonVaihdaKirjaimet.Width = 62; buttonVaihdaKirjaimet.Height = 44; buttonVaihdaKirjaimet.Margin = new Thickness(2, 10, 2, 10); txtVaihtojaJaljella = new TextBlock(); txtVaihtojaJaljella.Text = "Vaihtoja jäljellä: " + KirjaintenVaihtojaJaljella; txtVaihtojaJaljella.FontSize = 14; txtVaihtojaJaljella.TextWrapping = TextWrapping.Wrap; txtVaihtojaJaljella.Margin = new Thickness(10, 10, 2, 10); peliControlsPanel.Children.Add(lblLaatatKaytossa); peliControlsPanel.Children.Add(kirjainlaattaHolder1); peliControlsPanel.Children.Add(buttonVaihdaKirjaimet); peliControlsPanel.Children.Add(txtVaihtojaJaljella); pelaajaTiedotPanel = new StackPanel(); DockPanel.SetDock(pelaajaTiedotPanel, Dock.Right); pelaajaTiedotPanel.Width = 110; pelaajaTiedotPanel.Background = new SolidColorBrush(Colors.Gainsboro); pelaajaTiedotPanel.Margin = new Thickness(4); lblAika = new Label(); lblAika.Content = "Aika:"; lblAika.FontSize = 14; aikalaskuri1 = new Aikalaskuri(vaikeusaste); aikalaskuri1.IsDescendingTimer = true; lblPisteet = new Label(); lblPisteet.Content = "Pisteet:"; lblPisteet.FontSize = 14; pistelaskuri1 = new Pistelaskuri(); pistelaskuri1.TotalPoints = 0; lblLaattojaJaljella = new Label(); lblLaattojaJaljella.Content = "Laattoja jäljellä:"; lblLaattojaJaljella.FontSize = 14; kirjainlaattaPussi1 = new KirjainlaattaPussi(varit); kirjainlaattaPussi1.Name = "Pussi"; buttonLaskePisteet = new Button(); buttonLaskePisteet.Content = "_Tarkista sana"; buttonLaskePisteet.Margin = new Thickness(2, 10, 2, 10); buttonLaskePisteet.Height = 23; buttonLaskePisteet.Width = 100; buttonLaskePisteet.Click += buttonTarkistaSana_Click; pelaajaTiedotPanel.Children.Add(lblAika); pelaajaTiedotPanel.Children.Add(aikalaskuri1); pelaajaTiedotPanel.Children.Add(lblPisteet); pelaajaTiedotPanel.Children.Add(pistelaskuri1); pelaajaTiedotPanel.Children.Add(lblLaattojaJaljella); pelaajaTiedotPanel.Children.Add(kirjainlaattaPussi1); pelaajaTiedotPanel.Children.Add(buttonLaskePisteet); pelilauta1 = new Pelilauta(); pelilauta1.Name = "Pelilauta"; pelilauta1.Margin = new Thickness(4); pelilauta1.Loaded += pelilauta1_Loaded; aikalaskuri1.AikalaskuriAlarm += pelilauta1_AikalaskuriAlarm; window_dockpanel.LastChildFill = true; window_dockpanel.Children.Add(peliControlsPanel); window_dockpanel.Children.Add(pelaajaTiedotPanel); window_dockpanel.Children.Add(pelilauta1); window_dockpanel.Background = new SolidColorBrush(Colors.SteelBlue); window_content.Children.Add(window_dockpanel); }