|
|
@ -19,16 +19,16 @@ namespace App
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// MODEL stuff
|
|
|
|
// MODEL stuff
|
|
|
|
ILoader loader = new Stub();
|
|
|
|
ILoader loader = new Stub();
|
|
|
|
GameRunner gameRunner;
|
|
|
|
MasterOfCeremonies masterOfCeremonies;
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
gameRunner = loader.LoadApp();
|
|
|
|
masterOfCeremonies = loader.LoadApp();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
|
|
catch (Exception ex)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine(ex.Message);
|
|
|
|
Console.WriteLine(ex.Message);
|
|
|
|
Console.WriteLine(ex.StackTrace);
|
|
|
|
Console.WriteLine(ex.StackTrace);
|
|
|
|
gameRunner = new(new PlayerManager(), new DieManager(), null);
|
|
|
|
masterOfCeremonies = new(new PlayerManager(), new DieManager(), null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
try
|
|
|
@ -48,7 +48,7 @@ namespace App
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// persist them as models !
|
|
|
|
// persist them as models !
|
|
|
|
gameRunner.GlobalPlayerManager.Add(entity.ToModel());
|
|
|
|
masterOfCeremonies.GlobalPlayerManager.Add(entity.ToModel());
|
|
|
|
Debug.WriteLine($"{entity.ID} -- {entity.Name}");
|
|
|
|
Debug.WriteLine($"{entity.ID} -- {entity.Name}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex) { Debug.WriteLine($"{ex.Message}\n... Never mind"); }
|
|
|
|
catch (Exception ex) { Debug.WriteLine($"{ex.Message}\n... Never mind"); }
|
|
|
@ -81,38 +81,38 @@ namespace App
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "l":
|
|
|
|
case "l":
|
|
|
|
string loadName = ChooseGame(gameRunner);
|
|
|
|
string loadName = ChooseGame(masterOfCeremonies);
|
|
|
|
if (gameRunner.GetOneByName(loadName) != null)
|
|
|
|
if (masterOfCeremonies.GameManager.GetOneByName(loadName) != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Play(gameRunner, loadName);
|
|
|
|
Play(masterOfCeremonies, loadName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "n":
|
|
|
|
case "n":
|
|
|
|
|
|
|
|
|
|
|
|
if (!gameRunner.GlobalDieManager.GetAll().Any())
|
|
|
|
if (!masterOfCeremonies.DieGroupManager.GetAll().Any())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine("make at least one dice group first, then try again");
|
|
|
|
Console.WriteLine("make at least one dice group first, then try again");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Console.WriteLine("add dice to the game");
|
|
|
|
Console.WriteLine("add dice to the game");
|
|
|
|
IEnumerable<Die> newGameDice = PrepareDice(gameRunner);
|
|
|
|
IEnumerable<Die> newGameDice = PrepareDice(masterOfCeremonies);
|
|
|
|
|
|
|
|
|
|
|
|
string newGameName;
|
|
|
|
string newGameName;
|
|
|
|
Console.WriteLine("give this new game a name\n>");
|
|
|
|
Console.WriteLine("give this new game a name\n>");
|
|
|
|
newGameName = Console.ReadLine();
|
|
|
|
newGameName = Console.ReadLine();
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("add players to the game");
|
|
|
|
Console.WriteLine("add players to the game");
|
|
|
|
PlayerManager playerManager = PreparePlayers(gameRunner);
|
|
|
|
PlayerManager playerManager = PreparePlayers(masterOfCeremonies);
|
|
|
|
|
|
|
|
|
|
|
|
gameRunner.StartNewGame(newGameName, playerManager, newGameDice);
|
|
|
|
masterOfCeremonies.StartNewGame(newGameName, playerManager, newGameDice);
|
|
|
|
Play(gameRunner, newGameName);
|
|
|
|
Play(masterOfCeremonies, newGameName);
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "d":
|
|
|
|
case "d":
|
|
|
|
string deleteName = ChooseGame(gameRunner);
|
|
|
|
string deleteName = ChooseGame(masterOfCeremonies);
|
|
|
|
gameRunner.Remove(gameRunner.GetOneByName(deleteName));
|
|
|
|
masterOfCeremonies.GameManager.Remove(masterOfCeremonies.GameManager.GetOneByName(deleteName));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "c":
|
|
|
|
case "c":
|
|
|
@ -151,19 +151,19 @@ namespace App
|
|
|
|
newGroupDice.Add(die);
|
|
|
|
newGroupDice.Add(die);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gameRunner.GlobalDieManager.Add(new KeyValuePair<string, IEnumerable<Die>>(newGroupName, newGroupDice));
|
|
|
|
masterOfCeremonies.DieGroupManager.Add(new KeyValuePair<string, IEnumerable<Die>>(newGroupName, newGroupDice));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "p":
|
|
|
|
case "p":
|
|
|
|
ShowPlayers(gameRunner);
|
|
|
|
ShowPlayers(masterOfCeremonies);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "i":
|
|
|
|
case "i":
|
|
|
|
ShowDice(gameRunner);
|
|
|
|
ShowDice(masterOfCeremonies);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case "y":
|
|
|
|
case "y":
|
|
|
|
PreparePlayers(gameRunner);
|
|
|
|
PreparePlayers(masterOfCeremonies);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
default:
|
|
|
@ -178,7 +178,7 @@ namespace App
|
|
|
|
using (DiceAppDbContext db = new())
|
|
|
|
using (DiceAppDbContext db = new())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// get all the players from the app's memory
|
|
|
|
// get all the players from the app's memory
|
|
|
|
IEnumerable<Player> models = gameRunner.GlobalPlayerManager.GetAll();
|
|
|
|
IEnumerable<Player> models = masterOfCeremonies.GlobalPlayerManager.GetAll();
|
|
|
|
|
|
|
|
|
|
|
|
// create a PlayerDbManager (and inject it with the DB)
|
|
|
|
// create a PlayerDbManager (and inject it with the DB)
|
|
|
|
PlayerDbManager playerDbManager = new(db);
|
|
|
|
PlayerDbManager playerDbManager = new(db);
|
|
|
@ -197,15 +197,16 @@ namespace App
|
|
|
|
catch (ArgumentException ex) { Debug.WriteLine($"{ex.Message}\n... Never mind"); }
|
|
|
|
catch (ArgumentException ex) { Debug.WriteLine($"{ex.Message}\n... Never mind"); }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception ex) { Debug.WriteLine($"{ex.Message}\n... Couldn't use the database"); }
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception ex) { Debug.WriteLine($"{ex.Message}\n... Couldn't use the database"); }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void Play(GameRunner gameRunner, string name)
|
|
|
|
private static void Play(MasterOfCeremonies masterOfCeremonies, string name)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
string menuChoicePlay = "";
|
|
|
|
string menuChoicePlay = "";
|
|
|
|
while (menuChoicePlay != "q")
|
|
|
|
while (menuChoicePlay != "q")
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Game game = gameRunner.GetOneByName(name);
|
|
|
|
Game game = masterOfCeremonies.GameManager.GetOneByName(name);
|
|
|
|
Console.WriteLine($"{game.GetWhoPlaysNow()}'s turn\n" +
|
|
|
|
Console.WriteLine($"{game.GetWhoPlaysNow()}'s turn\n" +
|
|
|
|
"q... quit\n" +
|
|
|
|
"q... quit\n" +
|
|
|
|
"h... show history\n" +
|
|
|
|
"h... show history\n" +
|
|
|
@ -223,21 +224,21 @@ namespace App
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "s":
|
|
|
|
case "s":
|
|
|
|
gameRunner.Add(game);
|
|
|
|
masterOfCeremonies.GameManager.Add(game);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
GameRunner.PlayGame(game);
|
|
|
|
MasterOfCeremonies.PlayGame(game);
|
|
|
|
Console.WriteLine(game.GetHistory().Last());
|
|
|
|
Console.WriteLine(game.GetHistory().Last());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static string ChooseGame(GameRunner gameRunner)
|
|
|
|
private static string ChooseGame(MasterOfCeremonies masterOfCeremonies)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
string name;
|
|
|
|
string name;
|
|
|
|
Console.WriteLine("which of these games?\n(choose by name)\n>");
|
|
|
|
Console.WriteLine("which of these games?\n(choose by name)\n>");
|
|
|
|
foreach (Game game in gameRunner.GetAll())
|
|
|
|
foreach (Game game in masterOfCeremonies.GameManager.GetAll())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine(game);
|
|
|
|
Console.WriteLine(game);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -245,18 +246,18 @@ namespace App
|
|
|
|
return name;
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void ShowPlayers(GameRunner gameRunner)
|
|
|
|
private static void ShowPlayers(MasterOfCeremonies masterOfCeremonies)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine("Look at all them players!");
|
|
|
|
Console.WriteLine("Look at all them players!");
|
|
|
|
foreach (Player player in gameRunner.GlobalPlayerManager.GetAll())
|
|
|
|
foreach (Player player in masterOfCeremonies.GlobalPlayerManager.GetAll())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine(player);
|
|
|
|
Console.WriteLine(player);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void ShowDice(GameRunner gameRunner)
|
|
|
|
private static void ShowDice(MasterOfCeremonies masterOfCeremonies)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach ((string name, IEnumerable<Die> dice) in gameRunner.GlobalDieManager.GetAll())
|
|
|
|
foreach ((string name, IEnumerable<Die> dice) in masterOfCeremonies.DieGroupManager.GetAll())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine($"{name} -- {dice}");
|
|
|
|
Console.WriteLine($"{name} -- {dice}");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -332,11 +333,11 @@ namespace App
|
|
|
|
return die;
|
|
|
|
return die;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static IEnumerable<Die> PrepareDice(GameRunner gameRunner)
|
|
|
|
private static IEnumerable<Die> PrepareDice(MasterOfCeremonies masterOfCeremonies)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
List<Die> result = new();
|
|
|
|
List<Die> result = new();
|
|
|
|
Console.WriteLine("all known dice or groups of dice:");
|
|
|
|
Console.WriteLine("all known dice or groups of dice:");
|
|
|
|
ShowDice(gameRunner);
|
|
|
|
ShowDice(masterOfCeremonies);
|
|
|
|
string menuChoiceDice = "";
|
|
|
|
string menuChoiceDice = "";
|
|
|
|
while (!(menuChoiceDice.Equals("ok") && result.Any()))
|
|
|
|
while (!(menuChoiceDice.Equals("ok") && result.Any()))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -344,7 +345,7 @@ namespace App
|
|
|
|
menuChoiceDice = Console.ReadLine();
|
|
|
|
menuChoiceDice = Console.ReadLine();
|
|
|
|
if (!menuChoiceDice.Equals("ok"))
|
|
|
|
if (!menuChoiceDice.Equals("ok"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
IEnumerable<Die> chosenDice = gameRunner.GlobalDieManager.GetOneByName(menuChoiceDice).Value;
|
|
|
|
IEnumerable<Die> chosenDice = masterOfCeremonies.DieGroupManager.GetOneByName(menuChoiceDice).Value;
|
|
|
|
foreach (Die die in chosenDice)
|
|
|
|
foreach (Die die in chosenDice)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
result.Add(die);
|
|
|
|
result.Add(die);
|
|
|
@ -353,11 +354,11 @@ namespace App
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result.AsEnumerable();
|
|
|
|
return result.AsEnumerable();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private static PlayerManager PreparePlayers(GameRunner gameRunner)
|
|
|
|
private static PlayerManager PreparePlayers(MasterOfCeremonies masterOfCeremonies)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
PlayerManager result = new();
|
|
|
|
PlayerManager result = new();
|
|
|
|
Console.WriteLine("all known players:");
|
|
|
|
Console.WriteLine("all known players:");
|
|
|
|
ShowPlayers(gameRunner);
|
|
|
|
ShowPlayers(masterOfCeremonies);
|
|
|
|
string menuChoicePlayers = "";
|
|
|
|
string menuChoicePlayers = "";
|
|
|
|
while (!(menuChoicePlayers.Equals("ok") && result.GetAll().Any()))
|
|
|
|
while (!(menuChoicePlayers.Equals("ok") && result.GetAll().Any()))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -366,10 +367,10 @@ namespace App
|
|
|
|
if (!menuChoicePlayers.Equals("ok"))
|
|
|
|
if (!menuChoicePlayers.Equals("ok"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Player player = new(menuChoicePlayers);
|
|
|
|
Player player = new(menuChoicePlayers);
|
|
|
|
if (!gameRunner.GlobalPlayerManager.GetAll().Contains(player))
|
|
|
|
if (!masterOfCeremonies.GlobalPlayerManager.GetAll().Contains(player))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// if the player didn't exist, now it does... this is temporary
|
|
|
|
// if the player didn't exist, now it does... this is temporary
|
|
|
|
gameRunner.GlobalPlayerManager.Add(player);
|
|
|
|
masterOfCeremonies.GlobalPlayerManager.Add(player);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// almost no checks, this is temporary
|
|
|
|
// almost no checks, this is temporary
|
|
|
|
try
|
|
|
|
try
|
|
|
|