-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathProgram.cs
30 lines (25 loc) · 1.3 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using Batnum;
using Batnum.Properties;
using System;
Console.WriteLine(ConsoleUtilities.CenterText(Resources.GAME_NAME));
Console.WriteLine(ConsoleUtilities.CenterText(Resources.INTRO_HEADER));
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
ConsoleUtilities.WriteLineWordWrap(Resources.INTRO_PART1);
Console.WriteLine();
ConsoleUtilities.WriteLineWordWrap(Resources.INTRO_PART2);
while (true)
{
Console.WriteLine();
int pileSize = ConsoleUtilities.AskNumberQuestion(Resources.START_QUESTION_PILESIZE, (n) => n > 1);
WinOptions winOption = (WinOptions)ConsoleUtilities.AskNumberQuestion(Resources.START_QUESTION_WINOPTION, (n) => Enum.IsDefined(typeof(WinOptions), n));
(int minTake, int maxTake) = ConsoleUtilities.AskNumberRangeQuestion(Resources.START_QUESTION_DRAWMINMAX, (min,max) => min >= 1 && max < pileSize && max > min);
Players currentPlayer = (Players)ConsoleUtilities.AskNumberQuestion(Resources.START_QUESTION_WHOSTARTS, (n) => Enum.IsDefined(typeof(Players), n));
BatnumGame game = new BatnumGame(pileSize, winOption, minTake, maxTake, currentPlayer, (question) => ConsoleUtilities.AskNumberQuestion(question, (c) => true));
while(game.IsRunning)
{
string message = game.TakeTurn();
Console.WriteLine(message);
}
}