mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 23:26:40 -08:00
Simplify DepthCharge (C#) folder structure
This commit is contained in:
47
31_Depth_Charge/csharp/Program.cs
Normal file
47
31_Depth_Charge/csharp/Program.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user