Move from the hand.

This commit is contained in:
2023-02-01 22:49:28 -06:00
parent e2eff4f8b5
commit 3bf9aa3ee3
29 changed files with 248 additions and 133 deletions

View File

@@ -4,29 +4,35 @@ namespace Shogi.Domain;
public class Session
{
public Session(
string name,
string player1Name)
{
Name = name;
Player1 = player1Name;
Board = new(BoardState.StandardStarting);
}
public Session(
string name,
string player1Name)
{
Name = name;
Player1 = player1Name;
Board = new(BoardState.StandardStarting);
}
public string Name { get; }
public ShogiBoard Board { get; }
public string Player1 { get; }
public string? Player2 { get; private set; }
public string Name { get; }
public ShogiBoard Board { get; }
/// <summary>
/// The User.Id of the player which created the session.
/// </summary>
public string Player1 { get; }
/// <summary>
/// The User.Id of the second player.
/// </summary>
public string? Player2 { get; private set; }
public void AddPlayer2(string player2Name)
{
if (Player2 != null) throw new InvalidOperationException("Player 2 already exists while trying to add a second player.");
if (Player1.Equals(player2Name, StringComparison.OrdinalIgnoreCase)) throw new InvalidOperationException("Player 2 must be different from Player 1");
Player2 = player2Name;
}
public void AddPlayer2(string player2Name)
{
if (Player2 != null) throw new InvalidOperationException("Player 2 already exists while trying to add a second player.");
if (Player1.Equals(player2Name, StringComparison.OrdinalIgnoreCase)) throw new InvalidOperationException("Player 2 must be different from Player 1");
Player2 = player2Name;
}
public bool IsSeated(string playerName)
{
return Player1 == playerName || Player2 == playerName;
}
public bool IsSeated(string playerName)
{
return Player1 == playerName || Player2 == playerName;
}
}