diff --git a/Qwirkle/QwirkleClassLibrary/Game.cs b/Qwirkle/QwirkleClassLibrary/Game.cs index 66dcb53..57f4a5d 100644 --- a/Qwirkle/QwirkleClassLibrary/Game.cs +++ b/Qwirkle/QwirkleClassLibrary/Game.cs @@ -9,21 +9,21 @@ using System.Xml.Linq; namespace QwirkleClassLibrary { - public class Game + public class Game : IPlayer { private TileBag bag; private bool gameRunning; private Board board; public ReadOnlyCollection PlayerList { get; private set; } - private readonly List players = new List(); + private readonly List players; public Game() { board = new Board(); bag = new TileBag(3); - Console.Write(bag.TilesBag.Count); - gameRunning = false; + + players = new List(); PlayerList = players.AsReadOnly(); } @@ -43,7 +43,7 @@ namespace QwirkleClassLibrary for (int i = 0; i < players.Count; i++) { - if (players[i].GetNameTag == PlayerTag) + if (players[i].NameTag == PlayerTag) { return false; } @@ -55,6 +55,12 @@ namespace QwirkleClassLibrary return true; } + public Player CreatePlayer(string playerTag) + { + var player = new Player(playerTag); + return player; + } + public bool StartGame() { if (players.Count < 2) @@ -65,8 +71,7 @@ namespace QwirkleClassLibrary this.gameRunning = true; return true; } - - + public int GetPlayingPlayerPosition() { for (int i = 0; i < players.Count; i++) @@ -92,7 +97,6 @@ namespace QwirkleClassLibrary public void SetNextPlayer(int old, int neew) { - if (old >= 0 || old != -1) { players[old].IsPlaying = false; @@ -129,7 +133,7 @@ namespace QwirkleClassLibrary SetNextPlayer(posPlayerPlay, posPlayerNextPlay); - return (players[posPlayerNextPlay].GetNameTag); + return (players[posPlayerNextPlay].NameTag); } public bool GameRunning @@ -153,6 +157,26 @@ namespace QwirkleClassLibrary return false; } + public void SetNextPlayer(List playersList) + { + for(int i = 0; i < PlayerList.Count; i++) + { + if (PlayerList[i].IsPlaying != true) continue; + + PlayerList[i].IsPlaying = false; + PlayerList[(i + 1) % PlayerList.Count].IsPlaying = true; + } + } + + public void PlaceTile(Player player, Tile tile, int x, int y) + { + throw new NotImplementedException(); + } + + public bool ContinueToPlay() + { + throw new NotImplementedException(); + } } diff --git a/Qwirkle/QwirkleClassLibrary/IPlayer.cs b/Qwirkle/QwirkleClassLibrary/IPlayer.cs new file mode 100644 index 0000000..8b9a4a1 --- /dev/null +++ b/Qwirkle/QwirkleClassLibrary/IPlayer.cs @@ -0,0 +1,12 @@ +namespace QwirkleClassLibrary; + +public interface IPlayer +{ + public Player CreatePlayer(string playerTag); + + public void SetNextPlayer(List players); + + public void PlaceTile(Player player, Tile tile, int x, int y); + + public bool ContinueToPlay(); +} \ No newline at end of file diff --git a/Qwirkle/QwirkleClassLibrary/Player.cs b/Qwirkle/QwirkleClassLibrary/Player.cs index 53295c6..3e424c6 100644 --- a/Qwirkle/QwirkleClassLibrary/Player.cs +++ b/Qwirkle/QwirkleClassLibrary/Player.cs @@ -9,26 +9,23 @@ namespace QwirkleClassLibrary { public class Player { - private string nameTag; public ReadOnlyCollection Tiles { get; private set; } - private readonly List playerTiles = new List(); + private readonly List playerTiles; public Player(string name) { - if(name==null || string.IsNullOrEmpty(name)) + if(name == null || string.IsNullOrEmpty(name)) { - throw new ArgumentNullException("name"); + throw new ArgumentNullException(name); } - nameTag = name; + + NameTag = name; + playerTiles = new List(); Tiles = playerTiles.AsReadOnly(); } - public string GetNameTag - { - get { return nameTag; } - set { nameTag = value; } - } + public string NameTag { get; set; } public bool IsPlaying { get; set; } = false; @@ -41,6 +38,5 @@ namespace QwirkleClassLibrary { return playerTiles.Remove(tile); } - } } diff --git a/Qwirkle/QwirkleClassLibrary/Score.cs b/Qwirkle/QwirkleClassLibrary/Score.cs index 4fd0b21..14b5763 100644 --- a/Qwirkle/QwirkleClassLibrary/Score.cs +++ b/Qwirkle/QwirkleClassLibrary/Score.cs @@ -14,7 +14,7 @@ namespace QwirkleClassLibrary public Score(Player p) { score = 0; - playerTag = p.GetNameTag; + playerTag = p.NameTag; } } diff --git a/Qwirkle/TestBase/UnitTest1.cs b/Qwirkle/TestBase/UnitTest1.cs index a8c190e..c60e5bf 100644 --- a/Qwirkle/TestBase/UnitTest1.cs +++ b/Qwirkle/TestBase/UnitTest1.cs @@ -15,7 +15,7 @@ namespace TestBase return; } Player player = new Player(playertag); - Assert.Equal(playertag, player.GetNameTag); + Assert.Equal(playertag, player.NameTag); } [Fact]