deck shuffling and rooms reset

This commit is contained in:
2023-03-17 09:53:15 +01:00
parent c902493e28
commit d05ece2efc
3 changed files with 27 additions and 1 deletions

View File

@@ -51,4 +51,11 @@ public class RoomController : ControllerBase
var id = _roomManager.CreateRoom();
return Ok(id);
}
[HttpDelete]
public IActionResult Delete()
{
_roomManager.RemoveAllRooms();
return NoContent();
}
}

View File

@@ -14,7 +14,7 @@ public class Deck
UnusedDeck.Add(new Card(cardType, cardValue));
}
}
UnusedDeck = UnusedDeck.OrderBy(x => Guid.NewGuid()).ToList();
ShuffleDeck();
}
public List<Card> GetUnusedDeck()
@@ -24,6 +24,7 @@ public class Deck
public Card DrawCard()
{
if (UnusedDeck.Count == 0) ReshuffleDeck();
var card = UnusedDeck[0];
UnusedDeck.RemoveAt(0);
return card;
@@ -43,4 +44,16 @@ public class Deck
{
UsedDeck.Add(card);
}
private void ReshuffleDeck()
{
UnusedDeck.AddRange(UsedDeck);
UsedDeck.Clear();
ShuffleDeck();
}
private void ShuffleDeck()
{
UnusedDeck = UnusedDeck.OrderBy(x => Guid.NewGuid()).ToList();
}
}

View File

@@ -31,6 +31,11 @@ public class RoomManager : IRoomManager
{
return Rooms.ContainsKey(roomId);
}
public void RemoveAllRooms()
{
Rooms.Clear();
}
}
public interface IRoomManager
@@ -40,4 +45,5 @@ public interface IRoomManager
public List<string> GetAllRooms();
public void RemoveRoom(string roomId);
public bool RoomExists(string roomId);
public void RemoveAllRooms();
}