deck shuffling and rooms reset
This commit is contained in:
@@ -51,4 +51,11 @@ public class RoomController : ControllerBase
|
||||
var id = _roomManager.CreateRoom();
|
||||
return Ok(id);
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
public IActionResult Delete()
|
||||
{
|
||||
_roomManager.RemoveAllRooms();
|
||||
return NoContent();
|
||||
}
|
||||
}
|
||||
15
Mau/Deck.cs
15
Mau/Deck.cs
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user