Exemplo n.º 1
0
        private void randomAI(Gameboard gb)
        {
            Fairway from = randomFrom(gb);
            Fairway to   = randomTo(gb, from);

            gb.addHistory(from, to);

            rules.makeMove(from, to, gb, true);
        }
Exemplo n.º 2
0
        private Gameboard MiniMaxAI(Gameboard gb, int depth)
        {
            List <Fairway> bMove = bestMove(gb, depth);
            string         f     = bMove[0].Name;
            string         t     = bMove[1].Name;

            var from = new Fairway();
            var to   = new Fairway();

            foreach (var fw in gb.Board)
            {
                from = fw.Name == f ? fw : from;
                to   = fw.Name == t ? fw : to;
            }

            rules.generateMoves(gb, from);

            gb.addHistory(from, to);
            rules.makeMove(from, to, gb, true);

            return(gb);
        }
Exemplo n.º 3
0
        private void randomAI(Gameboard gb)
        {
            Fairway from = randomFrom(gb);
            Fairway to = randomTo(gb, from);

            gb.addHistory(from, to);

            rules.makeMove(from, to, gb, true);
        }
Exemplo n.º 4
0
        private Gameboard MiniMaxAI(Gameboard gb, int depth)
        {
            List<Fairway> bMove = bestMove(gb, depth);
            string f = bMove[0].Name;
            string t = bMove[1].Name;

            var from = new Fairway();
            var to = new Fairway();

            foreach (var fw in gb.Board)
            {
                from = fw.Name == f ? fw : from;
                to = fw.Name == t ? fw : to;
            }

            rules.generateMoves(gb, from);

            gb.addHistory(from, to);
            rules.makeMove(from, to, gb, true);

            return gb;
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Funkce provadejici nacteni hry a zkontrolovani, zda se jedna o korektni ulozeni
        /// </summary>
        /// <param name="filePath">cesta k souboru</param>
        /// <param name="gb">Hraci deska, na niz maji byt zmeny provedeny</param>
        /// <returns>Hraci desku s odehratou hrou</returns>
        public Gameboard loadGame(string filePath, Gameboard gb)
        {
            string  from = "";
            string  to   = "";
            Fairway fwFrom;
            Fairway fwTo;
            var     rules = new Rules();

            gb.Board = gb.newBoard();

            using (XmlReader reader = XmlReader.Create(filePath))
            {
                while (reader.Read())
                {
                    if (reader.IsStartElement())
                    {
                        switch (reader.Name)
                        {
                        // nacteme si obtiznost bileho hrace a nastavime
                        case "WHITE":
                            if (reader.Read())
                            {
                                int whitePlayer = Convert.ToInt32(reader.Value.Trim());
                                gb.WhitePlayer = whitePlayer;
                            }
                            break;

                        // nacteme si obtiznost cerneho hrace a nastavime
                        case "BLACK":
                            if (reader.Read())
                            {
                                int blackPlayer = Convert.ToInt32(reader.Value.Trim());
                                gb.BlackPlayer = blackPlayer;
                            }
                            break;

                        // nacteme si zacinajiciho hrace a nastavime
                        case "STARTS":
                            if (reader.Read())
                            {
                                bool startsWhite = Convert.ToBoolean(reader.Value.Trim());
                                gb.StartsWhite = startsWhite;
                            }
                            break;

                        //
                        case "SHOWHELP":
                            if (reader.Read())
                            {
                                bool showHelp = Convert.ToBoolean(reader.Value.Trim());
                                gb.ShowMoveHelp = showHelp;
                            }
                            break;

                        case "FROM":
                            if (reader.Read())
                            {
                                from = reader.Value.Trim();
                            }
                            break;

                        case "TO":
                            if (reader.Read())
                            {
                                to = reader.Value.Trim();
                            }
                            fwFrom = gb.getFigure(from);
                            fwTo   = gb.getFigure(to);
                            rules.generateMoves(gb);
                            rules.makeMove(fwFrom, fwTo, gb, false);
                            gb.addHistory(fwFrom, fwTo);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }

            return(gb);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Funkce provadejici nacteni hry a zkontrolovani, zda se jedna o korektni ulozeni
        /// </summary>
        /// <param name="filePath">cesta k souboru</param>
        /// <param name="gb">Hraci deska, na niz maji byt zmeny provedeny</param>
        /// <returns>Hraci desku s odehratou hrou</returns>
        public Gameboard loadGame(string filePath, Gameboard gb)
        {
            string from = "";
            string to = "";
            Fairway fwFrom;
            Fairway fwTo;
            Rules rules = new Rules();

            gb.Board = gb.newBoard();

            using (XmlReader reader = XmlReader.Create(filePath))
            {
                while (reader.Read())
                {
                    if (reader.IsStartElement())
                    {
                        switch (reader.Name)
                        {
                            // nacteme si obtiznost bileho hrace a nastavime
                            case "WHITE":
                                if (reader.Read())
                                {
                                    int whitePlayer = Convert.ToInt32(reader.Value.Trim());
                                    gb.WhitePlayer = whitePlayer;
                                }
                                break;
                            // nacteme si obtiznost cerneho hrace a nastavime
                            case "BLACK":
                                if (reader.Read())
                                {
                                    int blackPlayer = Convert.ToInt32(reader.Value.Trim());
                                    gb.BlackPlayer = blackPlayer;
                                }
                                break;

                            // nacteme si zacinajiciho hrace a nastavime
                            case "STARTS":
                                if (reader.Read())
                                {
                                    bool startsWhite = Convert.ToBoolean(reader.Value.Trim());
                                    gb.StartsWhite = startsWhite;
                                }
                                break;
                            //
                            case "SHOWHELP":
                                if (reader.Read())
                                {
                                    bool showHelp = Convert.ToBoolean(reader.Value.Trim());
                                    gb.ShowMoveHelp = showHelp;
                                }
                                break;

                            case "FROM":
                                if (reader.Read())
                                    from = (string)reader.Value.Trim();
                                break;

                            case "TO":
                                if (reader.Read())
                                    to = (string)reader.Value.Trim();
                                fwFrom = gb.getFigure(from);
                                fwTo = gb.getFigure(to);
                                rules.generateMoves(gb);
                                rules.makeMove(fwFrom, fwTo, gb, false);
                                gb.addHistory(fwFrom, fwTo);
                                break;

                            default:
                                break;
                        }
                    }
                }
            }

            return gb;
        }