public Classic Move(Steps steps) { var block = Blocks.Spawn(Current); var move = Field.Move(block, steps); var field = move.Field; var next = rnd.Next(); var score = Score + move.Clearing.Rows * (Level + 1); var moves = Moves + 1; var level = Math.Max(Level, moves / 10); return(new Classic( generator: rnd, time: Time, field: field, blocks: Blocks, current: Next, next: next, score: score, level: level, moves: moves)); }