public static string ToBoardChar(this Cell.Marker mark) { return(mark switch { Cell.Marker.Empty => " ", Cell.Marker.Circle => "O", Cell.Marker.Cross => "X", _ => throw new ArgumentOutOfRangeException(nameof(mark), $"Invalid enum value {mark}"), });
public override Player Register(string name, Cell.Marker mark) { throw new InvalidOperationException("Cannot register player while active"); }
public override Player Register(string name, Cell.Marker mark) { throw new InvalidOperationException("Cannot Turn, game ended with a Win"); }
public override Board Play(Coordinate coordinate, Cell.Marker mark) { Parent.Matrix[coordinate].Mark = mark; return(this); }
public abstract Board Play(Coordinate coordinate, Cell.Marker mark);
public abstract Player Register(string name, Cell.Marker mark);
public override Player Register(string name, Cell.Marker mark) { Parent.Name = name; Parent.Mark = mark; return(new PlayerStateActive(Parent)); }
public override Board Play(Coordinate coordinate, Cell.Marker mark) { throw new InvalidOperationException("Cannot play on a Blanco board. Initialize before playing"); }
public override Board Play(Coordinate coordinate, Cell.Marker mark) { throw new InvalidOperationException("Play on a finished board"); }