public BoardBot(Board b, GameManagerBot gameManager)
    {
        this.gameManager = gameManager;
        Square[] s = b.squares;
        SquareBot[] sb = new SquareBot[s.Length];
        for (int i = 0; i < s.Length; i++)
        {
            sb[i] = new SquareBot(gameManager, s[i]);
        }
        List<SpookyMarkBot> smb = new List<SpookyMarkBot>();
        foreach (SpookyMark sm in b.spookyMarks)
        {
            smb.Add(new SpookyMarkBot(sm));
        }
        List<MarkBot> mb = new List<MarkBot>();
        foreach (Mark m in b.currentSpookyMark)
        {
            mb.Add(new MarkBot(m));
        }
        List<int> collapsed = new List<int>(b.collapsed);

        if (b.toCollapse == null)
        {
            this.init(new GraphBot(b.entGraph, gameManager), sb, smb, collapsed,
            null, mb, b.nextAction);
        } else
        {
            this.init(new GraphBot(b.entGraph, gameManager), sb, smb, collapsed,
                new SpookyMarkBot(b.toCollapse), mb, b.nextAction);
        }
    }
Exemple #2
0
    private BoardBot generateSuccessor(BoardBot board, int agent, Action action)
    {
        numCopies++;
        GameManagerBot gmCopy = new GameManagerBot(board.gameManager);
        BoardBot       copy   = gmCopy.board;

        action.performAction(copy);
        return(copy);
    }
Exemple #3
0
    public void executeTurn(int actionType, int turnNum)
    {
        numCopies = 0;
        GameManagerBot gmCopy = new GameManagerBot(gameManager);
        BoardBot       copy   = gmCopy.board;
        Action         act    = getNextMove(copy, actionType, startDifficulty, turnNum);

        act.performAction(actualBoard);
        Debug.Log("Made " + numCopies + " copies.");
    }
 public void init(GameManagerBot gmb, List <MarkBot> pms, int position, bool alreadyMarked, bool classicallyMarked,
                  int finalPlayer, int finalTurn, int filledMarks)
 {
     gameManager            = gmb;
     presentMarks           = pms;
     this.position          = position;
     this.alreadyMarked     = alreadyMarked;
     this.classicallyMarked = classicallyMarked;
     this.finalPlayer       = finalPlayer;
     this.finalTurn         = finalTurn;
     this.filledMarks       = filledMarks;
 }
    public GraphBot(GraphBot g, GameManagerBot gameManager)
    {
        Dictionary <SquareBot, HashSet <SquareBot> > adjlistSQ = new Dictionary <SquareBot, HashSet <SquareBot> >();
        Dictionary <SquareBot, HashSet <SquareBot> > gList     = g.adjlistSQ;

        foreach (KeyValuePair <SquareBot, HashSet <SquareBot> > kvp in gList)
        {
            SquareBot           sb = new SquareBot(gameManager, kvp.Key);
            HashSet <SquareBot> h  = new HashSet <SquareBot>();
            foreach (SquareBot sq in kvp.Value)
            {
                h.Add(new SquareBot(gameManager, sq));
            }
            adjlistSQ.Add(sb, h);
        }
        this.init(adjlistSQ);
    }
    public SquareBot(GameManagerBot gmb, SquareBot sq)
    {
        List <MarkBot> pms = new List <MarkBot>();

        foreach (MarkBot m in sq.presentMarks)
        {
            if (m.sm != null)
            {
                pms.Add(new MarkBot(m.player, m.turn, m.position, new SpookyMarkBot(m.sm)));
            }
            else
            {
                pms.Add(new MarkBot(m.player, m.turn, m.position, null));
            }
        }
        this.init(gmb, pms, sq.position, sq.alreadyMarked, sq.classicallyMarked,
                  sq.finalPlayer, sq.finalTurn, sq.filledMarks);
    }
Exemple #7
0
 public GameManagerBot(GameManagerBot gmb)
 {
     this.init(gmb.currentPlayer, gmb.turnNum, gmb.numMarks, gmb.won, gmb.draw,
               new BoardBot(gmb.board, this));
 }