place tile work !

test_old_branch
Jérémy Mouyon 1 year ago
parent de63fd17b6
commit 60848f64f6

@ -31,9 +31,10 @@ namespace QwirkleClassLibrary
{
if (this.Cells[i].GetX == x && this.Cells[i].GetY == y)
{
if (Cells[i].IsFree == false)
if (Cells[i].IsFree == true)
{
return Cells[i].SetTile(tile);
}
else
{

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace QwirkleClassLibrary
@ -11,13 +12,57 @@ namespace QwirkleClassLibrary
{
private TileBag bag;
private List<Player> players;
private bool gameRunning;
private Board board;
public Game(List<Player> players)
public Game()
{
this.players = players;
this.players = new List<Player>();
board = new Board();
bag = new TileBag(3);
gameRunning = false;
}
public bool AddPlayerInGame(string? PlayerTag)
{
bool nameInvalid = string.IsNullOrWhiteSpace(PlayerTag);
if (nameInvalid == true || this.gameRunning == true || PlayerTag == null)
{
return false;
}
if (players.Count >= 4)
{
return false;
}
for (int i = 0; i < players.Count; i++)
{
if (players[i].GetNameTag == PlayerTag)
{
return false;
}
}
Player p = new Player(PlayerTag);
players.Add(p);
return true;
}
public bool StartGame()
{
if (players.Count < 2)
{
return false;
}
this.gameRunning = true;
return true;
}
public int GetPlayingPlayerPosition()
{
for (int i = 0; i < players.Count; i++)
@ -46,7 +91,7 @@ namespace QwirkleClassLibrary
string r = ("Tile of " + posplayer + " : ");
foreach(Tile tile in tiles)
foreach (Tile tile in tiles)
{
r = (r + " " + tile.NameColorTile());
}
@ -54,15 +99,20 @@ namespace QwirkleClassLibrary
}
public Tile TileOfPlayerWithPos(int postile)
{
return players[GetPlayingPlayerPosition()].Tiles[postile];
}
public void SetNextPlayer(int old, int neew)
{
if (old >= 0)
if (old >= 0 || old != -1)
{
players[old].IsPlaying = false;
}
players[neew].IsPlaying = true;
}
public void TilsBagPlayer()
@ -94,6 +144,18 @@ namespace QwirkleClassLibrary
return (players[posPlayerNextPlay].GetNameTag);
}
public bool GameRunning
{
get { return gameRunning; }
}
public bool PlaceTileGame(Tile tile, int x, int y)
{
bool r = board.AddTileInCell(x, y, tile);
players[GetPlayingPlayerPosition()].RemoveTilePlayer(tile);
return r;
}
}

@ -1,83 +1,87 @@
using QwirkleClassLibrary;
using static System.Console;
static Game InitializerGame()
static void testJeremy()
{
OutputEncoding = System.Text.Encoding.UTF8;
Game game = new Game();
List<Player> Players = new List<Player>();
string? enterline = "";
WriteLine("Enter number of player play : ");
try
do
{
int nbplayer = Convert.ToInt32(ReadLine());
while (nbplayer <= 1 || nbplayer > 4)
{
WriteLine("ERROR : Enter minmun one player or four max !");
nbplayer = Convert.ToInt32(ReadLine());
}
for (int i = 0; i < nbplayer; i++)
WriteLine("Enter name of player (enter quit to quit) : ");
enterline = ReadLine();
if (enterline != "quit")
{
WriteLine("Enter name of player " + (i + 1) + " : \n");
String? name = ReadLine();
bool nameInvalid = string.IsNullOrWhiteSpace(name);
while (nameInvalid == true)
bool r = game.AddPlayerInGame(enterline);
if (r == false)
{
WriteLine("ERROR Incorrect name, please enter name of player " + (i + 1) + " : \n");
name = ReadLine();
nameInvalid = string.IsNullOrWhiteSpace(name);
WriteLine("ERROR : Name is invalid.");
}
}
for (int j = 0; j < Players.Count; j++)
{
if (Players[j].GetNameTag == name)
{
name = (name + "bis");
}
}
} while (enterline != "quit");
Player p = new Player(name);
Players.Add(p);
game.StartGame();
}
}
catch (Exception e)
{ Console.WriteLine(e.Message); }
if (game.GameRunning == true)
{
return new Game(Players);
}
game.TilsBagPlayer();
String TagPlayerPlay;
TagPlayerPlay = game.NextPlayer();
Write(TagPlayerPlay + " you have main now ! \n");
string s = game.ShowTileOfPlayer(game.GetPlayingPlayerPosition());
Write(s + "\n");
static void testJeremy()
{
Game game = InitializerGame();
Write("\n -------------------------------------------------------- \n");
Write("[1] Place your tiles \n");
Write("[2] Swap your tiles \n");
String TagPlayerPlay;
int enter = Convert.ToInt32(ReadLine());
TagPlayerPlay = game.NextPlayer();
Tile tile = null;
Write(TagPlayerPlay + " you have main now !");
switch (enter)
{
case 1:
// si good faire des boucles demain
Write("Enter no tile : ");
int no = Convert.ToInt32(ReadLine());
TagPlayerPlay = game.NextPlayer();
if (no >= 0 && no <= 5)
{
tile = game.TileOfPlayerWithPos(no);
Write("Enter x : ");
int x = Convert.ToInt32(ReadLine());
Write("Enter y : ");
int y = Convert.ToInt32(ReadLine());
if (game.PlaceTileGame(tile, x, y) == true)
{
Write("ok ! your tile is placed \n");
}
else
{
Write("no no no \n");
}
}
else
{
Write("No is out of range\n");
}
Write(TagPlayerPlay + " you have main now !");
game.TilsBagPlayer();
break;
case 2:
break;
}
for (int i = 0; i < game.GetNbPlayers; i++)
{
game.ShowTileOfPlayer(i);
}
}

Loading…
Cancel
Save