private float[] BoardToNetworkInput( BoardRepresentation currentBoard ) { int Idx = 0; float[] board = new float[196]; for ( int i = 1; i < 25; i++ ) { int pieces = currentBoard.GetPiecesAt( i ); if ( pieces == 0 ) { board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == 1 ) { board[Idx++] = 1; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == 2 ) { board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == 3 ) { board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces > 3 ) { board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = ( pieces - 3 ) / 2.0f; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == -1 ) { board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 1; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == -2 ) { board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 0; board[Idx++] = 0; } else if ( pieces == -3 ) { board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 0; } else if ( pieces < -3 ) { board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 0; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = 1; board[Idx++] = ( -pieces - 3 ) / 2.0f;; } } board[Idx++] = currentBoard.GetPiecesAt( 25 ) / 2.0f; board[Idx++] = -currentBoard.GetPiecesAt( 0 ) / 2.0f; board[Idx++] = currentBoard.BearOffCountCurrent() / 15.0f; board[Idx++] = -currentBoard.BearOffCountOpponent() / 15.0f; return board; }
public override LinguisticInputValue CreateLinguisticInputValue( BoardRepresentation board ) { LinguisticInputValue result = new LinguisticInputValue( GetName(), board.BearOffCountCurrent() ); return result; }