Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions Battleship.Ascii/ConsoleHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
using System;

namespace Battleship.Ascii
{
static class ConsoleHelper {
public static void DrawTitle()
{
Console.Title = "Battleship";
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.Clear();

Console.WriteLine(" |__");
Console.WriteLine(@" |\/");
Console.WriteLine(" ---");
Console.WriteLine(" / | [");
Console.WriteLine(" ! | |||");
Console.WriteLine(" _/| _/|-++'");
Console.WriteLine(" + +--| |--|--|_ |-");
Console.WriteLine(@" { /|__| |/\__| |--- |||__/");
Console.WriteLine(@" +---------------___[}-_===_.'____ /\");
Console.WriteLine(@" ____`-' ||___-{]_| _[}- | |_[___\==-- \/ _");
Console.WriteLine(@" __..._____--==/___]_|__|_____________________________[___\==--____,------' .7");
Console.WriteLine(@"| Welcome to Battleship BB-61/");
Console.WriteLine(@" \_________________________________________________________________________|");
Console.WriteLine();
}

public static void DrawStartGame(){
Console.Clear();
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine(" __");
Console.WriteLine(@" / \");
Console.WriteLine(" .-. | |");
Console.WriteLine(@" * _.-' \ \__/");
Console.WriteLine(@" \.-' \");
Console.WriteLine(" / _/");
Console.WriteLine(@" | _ /""");
Console.WriteLine(@" | /_\'");
Console.WriteLine(@" \ \_/");
Console.WriteLine(@" """"""""");
}

public static void DrawExplode()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(@" \ . ./");
Console.WriteLine(@" \ .:"";'.:.."" /");
Console.WriteLine(@" (M^^.^~~:.'"").");
Console.WriteLine(@" - (/ . . . \ \) -");
Console.WriteLine(@" ((| :. ~ ^ :. .|))");
Console.WriteLine(@" - (\- | \ / | /) -");
Console.WriteLine(@" -\ \ / /-");
Console.WriteLine(@" \ \ / /");
}

public static void DrawMiss()
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(@" _ _ ");
Console.WriteLine(@" | | | | ");
Console.WriteLine(@" ___ _ __ | | __ _ ___| |__ ");
Console.WriteLine(@" / __| '_ \| |/ _` / __| '_ \ ");
Console.WriteLine(@" \__ \ |_) | | (_| \__ \ | | |");
Console.WriteLine(@" |___/ .__/|_|\__,_|___/_| |_|");
Console.WriteLine(@" | | ");
Console.WriteLine(@" |_| ");
}
}
}
59 changes: 19 additions & 40 deletions Battleship.Ascii/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,24 +30,7 @@ static void Main()

try
{
Console.Title = "Battleship";
Console.BackgroundColor = ConsoleColor.Black;
Console.Clear();

Console.WriteLine(" |__");
Console.WriteLine(@" |\/");
Console.WriteLine(" ---");
Console.WriteLine(" / | [");
Console.WriteLine(" ! | |||");
Console.WriteLine(" _/| _/|-++'");
Console.WriteLine(" + +--| |--|--|_ |-");
Console.WriteLine(@" { /|__| |/\__| |--- |||__/");
Console.WriteLine(@" +---------------___[}-_===_.'____ /\");
Console.WriteLine(@" ____`-' ||___-{]_| _[}- | |_[___\==-- \/ _");
Console.WriteLine(@" __..._____--==/___]_|__|_____________________________[___\==--____,------' .7");
Console.WriteLine(@"| Welcome to Battleship BB-61/");
Console.WriteLine(@" \_________________________________________________________________________|");
Console.WriteLine();
ConsoleHelper.DrawTitle();

InitializeGame();

Expand All @@ -66,21 +49,13 @@ static void Main()

private static void StartGame()
{
Console.Clear();
Console.WriteLine(" __");
Console.WriteLine(@" / \");
Console.WriteLine(" .-. | |");
Console.WriteLine(@" * _.-' \ \__/");
Console.WriteLine(@" \.-' \");
Console.WriteLine(" / _/");
Console.WriteLine(@" | _ /""");
Console.WriteLine(@" | /_\'");
Console.WriteLine(@" \ \_/");
Console.WriteLine(@" """"""""");
Console.Clear();
ConsoleHelper.DrawStartGame();
GameController gc = new GameController();

do
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine();
Console.WriteLine("Player, it's your turn");
Console.WriteLine("Enter coordinates for your shot :");
Expand All @@ -96,13 +71,16 @@ private static void StartGame()
if (isHit)
{
Explode();
}
} else {
ConsoleHelper.DrawMiss();
}
if (isSunk)
{
// TODO: add actual ship
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine($"Ship was sunk");
}

Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(isHit ? "Yeah ! Nice hit !" : "Miss");

position = GetRandomPosition();
Expand All @@ -113,6 +91,7 @@ private static void StartGame()

telemetryClient.TrackEvent("Computer_ShootPosition", new Dictionary<string, string>() { { "Position", position.ToString() }, { "IsHit", isHit.ToString() } });
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Computer shot in {0}{1} and {2}", position.Column, position.Row, isHit ? "has hit your ship !" : "missed");
if (isHit)
{
Expand All @@ -121,24 +100,22 @@ private static void StartGame()

if (isSunk)
{
Console.ForegroundColor = ConsoleColor.Green;
// TODO: add actual ship
Console.WriteLine($"Ship was sunk");
}
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WriteLine();
Console.WriteLine("-------------------------------------------");
Console.WriteLine();
}
while (true);
}
private static void Explode()
{
Console.Beep();
ConsoleHelper.DrawExplode();

Console.WriteLine(@" \ . ./");
Console.WriteLine(@" \ .:"";'.:.."" /");
Console.WriteLine(@" (M^^.^~~:.'"").");
Console.WriteLine(@" - (/ . . . \ \) -");
Console.WriteLine(@" ((| :. ~ ^ :. .|))");
Console.WriteLine(@" - (\- | \ / | /) -");
Console.WriteLine(@" -\ \ / /-");
Console.WriteLine(@" \ \ / /");
}
public static Position ParsePosition(string input)
{
Expand Down Expand Up @@ -169,6 +146,7 @@ private static void InitializeGame()

private static void InitializeBoard()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Please enter a height and width for the board :");

int height = 0;
Expand Down Expand Up @@ -203,8 +181,9 @@ private static void InitializeBoard()
}
private static void InitializeMyFleet()
{
Console.Clear();
myFleet = GameController.InitializeShips().ToList();

Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(String.Format("Please position your fleet (Game board size is from A to {0} and 1 to {1}) :", (Letters)myBoard.Height, myBoard.Width));

foreach (var ship in myFleet)
Expand Down