mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 07:10:42 -08:00
48 lines
1.3 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|