Compare commits
No commits in common. "670dfcc43895ea0cd4ea944a76e45ad2794ee92d" and "fb5ac3c4b38699d060ff57b959a05f11fd6608c7" have entirely different histories.
670dfcc438
...
fb5ac3c4b3
|
|
@ -1,13 +0,0 @@
|
||||||
using GameModel;
|
|
||||||
using GameModel.Contract;
|
|
||||||
|
|
||||||
namespace GameData
|
|
||||||
{
|
|
||||||
public class DummyExpenseRepository : IExpenseRepository
|
|
||||||
{
|
|
||||||
public IEnumerable<Expense> GetAll()
|
|
||||||
{
|
|
||||||
return IExpenseRepository.TestData;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\GameModel\GameModel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
using Autofac;
|
using GameHandler.DeathGame;
|
||||||
using GameHandler.DeathGame;
|
|
||||||
using GameModel;
|
using GameModel;
|
||||||
using GameModel.Contract;
|
|
||||||
using GameModel.Exceptions;
|
using GameModel.Exceptions;
|
||||||
using GameModel.Mocks;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -15,40 +12,33 @@ namespace GameHandler.UnitTests
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
internal class GameServiceTests
|
internal class GameServiceTests
|
||||||
{
|
{
|
||||||
private GameService service;
|
|
||||||
|
|
||||||
[SetUp]
|
|
||||||
public void SetUp()
|
|
||||||
{
|
|
||||||
|
|
||||||
var builder = new ContainerBuilder();
|
|
||||||
builder.RegisterType<FakeExpenseRepository>().As<IExpenseRepository>();
|
|
||||||
service = new GameService(builder.Build());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Start_InvalidStartStatusThrowInvalidGameStateExcpetion()
|
public void Start_InvalidStartStatusThrowInvalidGameStateExcpetion()
|
||||||
{
|
{
|
||||||
|
GameService service = new GameService();
|
||||||
service.Start();
|
service.Start();
|
||||||
Assert.That(() => service.Start(), Throws.TypeOf<InvalidGameStateExcpetion>());
|
Assert.That(() => service.Start(), Throws.TypeOf<InvalidGameStateExcpetion>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Stop_InvalidStopStatusThrowInvalidGameStateExcpetion()
|
public void Stop_InvalidStopStatusThrowInvalidGameStateExcpetion()
|
||||||
{
|
{
|
||||||
|
GameService service = new GameService();
|
||||||
Assert.That(() => service.Stop(), Throws.TypeOf<InvalidGameStateExcpetion>());
|
Assert.That(() => service.Stop(), Throws.TypeOf<InvalidGameStateExcpetion>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void HandleThrow_NotPossibleBeforeStart()
|
public void HandleThrow_NotPossibleBeforeStart()
|
||||||
{
|
{
|
||||||
|
GameService service = new GameService();
|
||||||
Assert.That(() => service.HandleThrow(null), Throws.TypeOf<InvalidGameStateExcpetion>());
|
Assert.That(() => service.HandleThrow(null), Throws.TypeOf<InvalidGameStateExcpetion>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void HandleThrow_NotPossibleAfterStop()
|
public void HandleThrow_NotPossibleAfterStop()
|
||||||
{
|
{
|
||||||
|
GameService service = new GameService();
|
||||||
service.Start();
|
service.Start();
|
||||||
service.Stop();
|
service.Stop();
|
||||||
Assert.That(() => service.HandleThrow(null), Throws.TypeOf<InvalidGameStateExcpetion>());
|
Assert.That(() => service.HandleThrow(null), Throws.TypeOf<InvalidGameStateExcpetion>());
|
||||||
|
|
@ -56,7 +46,8 @@ namespace GameHandler.UnitTests
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void HandleThrow_UpdatesTheBoardState()
|
public void HandleThrow_UpdatesTheBoardState()
|
||||||
{
|
{
|
||||||
|
GameService service = new GameService();
|
||||||
var ts1 = service.Start(DeathGameHandler.GAMENAME_DEATHBOX);
|
var ts1 = service.Start(DeathGameHandler.GAMENAME_DEATHBOX);
|
||||||
var bs1 = ts1.ThrowState.BoardState;
|
var bs1 = ts1.ThrowState.BoardState;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,22 @@ namespace GameModel.Mocks
|
||||||
{
|
{
|
||||||
public class FakeExpenseRepository : IExpenseRepository
|
public class FakeExpenseRepository : IExpenseRepository
|
||||||
{
|
{
|
||||||
|
Expense[] Data = new[] {
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse", 0.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse2", 1.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FullSink }, "Gosse bei Anwurf", 1m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Circle }, "Kranz", 1m, true),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NinePins }, "alle Neune", 1m, true),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Eliminated }, "Ausgeschieden", 0.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NoWood }, "kein Holz", 0.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Bell }, "Klingel", 0.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FirstThrowFail }, "Anwurffehler", 0.5m, false),
|
||||||
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
|
||||||
|
};
|
||||||
|
|
||||||
public IEnumerable<Expense> GetAll()
|
public IEnumerable<Expense> GetAll()
|
||||||
{
|
{
|
||||||
return IExpenseRepository.TestData;
|
return Data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,20 +23,16 @@ namespace GameHandler
|
||||||
_expenseRepository = expenseRepository;
|
_expenseRepository = expenseRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
//private ExpenseModel _expenseModel = new ExpenseModel(Array.Empty<MemberExpense>());
|
private ExpenseModel _expenseModel = new ExpenseModel(Array.Empty<MemberExpense>());
|
||||||
|
|
||||||
public ExpenseModel CheckThrow(BoardState currentState, PinThrow pinThrow, int[] PlayerIds, ExpenseModel expenseModelToAppend = null)
|
public ExpenseModel CheckThrow(BoardState currentState, PinThrow pinThrow, int[] PlayerIds)
|
||||||
{
|
{
|
||||||
if (!PlayerIds.Any(_ => _ == pinThrow.PlayerId))
|
if (!PlayerIds.Any(_ => _ == pinThrow.PlayerId))
|
||||||
{
|
{
|
||||||
throw new InvalidPinThrowException($"Player {pinThrow.PlayerId} not found");
|
throw new InvalidPinThrowException($"Player {pinThrow.PlayerId} not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (expenseModelToAppend == null)
|
var memberExpenses = new List<MemberExpense>(_expenseModel.MemberExpenses);
|
||||||
{
|
|
||||||
expenseModelToAppend = new ExpenseModel(Array.Empty<MemberExpense>());
|
|
||||||
}
|
|
||||||
var memberExpenses = new List<MemberExpense>(expenseModelToAppend.MemberExpenses);
|
|
||||||
|
|
||||||
var triggers = pinThrow.GetExpenseTriggers(currentState);
|
var triggers = pinThrow.GetExpenseTriggers(currentState);
|
||||||
var destExpenses = _expenseRepository.GetAll().Where(_ => _.ExpenseTriggers.Any(et => triggers.Any(et2 => et2 == et)));
|
var destExpenses = _expenseRepository.GetAll().Where(_ => _.ExpenseTriggers.Any(et => triggers.Any(et2 => et2 == et)));
|
||||||
|
|
@ -57,7 +53,7 @@ namespace GameHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return expenseModelToAppend with { MemberExpenses = memberExpenses.ToArray() };
|
return _expenseModel with { MemberExpenses = memberExpenses.ToArray() };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Autofac" Version="7.1.0" />
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ namespace GameHandler.DeathGame
|
||||||
}
|
}
|
||||||
coffins.Add(new Coffin(playerId,0,0));
|
coffins.Add(new Coffin(playerId,0,0));
|
||||||
}
|
}
|
||||||
return new DeathGameModel(1, coffins.OrderBy(_ => random.Next()).ToList().ToArray(), deathGameSettings, playerIds);
|
return new DeathGameModel(1, coffins.OrderBy(_ => random.Next()).ToList().ToArray(), deathGameSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IGameModel Update(PinThrow pinThrow, IGameModel gameModel, BoardState boardStateBeforeUpdate)
|
public IGameModel Update(PinThrow pinThrow, IGameModel gameModel, BoardState boardStateBeforeUpdate)
|
||||||
|
|
|
||||||
|
|
@ -13,28 +13,21 @@ using GameModel.Contract;
|
||||||
using GameModel.DeathGame;
|
using GameModel.DeathGame;
|
||||||
using GameModel.Contracts;
|
using GameModel.Contracts;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using Autofac.Core;
|
|
||||||
using Autofac;
|
|
||||||
using static System.Formats.Asn1.AsnWriter;
|
|
||||||
|
|
||||||
namespace GameHandler
|
namespace GameHandler
|
||||||
{
|
{
|
||||||
public class GameService
|
public class GameService
|
||||||
{
|
{
|
||||||
private IContainer _container { get; set; }
|
|
||||||
private bool _isStarted = false;
|
private bool _isStarted = false;
|
||||||
private ILifetimeScope _scope;
|
|
||||||
private IGameHandler _gh;
|
private IGameHandler _gh;
|
||||||
private ThrowHandler _th;
|
private ThrowHandler _th;
|
||||||
private ExpenseHandler _eh;
|
private ExpenseHandler _eh;
|
||||||
private GameState _lastState;
|
private GameState _lastState;
|
||||||
public GameState GameModel { get => _lastState; }
|
public GameState GameModel { get { return _lastState; } }
|
||||||
|
|
||||||
private IExpenseRepository _expenseRepository { get => _scope.Resolve<IExpenseRepository>(); }
|
public GameService()
|
||||||
|
|
||||||
public GameService(IContainer container =null)
|
|
||||||
{
|
{
|
||||||
_container = container;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ThrowModeName
|
public string ThrowModeName
|
||||||
|
|
@ -64,16 +57,14 @@ namespace GameHandler
|
||||||
}
|
}
|
||||||
_isStarted = true;
|
_isStarted = true;
|
||||||
|
|
||||||
_scope = _container?.BeginLifetimeScope();
|
|
||||||
_gh = this.GetGameHandler(gameName);
|
_gh = this.GetGameHandler(gameName);
|
||||||
var gm = _gh.InitGameModel(playerIds, gameSettings);
|
var gm = _gh.InitGameModel(playerIds, gameSettings);
|
||||||
|
|
||||||
_th = new ThrowHandler();
|
_th = new ThrowHandler();
|
||||||
_eh = new ExpenseHandler(_expenseRepository);
|
_eh = new ExpenseHandler();
|
||||||
|
|
||||||
var throwState = ThrowState.Create(_gh.ThrowMode(), _gh.ThrowsPerRount());
|
var throwState = ThrowState.Create(_gh.ThrowMode(), _gh.ThrowsPerRount());
|
||||||
_lastState = GameState.Create(throwState, _gh.GetCurrentPlayerId(gm), gm, ExpenseModel.Create());
|
_lastState = GameState.Create(throwState, _gh.GetCurrentPlayerId(gm), gm);
|
||||||
|
|
||||||
return _lastState;
|
return _lastState;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -91,9 +82,10 @@ namespace GameHandler
|
||||||
|
|
||||||
var throwState = _th.Update(_lastState.ThrowState, pinThrow);
|
var throwState = _th.Update(_lastState.ThrowState, pinThrow);
|
||||||
var gameModel = _gh.Update(pinThrow, _lastState.GameModel, boardStateBeforeUpdate);
|
var gameModel = _gh.Update(pinThrow, _lastState.GameModel, boardStateBeforeUpdate);
|
||||||
var expenseModel = _eh.CheckThrow(throwState.BoardState, pinThrow, gameModel.PlayerIds, _lastState.ExpenseModel);
|
// todo: update expense model
|
||||||
|
|
||||||
_lastState = _lastState with { ThrowState = throwState, GameModel = gameModel, NextPlayerId = _gh.GetCurrentPlayerId(gameModel), ExpenseModel = expenseModel };
|
|
||||||
|
_lastState = _lastState with { ThrowState = throwState, GameModel = gameModel, NextPlayerId = _gh.GetCurrentPlayerId(gameModel) };
|
||||||
return _lastState ;
|
return _lastState ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -119,8 +111,6 @@ namespace GameHandler
|
||||||
throw new InvalidGameStateExcpetion("Game not started");
|
throw new InvalidGameStateExcpetion("Game not started");
|
||||||
}
|
}
|
||||||
_isStarted = false;
|
_isStarted = false;
|
||||||
|
|
||||||
_scope?.Dispose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ThrowCommandData ParseThrowData(string stringData)
|
public ThrowCommandData ParseThrowData(string stringData)
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,6 @@ namespace GameModel.Contract
|
||||||
{
|
{
|
||||||
public interface IExpenseRepository
|
public interface IExpenseRepository
|
||||||
{
|
{
|
||||||
static Expense[] TestData = new[] {
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse", 0.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse2", 1.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FullSink }, "Gosse bei Anwurf", 1m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Circle }, "Kranz", 1m, true),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NinePins }, "alle Neune", 1m, true),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Eliminated }, "Ausgeschieden", 0.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NoWood }, "kein Holz", 0.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Bell }, "Klingel", 0.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FirstThrowFail }, "Anwurffehler", 0.5m, false),
|
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
|
|
||||||
};
|
|
||||||
|
|
||||||
IEnumerable<Expense> GetAll();
|
IEnumerable<Expense> GetAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,7 +7,6 @@ using System.Threading.Tasks;
|
||||||
namespace GameModel.Contracts
|
namespace GameModel.Contracts
|
||||||
{
|
{
|
||||||
public interface IGameModel
|
public interface IGameModel
|
||||||
{
|
{
|
||||||
int[] PlayerIds { get; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace GameModel.DeathGame
|
namespace GameModel.DeathGame
|
||||||
{
|
{
|
||||||
public record DeathGameModel(int Id, Coffin[] Coffins, DeathGameSettings deathGameSettings, int[] PlayerIds) : IGameModel;
|
public record DeathGameModel(int Id, Coffin[] Coffins, DeathGameSettings deathGameSettings) : IGameModel;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,5 @@ namespace GameModel
|
||||||
{
|
{
|
||||||
public record ExpenseModel(MemberExpense[] MemberExpenses)
|
public record ExpenseModel(MemberExpense[] MemberExpenses)
|
||||||
{
|
{
|
||||||
public static ExpenseModel Create()
|
|
||||||
{
|
|
||||||
return new ExpenseModel(Array.Empty<MemberExpense>());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace GameModel
|
namespace GameModel
|
||||||
{
|
{
|
||||||
public record GameState(ThrowState ThrowState, int NextPlayerId, IGameModel GameModel, ExpenseModel ExpenseModel)
|
public record GameState(ThrowState ThrowState, int NextPlayerId, IGameModel GameModel)
|
||||||
{
|
{
|
||||||
public static GameState Create(ThrowState throwState, int nextPlayerId, IGameModel gameModel, ExpenseModel expenseModel)
|
public static GameState Create(ThrowState throwState, int nextPlayerId, IGameModel gm)
|
||||||
{
|
{
|
||||||
return new GameState(throwState, nextPlayerId, gameModel, expenseModel);
|
return new GameState(throwState, nextPlayerId, gm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -198,12 +198,9 @@ namespace GameModel
|
||||||
|
|
||||||
internal static PinPicture Create(string pindata)
|
internal static PinPicture Create(string pindata)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(pindata))
|
if (!int.TryParse(pindata, out int dummy))
|
||||||
{
|
{
|
||||||
if (!int.TryParse(pindata, out int dummy))
|
throw new InvalidDataException($"{pindata} cannot be parsed as throw");
|
||||||
{
|
|
||||||
throw new InvalidDataException($"{pindata} cannot be parsed as throw");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var states = new[] {
|
var states = new[] {
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,9 @@ namespace GameModel
|
||||||
|
|
||||||
public static PinThrow Create(string pindata, bool isBell, bool isSink, int playerId)
|
public static PinThrow Create(string pindata, bool isBell, bool isSink, int playerId)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(pindata))
|
if (!int.TryParse(pindata, out int dummy))
|
||||||
{
|
{
|
||||||
if (!int.TryParse(pindata, out int dummy))
|
throw new InvalidDataException($"{pindata} cannot be parsed as throw");
|
||||||
{
|
|
||||||
throw new InvalidDataException($"{pindata} cannot be parsed as throw");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var pic = PinPicture.Create(pindata);
|
var pic = PinPicture.Create(pindata);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\GameData\GameData.csproj" />
|
|
||||||
<ProjectReference Include="..\GameHandler\GameHandler.csproj" />
|
<ProjectReference Include="..\GameHandler\GameHandler.csproj" />
|
||||||
<ProjectReference Include="..\GameModel\GameModel.csproj" />
|
<ProjectReference Include="..\GameModel\GameModel.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
// See https://aka.ms/new-console-template for more information
|
// See https://aka.ms/new-console-template for more information
|
||||||
using Autofac;
|
|
||||||
using CommandLine;
|
using CommandLine;
|
||||||
using GameData;
|
|
||||||
using GameHandler;
|
using GameHandler;
|
||||||
using GameHandler.DeathGame;
|
using GameHandler.DeathGame;
|
||||||
using GameHandler.Extensions;
|
using GameHandler.Extensions;
|
||||||
|
|
@ -50,7 +48,7 @@ void NewGameAction()
|
||||||
var option = string.Empty;
|
var option = string.Empty;
|
||||||
//do
|
//do
|
||||||
//{
|
//{
|
||||||
var games = new GameService(null).GetGameHandler().Keys.Order().ToList();
|
var games = new GameService().GetGameHandler().Keys.Order().ToList();
|
||||||
games.Add("Abbreche");
|
games.Add("Abbreche");
|
||||||
|
|
||||||
option = AnsiConsole.Prompt(
|
option = AnsiConsole.Prompt(
|
||||||
|
|
@ -78,7 +76,7 @@ void NewGameAction()
|
||||||
|
|
||||||
void StartGameAction(string gameName)
|
void StartGameAction(string gameName)
|
||||||
{
|
{
|
||||||
_gs = new GameService(GetContainer());
|
_gs = new GameService();
|
||||||
var bs = _gs.Start(new[] { 1,2,3,4}, GetGameSettings(gameName), gameName );
|
var bs = _gs.Start(new[] { 1,2,3,4}, GetGameSettings(gameName), gameName );
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -120,13 +118,6 @@ void StartGameAction(string gameName)
|
||||||
ShowMainMenu();
|
ShowMainMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
IContainer GetContainer()
|
|
||||||
{
|
|
||||||
var builder = new ContainerBuilder();
|
|
||||||
builder.RegisterType<DummyExpenseRepository>().As<IExpenseRepository>();
|
|
||||||
return builder.Build();
|
|
||||||
}
|
|
||||||
|
|
||||||
IGameSettings GetGameSettings(string gameName)
|
IGameSettings GetGameSettings(string gameName)
|
||||||
{
|
{
|
||||||
if (gameName == DeathGameHandler.GAMENAME_DEATHBOX)
|
if (gameName == DeathGameHandler.GAMENAME_DEATHBOX)
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GameModel.UnitTests", "Game
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KoogleCli", "KoogleCli\KoogleCli.csproj", "{3FF45A02-42F9-4E75-993B-6582DD2A22BF}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KoogleCli", "KoogleCli\KoogleCli.csproj", "{3FF45A02-42F9-4E75-993B-6582DD2A22BF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameData", "GameData\GameData.csproj", "{D026F84B-06F5-4BA4-8AB7-D1D385F0611C}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|
@ -41,10 +39,6 @@ Global
|
||||||
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
{3FF45A02-42F9-4E75-993B-6582DD2A22BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{D026F84B-06F5-4BA4-8AB7-D1D385F0611C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{D026F84B-06F5-4BA4-8AB7-D1D385F0611C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{D026F84B-06F5-4BA4-8AB7-D1D385F0611C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{D026F84B-06F5-4BA4-8AB7-D1D385F0611C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue