Files
basic-computer-games/31_Depth_Charge/csharp/src/Program.cs
Chris Reuter d26dbf036a Removed spaces from top-level directory names.
Spaces tend to cause annoyances in a Unix-style shell environment.
This change fixes that.
2021-11-21 18:30:21 -05: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));
}
}
}