private void HracProvedlTah(SouradnicePole tah) { panelPlocha.Aktivni=false; Zprava.Text=""; plocha.UmistiKamen(tah,barvaCloveka); panelPlocha.AktualizujKamen(tah); if(plocha.JeVitez) { Zprava.Text="Vyhr�l jsi."; panelPlocha.Aktivni=false; panelPlocha.Invalidate(); } else ProvedTahEnginu(); }
/// <summary> /// Umístìní hracího kamene na hrací plochu. /// </summary> /// <param name="souradnice">Souøadnice, kam bude kámen umístìn</param> /// <param name="barva">Barva kamene, který je tøeba umístit</param> /// <returns>Vrací true, pokud bylo pole neobsazené a kámen byl umístìn, jinak false</returns> public bool UmistiKamen(SouradnicePole souradnice, BarvaKamene barva) { if ((hraciPole[souradnice.Radek,souradnice.Sloupec]!=BarvaKamene.Zadny) || JeVitez) return false; else { hraciPole[souradnice.Radek,souradnice.Sloupec]=barva; ZkusNajitViteznouRaduPoli(); return true; } }
private void PohybMysi(object sender, System.Windows.Forms.MouseEventArgs e) { double ctv=(Height<Width) ? (double) (Height-1)/SouradnicePole.VelikostPlochy : (double) (Width-1)/SouradnicePole.VelikostPlochy; int radek=(int) (((double)e.Y)/ctv); int sloupec=(int) (((double)e.X)/ctv); if((radek>=0)&&(radek<HraciPlocha.VelikostPlochy)&&(sloupec>=0)&&(sloupec<HraciPlocha.VelikostPlochy)) VybranePole=new SouradnicePole(radek,sloupec); else VybranePole=null; }
private void OpusteniMysi(object sender, System.EventArgs e) { if(this.VybranePole!=null) VybranePole=null; }
/// <summary> /// Aktualizace zobrazení kamene /// </summary> /// <param name="s">Souøadnice kamene</param> public void AktualizujKamen(SouradnicePole s) { double ctv=(Height<Width) ? (double) (Height-1)/SouradnicePole.VelikostPlochy : (double) (Width-1)/SouradnicePole.VelikostPlochy; this.Invalidate(new Rectangle((int)(ctv*s.Sloupec), (int)(ctv*s.Radek),(int) ctv, (int) ctv)); //prekresleni prvku }
protected void OnProvedenTah(SouradnicePole s) { if(ProvedenTah!=null) ProvedenTah(s); }