Files
basic-computer-games/31_Depth_Charge/csharp/Program.cs
2022-01-17 09:15:40 +02:00

48 lines
1.3 KiB
C#

using System;
namespace DepthCharge
{
class Program
{
static void Main(string[] args)
{
var random = new Random();
View.ShowBanner();
var dimension = Controller.InputDimension();
var maximumGuesses = CalculateMaximumGuesses();
View.ShowInstructions(maximumGuesses);
do
{
View.ShowStartGame();
var submarineCoordinates = PlaceSubmarine();
var trailNumber = 1;
var guess = (0, 0, 0);
do
{
guess = Controller.InputCoordinates(trailNumber);
if (guess != submarineCoordinates)
View.ShowGuessPlacement(submarineCoordinates, guess);
}
while (guess != submarineCoordinates && trailNumber++ < maximumGuesses);
View.ShowGameResult(submarineCoordinates, guess, trailNumber);
}
while (Controller.InputPlayAgain());
View.ShowFarewell();
int CalculateMaximumGuesses() =>
(int)Math.Log2(dimension) + 1;
(int x, int y, int depth) PlaceSubmarine() =>
(random.Next(dimension), random.Next(dimension), random.Next(dimension));
}
}
}