public int RandMove(Board board, List <Button> buttonList) { memPart memP = new memPart(); memP.action = generateRandomComputerMove(buttonList); memP.boardInfo = getBoardTOInputForNN(board); memory.Add(memP); return(memP.action); }
public void makeDecision(Board board, List <Button> buttonList) { List <double> boardInfoH = getBoardTOInputForNN(board); double[] output = nn.Run(boardInfoH); memPart memP = new memPart(); memP.action = OutputToAction(output); memP.boardInfo = boardInfoH; memory.Add(memP); performAction(memP.action, buttonList); }
public bool makeDecision(Board board, List <Button> buttonList)//EXTRA saves memories { List <double> boardInfoH = getBoardTOInputForNN(board); double[] output = nn.Run(boardInfoH); boardForComp.GameBoard = board.GameBoard; int action = OutputToAction(output); memPart m = new memPart(); m.action = action; m.state = getBoardTOInputForNN(board); boardForComp.submitMove(action, marker); m.nextState = getBoardTOInputForNN(board); m.nextState = getBoardTOInputForNN(boardForComp); if (boardForComp.isWin()) { m.reward = 1; } else if (boardForComp.isCat()) { m.reward = 0.5; } else if (false)//TODO if lose { } else { m.reward = -0.01; } indexOfMemoryPartAtWork++; /// trainNNViaRLMethod(); /// return(performAction(action, buttonList));//return false if the action is random//and presses and button on the ui }