protected double ScoreByChance(Node parent, Tetrimino tetrimino) { double chance = tetrimino.GetChance(); var newState = new GameState(parent.GameState, new Piece(tetrimino)); var child = new Node(newState); var successors = child.GetSuccessors(); var score = GetBestScore(successors); return(chance * score); }