/// <summary> /// Přepsaná metoda, která vrátí nejlepší vygenerovaný tah minimaxu. /// </summary> /// <returns></returns> /*public override Tah VratTah() { return Minimax.VratNejlepsiTah(Manazer.Deska, BarvaHrace, obtiznost); // return Minimax.NejlepsiTah(Manazer.Deska, BarvaHrace, obtiznost); }*/ /// <summary> /// Změní barvu hráče na opačnou. /// </summary> public void ZmenBarvu() { if (BarvaHrace == Manazer.StavPole.obrana) BarvaHrace = Manazer.StavPole.utok; else BarvaHrace = Manazer.StavPole.obrana; }
public AI(string jmeno, Manazer.StavPole barvaHrace, int Obtiznost) : base(jmeno) { // inicializace prvků this.BarvaHrace = barvaHrace; // nastavení umělého hráče this.UmelaInteligence = true; this.obtiznost = Obtiznost; }
/*public Object Clone() { HraciDeska NovaHraciDeska = (HraciDeska) MemberwiseClone(); Pozice NovaPozice = new Pozice(aktualniTah.radek, aktualniTah.sloupec); NovaHraciDeska.aktualniTah = NovaPozice; return NovaHraciDeska; }*/ /// <summary> /// Nastaví hrací desku do počátečního stavu. /// </summary> public void Restart() { // Rozměr hrací desky rozmer = 7; // Nastavíme hrací desku deska = new Manazer.StavPole[rozmer, rozmer]; // Nejprve naplníme desku volnymi pozicemi for(int i = 0; i < deska.GetLength(0); i++) { for(int j = 0; j < deska.GetLength(1); j++) { deska[i, j] = Manazer.StavPole.volne; } } // Umístíme útočníky for(int i = 0; i < deska.GetLength(0); i++) { for(int j = 0; j < deska.GetLength(1); j++) { if(!Pevnost(i, j)) { deska[i, j] = Manazer.StavPole.utok; } } } // Nyní vysekáme rohy hrací desky, protože v rozích nehrajeme // Prostě tam střelíme -1: mimo hrací desku for(int i = 0; i < deska.GetLength(0); i++) { for(int j = 0; j < deska.GetLength(1); j++) { if(Rohova(i, j)) { deska[i, j] = Manazer.StavPole.mimo; } } } // zrušíme aktuální tah aktualniTah = null; // Vynulujeme počet obránců PocetObrancu = 0; Console.ForegroundColor = ConsoleColor.White; }