implement-save-in-app #99

Merged
alexis.drai merged 4 commits from implement-save-in-app into main 3 years ago

@ -134,6 +134,7 @@ namespace App
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" +
"s... save\n" +
"any other... throw"); "any other... throw");
menuChoicePlay = Console.ReadLine(); menuChoicePlay = Console.ReadLine();
switch (menuChoicePlay) switch (menuChoicePlay)
@ -146,6 +147,9 @@ namespace App
Console.WriteLine(turn); Console.WriteLine(turn);
} }
break; break;
case "s":
gameRunner.Add(game);
break;
default: default:
GameRunner.PlayGame(game); GameRunner.PlayGame(game);
Console.WriteLine(game.GetHistory().Last()); Console.WriteLine(game.GetHistory().Last());

@ -9,20 +9,21 @@ namespace Data
{ {
public class Stub : ILoader public class Stub : ILoader
{ {
// when the other classes are ready
// the Stub should just make and return a GameRunner, and the GameRunner should have
// a PlayerManager, a collection of Games, a FavGroupManager, etc. (see diagram)
public GameRunner LoadApp() public GameRunner LoadApp()
{ {
IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> globalDieManager = new DieManager(); GameRunner gr = new(new PlayerManager(), new DieManager());
Player player1 = new("Alice"), player2 = new("Bob"), player3 = new("Clyde");
gr.GlobalPlayerManager.Add(player1);
gr.GlobalPlayerManager.Add(player2);
gr.GlobalPlayerManager.Add(player3);
List<AbstractDie<AbstractDieFace>> monopolyDice = new(); List<AbstractDie<AbstractDieFace>> monopolyDice = new();
List<AbstractDie<AbstractDieFace>> dndDice = new(); List<AbstractDie<AbstractDieFace>> dndDice = new();
string monopolyName = "Monopoly"; string monopolyName = "Monopoly", dndName = "DnD";
string dndName = "DnD";
NumberDieFace[] d6Faces = new NumberDieFace[] { new(1), new(2), new(3), new(4), new(5), new(6) }; NumberDieFace[] d6Faces = new NumberDieFace[] { new(1), new(2), new(3), new(4), new(5), new(6) };
@ -39,40 +40,26 @@ namespace Data
dndDice.Add(new NumberDie(d20Faces)); dndDice.Add(new NumberDie(d20Faces));
globalDieManager.Add(new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>(monopolyName, monopolyDice.AsEnumerable())); gr.GlobalDieManager.Add(new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>(dndName, dndDice.AsEnumerable()));
globalDieManager.Add(new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>(dndName, dndDice.AsEnumerable())); gr.GlobalDieManager.Add(new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>(monopolyName, monopolyDice.AsEnumerable()));
IEnumerable<AbstractDie<AbstractDieFace>> dice1 = globalDieManager.GetOneByName(monopolyName).Value;
IEnumerable<AbstractDie<AbstractDieFace>> dice2 = globalDieManager.GetOneByName(dndName).Value;
string g1 = "game1", g2 = "game2", g3 = "game3";
Game game1 = new(name: g1, playerManager: new PlayerManager(), dice: dice1);
Game game2 = new(name: g2, playerManager: new PlayerManager(), dice: dice2);
Game game3 = new(name: g3, playerManager: new PlayerManager(), dice: dice1);
List<Game> games = new() { game1, game2, game3 };
Player player1 = new("Alice"), player2 = new("Bob"), player3 = new("Clyde");
PlayerManager globalPlayerManager = new(); string game1 = "Forgotten Realms", game2 = "4e", game3 = "The Coopers";
globalPlayerManager.Add(player1);
globalPlayerManager.Add(player2);
globalPlayerManager.Add(player3);
GameRunner gameRunner = new(globalPlayerManager, globalDieManager, games); gr.Add(new(game1, new PlayerManager(), dndDice.AsEnumerable()));
gr.Add(new(game2, new PlayerManager(), dndDice.AsEnumerable()));
gr.Add(new(game3, new PlayerManager(), monopolyDice.AsEnumerable()));
game1.PlayerManager.Add(player1); gr.GetOneByName(game1).PlayerManager.Add(player1);
game1.PlayerManager.Add(player2); gr.GetOneByName(game1).PlayerManager.Add(player2);
game2.PlayerManager.Add(player1); gr.GetOneByName(game2).PlayerManager.Add(player1);
game2.PlayerManager.Add(player2); gr.GetOneByName(game2).PlayerManager.Add(player2);
game2.PlayerManager.Add(player3); gr.GetOneByName(game2).PlayerManager.Add(player3);
game3.PlayerManager.Add(player1); gr.GetOneByName(game3).PlayerManager.Add(player1);
game3.PlayerManager.Add(player3); gr.GetOneByName(game3).PlayerManager.Add(player3);
foreach (Game game in games) foreach (Game game in gr.GetAll())
{ {
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {
@ -82,7 +69,7 @@ namespace Data
} }
} }
return gameRunner; return gr;
} }
} }
} }

@ -49,7 +49,6 @@ namespace Model.Games
/// saves a given game -- does not allow copies yet: if a game with the same name exists, it is overwritten /// saves a given game -- does not allow copies yet: if a game with the same name exists, it is overwritten
/// </summary> /// </summary>
/// <param name="toAdd">a game to save</param> /// <param name="toAdd">a game to save</param>
/// <exception cref="NotSupportedException"></exception>
public Game Add(Game toAdd) public Game Add(Game toAdd)
{ {
if (toAdd is null) if (toAdd is null)
@ -66,8 +65,7 @@ namespace Model.Games
/// <summary> /// <summary>
/// creates a new game /// creates a new game
/// </summary> /// </summary>
/// <exception cref="NotSupportedException"></exception> public Game StartNewGame(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace>> dice)
public Game StartNewGame(string name, PlayerManager playerManager, IEnumerable<AbstractDie<AbstractDieFace>> dice)
{ {
Game game = new(name, playerManager, dice); Game game = new(name, playerManager, dice);
return Add(game); return Add(game);

Loading…
Cancel
Save