/// <summary> /// Käsitellään routedevent, kun laattaa on klikattu /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gridi_LaattaArgs(object sender, RoutedEventArgs e) { Laatta.Laatta.LaattaEventArgs args = (Laatta.Laatta.LaattaEventArgs)e; Point uusiPaikka = args.piste; LiikutaNappulaa(uusiPaikka); }
/// <summary> /// Käsitellään laatan klikkaus /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gridi_LaattaArgs(object sender, RoutedEventArgs e) // puuttu vielä syönti { Laatta.Laatta.LaattaEventArgs args = (Laatta.Laatta.LaattaEventArgs)e; Point uusiPaikka = args.piste; syotavatPaikat = new List <Point>(); if (muutettuLaatta != null) { Laatta.Laatta.SetVari(muutettuLaatta, laatanOikeaVari); } int i = EtsiIndeksi(siirrettavanNappulanPaikka, p_paikat, taulukoidenKoko); if (i == -1) // siirrettävää ei löydy punaisista nappuloista { if (KasitteleVaaraLaatta(uusiPaikka)) { return; } if (vuoro == 0) { return; } String suunta = "alas"; i = EtsiIndeksi(siirrettavanNappulanPaikka, v_paikat, taulukoidenKoko); if (valkoiset_nappulat[i].OnkoTammi) { suunta = "kumpikin"; } List <Point> mahdPaikat = EtsiMahdollisetPaikat(valkoiset_nappulat, i, v_paikat, suunta, p_paikat); if (mahdPaikat.Contains(uusiPaikka)) { int tulos = TeeLiikutusJaSyonti(valkoiset_nappulat, uusiPaikka, v_paikat, i, valkoiset_siirrot, syotavatPaikat, punaiset_nappulat, p_paikat, 0); voivat_syoda = VoikoPelaajanNappulatSyoda(valkoiset_nappulat, v_paikat, suunta, p_paikat); if (tulos == 0) { if (voivat_syoda.Contains(v_paikat[i])) { ainut_joka_saa_liikkua = v_paikat[i]; } else { ainut_joka_saa_liikkua = new Point(-1, -1); vuoro = 0; } } else { vuoro = 0; } } else { MuutaLaatanVaria(uusiPaikka); return; } if (LoytyykoTaulukosta(siirrettavaNappula, valkoiset_nappulat)) { Pelinappula.Pelinappula.SetVari(siirrettavaNappula, ylaPelaajanVari); } siirrettavanNappulanPaikka = new Point(-1, -1); } else { if (KasitteleVaaraLaatta(uusiPaikka)) { return; } if (vuoro != 0) { return; } String suunta = "ylos"; if (punaiset_nappulat[i].OnkoTammi) { suunta = "kumpikin"; } List <Point> mahdPaikat = EtsiMahdollisetPaikat(punaiset_nappulat, i, p_paikat, suunta, v_paikat); if (mahdPaikat.Contains(uusiPaikka)) { int tulos = TeeLiikutusJaSyonti(punaiset_nappulat, uusiPaikka, p_paikat, i, punaiset_siirrot, syotavatPaikat, valkoiset_nappulat, v_paikat, 1); voivat_syoda = VoikoPelaajanNappulatSyoda(punaiset_nappulat, p_paikat, suunta, v_paikat); if (tulos == 0) { if (voivat_syoda.Contains(p_paikat[i])) { ainut_joka_saa_liikkua = p_paikat[i]; } else { vuoro = 1; } } else { ainut_joka_saa_liikkua = new Point(-1, -1); vuoro = 1; } } else { MuutaLaatanVaria(uusiPaikka); return; } if (LoytyykoTaulukosta(siirrettavaNappula, punaiset_nappulat)) { Pelinappula.Pelinappula.SetVari(siirrettavaNappula, alaPelaajanVari); } siirrettavanNappulanPaikka = new Point(-1, -1); } }