deck shuffling and rooms reset
This commit is contained in:
@@ -51,4 +51,11 @@ public class RoomController : ControllerBase
|
|||||||
var id = _roomManager.CreateRoom();
|
var id = _roomManager.CreateRoom();
|
||||||
return Ok(id);
|
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.Add(new Card(cardType, cardValue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UnusedDeck = UnusedDeck.OrderBy(x => Guid.NewGuid()).ToList();
|
ShuffleDeck();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Card> GetUnusedDeck()
|
public List<Card> GetUnusedDeck()
|
||||||
@@ -24,6 +24,7 @@ public class Deck
|
|||||||
|
|
||||||
public Card DrawCard()
|
public Card DrawCard()
|
||||||
{
|
{
|
||||||
|
if (UnusedDeck.Count == 0) ReshuffleDeck();
|
||||||
var card = UnusedDeck[0];
|
var card = UnusedDeck[0];
|
||||||
UnusedDeck.RemoveAt(0);
|
UnusedDeck.RemoveAt(0);
|
||||||
return card;
|
return card;
|
||||||
@@ -43,4 +44,16 @@ public class Deck
|
|||||||
{
|
{
|
||||||
UsedDeck.Add(card);
|
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);
|
return Rooms.ContainsKey(roomId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveAllRooms()
|
||||||
|
{
|
||||||
|
Rooms.Clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IRoomManager
|
public interface IRoomManager
|
||||||
@@ -40,4 +45,5 @@ public interface IRoomManager
|
|||||||
public List<string> GetAllRooms();
|
public List<string> GetAllRooms();
|
||||||
public void RemoveRoom(string roomId);
|
public void RemoveRoom(string roomId);
|
||||||
public bool RoomExists(string roomId);
|
public bool RoomExists(string roomId);
|
||||||
|
public void RemoveAllRooms();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user