using System.Text.RegularExpressions;
static void Happy(bool gotcha)
for(int i = 0; i < 6; i++)
Console.WriteLine($"{new string('*', 12)}");
Console.WriteLine($"* 0{new string(' ', 2)}0 *");
Console.Write($"* *{new string(' ', 6)}* *");
Console.Write(" Gotcha!");
Console.WriteLine($"* {new string('*', 6)} *");
Console.WriteLine($"*{new string(' ', 10)}*");
static void Sad(bool gotcha)
for(int i = 0; i < 6; i++)
Console.WriteLine($"{new string('*', 12)}");
Console.WriteLine($"* 0{new string(' ', 2)}0 *");
Console.Write($"* *{new string(' ', 6)}* *");
Console.Write(" Gotcha!");
Console.WriteLine($"* {new string('*', 6)} *");
Console.WriteLine($"*{new string(' ', 10)}*");
static void printBoard(int[,] array)
Console.WriteLine(" 1 2 3 4 5 6 7 8 9 10");
for (int i = 0; i < 10; i++)
Console.Write(i==0?"A ":i==1?"B ":i==2?"C ":i==3?"D ":i==4?"E ":i==5?"F ":i==6?"G ":i==7?"H ":i==8?"I ":"J ");
Console.Write(array[i, j]+" ");
static void Main(string[] args)
Regex rgx = new Regex(@"[a-j]([1-9]|10)-[a-j]([1-9]|10)");
Regex hitter = new Regex(@"[a-j]([1-9]|10)");
int[,] myBoard= new int[10, 10];
int[,] botBoard = new int[10, 10];
int[,] myBoardSees = new int[10,10];
int[,] botBoardSees = new int[10,10];
string[] myHitBoard = new string[17];
string[] botHitBoard = new string[17];
Console.WriteLine("Welcome to BattleShip, a game where you place your ships\n and destroy your opponents!\n");
Console.WriteLine("\nPlease place your Aircraft Carrier: 5 tiles\n(Example Outputs: A1-A5 or A1-E1)");
Console.WriteLine("\nYour Seas:");
input = Console.ReadLine().ToLower().Replace(" ", "");
Console.WriteLine("Double check your input. Try again.");
input = Console.ReadLine();
byte[] conversion = Encoding.ASCII.GetBytes(input);
if (!(((input.Substring(0, 1).Equals(input.Substring(3, 1)) && (Convert.ToInt32(input.Substring(1,1))+4 == (Convert.ToInt32(input.Substring(4,1)))))||((input.Substring(1,1).Equals(input.Substring(4,1))&&((conversion[0]-97+4)==(conversion[3]-97))))))){
Console.WriteLine("Remember the Carrier takes up 5 spaces and can't be placed on diagonals. Try again.");
input = Console.ReadLine();
if (input.Substring(0,1).Equals(input.Substring(3,1))){
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+2]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+3]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+4]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+2] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+3] = 1;
myHitBoard[0] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1));
myHitBoard[1] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+1);
myHitBoard[2] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+2);
myHitBoard[3] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+3);
myHitBoard[4] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+4);
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97+3,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97+4,Convert.ToInt32(input.Substring(1,1))]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+3,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+4,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myHitBoard[0] = ""+(Convert.ToChar(conversion[0]))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[1] = ""+(Convert.ToChar(conversion[0]+1))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[2] = ""+(Convert.ToChar(conversion[0]+2))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[3] = ""+(Convert.ToChar(conversion[0]+3))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[4] = ""+(Convert.ToChar(conversion[0]+4))+Convert.ToInt32(input.Substring(1,1));
Console.WriteLine("\nPlease place your Battleship: 4 tiles\n(Example Outputs: A1-A4 or A1-D1)");
Console.WriteLine("\nYour Seas:");
input = Console.ReadLine().ToLower().Replace(" ", "");
Console.WriteLine("Double check your input. Try again.");
input = Console.ReadLine();
byte[] conversion = Encoding.ASCII.GetBytes(input);
if (!(((input.Substring(0, 1).Equals(input.Substring(3, 1)) && (Convert.ToInt32(input.Substring(1,1))+3 == (Convert.ToInt32(input.Substring(4,1)))))||((input.Substring(1,1).Equals(input.Substring(4,1))&&((conversion[0]-97+3)==(conversion[3]-97))))))){
Console.WriteLine("Remember the Battleship takes up 4 spaces and can't be placed on diagonals. Try again.");
input = Console.ReadLine();
if (input.Substring(0,1).Equals(input.Substring(3,1))){
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+2]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+2] = 1;
myHitBoard[5] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1));
myHitBoard[6] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+1);
myHitBoard[7] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+2);
myHitBoard[8] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+3);
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+3,Convert.ToInt32(input.Substring(1,1))-1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+3,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myHitBoard[5] = ""+(Convert.ToChar(conversion[0]))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[6] = ""+(Convert.ToChar(conversion[0]+1))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[7] = ""+(Convert.ToChar(conversion[0]+2))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[8] = ""+(Convert.ToChar(conversion[0]+3))+Convert.ToInt32(input.Substring(1,1));
Console.WriteLine("\nPlease place your Cruiser: 3 tiles\n(Example Outputs: A1-A3 or A1-C1)");
Console.WriteLine("\nYour Seas:");
input = Console.ReadLine().ToLower().Replace(" ", "");
Console.WriteLine("Double check your input. Try again.");
input = Console.ReadLine();
byte[] conversion = Encoding.ASCII.GetBytes(input);
if (!(((input.Substring(0, 1).Equals(input.Substring(3, 1)) && (Convert.ToInt32(input.Substring(1,1))+2 == (Convert.ToInt32(input.Substring(4,1)))))||((input.Substring(1,1).Equals(input.Substring(4,1))&&((conversion[0]-97+2)==(conversion[3]-97))))))){
Console.WriteLine("Remember the Cruiser takes up 3 spaces and can't be placed on diagonals. Try again.");
input = Console.ReadLine();
if (input.Substring(0,1).Equals(input.Substring(3,1))){
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1] = 1;
myHitBoard[9] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1));
myHitBoard[10] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+1);
myHitBoard[11] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+2);
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myHitBoard[9] = ""+(Convert.ToChar(conversion[0]))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[10] = ""+(Convert.ToChar(conversion[0]+1))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[11] = ""+(Convert.ToChar(conversion[0]+2))+Convert.ToInt32(input.Substring(1,1));
Console.WriteLine("\nPlease place your Submarine: 3 tiles\n(Example Outputs: A1-A3 or A1-C1)");
Console.WriteLine("\nYour Seas:");
input = Console.ReadLine().ToLower().Replace(" ", "");
Console.WriteLine("Double check your input. Try again.");
input = Console.ReadLine();
byte[] conversion = Encoding.ASCII.GetBytes(input);
if (!(((input.Substring(0, 1).Equals(input.Substring(3, 1)) && (Convert.ToInt32(input.Substring(1,1))+2 == (Convert.ToInt32(input.Substring(4,1)))))||((input.Substring(1,1).Equals(input.Substring(4,1))&&((conversion[0]-97+2)==(conversion[3]-97))))))){
Console.WriteLine("Remember the Submarine takes up 3 spaces and can't be placed on diagonals. Try again.");
input = Console.ReadLine();
if (input.Substring(0,1).Equals(input.Substring(3,1))){
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))+1] = 1;
myHitBoard[12] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1));
myHitBoard[13] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+1);
myHitBoard[14] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+2);
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+2,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myHitBoard[12] = ""+(Convert.ToChar(conversion[0]))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[13] = ""+(Convert.ToChar(conversion[0]+1))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[14] = ""+(Convert.ToChar(conversion[0]+2))+Convert.ToInt32(input.Substring(1,1));
Console.WriteLine("\nPlease place your Destroyer: 2 tiles\n(Example Outputs: A1-A2 or A1-B1)");
Console.WriteLine("\nYour Seas:");
input = Console.ReadLine().ToLower().Replace(" ", "");
Console.WriteLine("Double check your input. Try again.");
input = Console.ReadLine();
byte[] conversion = Encoding.ASCII.GetBytes(input);
if (!(((input.Substring(0, 1).Equals(input.Substring(3, 1)) && (Convert.ToInt32(input.Substring(1,1))+1 == (Convert.ToInt32(input.Substring(4,1)))))||((input.Substring(1,1).Equals(input.Substring(4,1))&&((conversion[0]-97+1)==(conversion[3]-97))))))){
Console.WriteLine("Remember the Destroyer takes up 2 spaces and can't be placed on diagonals. Try again.");
input = Console.ReadLine();
if (input.Substring(0,1).Equals(input.Substring(3,1))){
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))] = 1;
myHitBoard[15] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1));
myHitBoard[16] = input.Substring(0,1)+Convert.ToInt32(input.Substring(1,1)+1);
if(myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1]!=0||myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1]!=0){
Console.WriteLine("You already have a ship there. Try again.");
input = Console.ReadLine();
myBoard[conversion[0]-97,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myBoard[conversion[0]-97+1,Convert.ToInt32(input.Substring(1,1))-1] = 1;
myHitBoard[15] = ""+(Convert.ToChar(conversion[0]))+Convert.ToInt32(input.Substring(1,1));
myHitBoard[16] = ""+(Convert.ToChar(conversion[0]+1))+Convert.ToInt32(input.Substring(1,1));
string allignment = r.Next(0,2)==0?"row":"column";
if(allignment.Equals("col")){
botBoard[xPos+1,yPos] = 1;
botBoard[xPos+2,yPos] = 1;
botBoard[xPos+3,yPos] = 1;
botBoard[xPos+4,yPos] = 1;
botHitBoard[0] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[1] = ""+Convert.ToChar((byte)(xPos+62))+(yPos+1);
botHitBoard[2] = ""+Convert.ToChar((byte)(xPos+63))+(yPos+1);
botHitBoard[3] = ""+Convert.ToChar((byte)(xPos+64))+(yPos+1);
botHitBoard[4] = ""+Convert.ToChar((byte)(xPos+65))+(yPos+1);
botBoard[xPos,yPos+1] = 1;
botBoard[xPos,yPos+2] = 1;
botBoard[xPos,yPos+3] = 1;
botBoard[xPos,yPos+4] = 1;
botHitBoard[0] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[1] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+2);
botHitBoard[2] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+3);
botHitBoard[3] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+4);
botHitBoard[4] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+5);
allignment = r.Next(0,2)==0?"row":"column";
if(allignment.Equals("col")){
if(botBoard[xPos,yPos] !=0){
botBoard[xPos+1,yPos] = 1;
botBoard[xPos+2,yPos] = 1;
botBoard[xPos+3,yPos] = 1;
botHitBoard[5] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[6] = ""+Convert.ToChar((byte)(xPos+62))+(yPos+1);
botHitBoard[7] = ""+Convert.ToChar((byte)(xPos+63))+(yPos+1);
botHitBoard[8] = ""+Convert.ToChar((byte)(xPos+64))+(yPos+1);
if(botBoard[xPos,yPos] !=0){
botBoard[xPos,yPos+1] = 1;
botBoard[xPos,yPos+2] = 1;
botBoard[xPos,yPos+3] = 1;
botHitBoard[5] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[6] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+2);
botHitBoard[7] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+3);
botHitBoard[8] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+4);
allignment = r.Next(0,2)==0?"row":"column";
if(allignment.Equals("col")){
if(botBoard[xPos,yPos] !=0){
botBoard[xPos+1,yPos] = 1;
botBoard[xPos+2,yPos] = 1;
botHitBoard[9] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[10] = ""+Convert.ToChar((byte)(xPos+62))+(yPos+1);
botHitBoard[11] = ""+Convert.ToChar((byte)(xPos+63))+(yPos+1);
if(botBoard[xPos,yPos] !=0){
botBoard[xPos,yPos+1] = 1;
botBoard[xPos,yPos+2] = 1;
botHitBoard[9] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[10] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+2);
botHitBoard[11] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+3);
allignment = r.Next(0,2)==0?"col":"column";
if(allignment.Equals("row")){
if(botBoard[xPos,yPos] !=0){
botBoard[xPos+1,yPos] = 1;
botBoard[xPos+2,yPos] = 1;
botHitBoard[12] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[13] = ""+Convert.ToChar((byte)(xPos+62))+(yPos+1);
botHitBoard[14] = ""+Convert.ToChar((byte)(xPos+63))+(yPos+1);
if(botBoard[xPos,yPos] !=0){
botBoard[xPos,yPos+1] = 1;
botBoard[xPos,yPos+2] = 1;
botHitBoard[12] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[13] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+2);
botHitBoard[14] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+3);
allignment = r.Next(0,2)==0?"row":"column";
if(allignment.Equals("col")){
if(botBoard[xPos,yPos] !=0){
botBoard[xPos+1,yPos] = 1;
botHitBoard[15] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[16] = ""+Convert.ToChar((byte)(xPos+62))+(yPos+1);
if(botBoard[xPos,yPos] !=0){
botBoard[xPos,yPos+1] = 1;
botHitBoard[15] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+1);
botHitBoard[16] = ""+Convert.ToChar((byte)(xPos+61))+(yPos+2);
Console.WriteLine("Bot Seas");
Console.WriteLine("Where will you attack?\n(Ex:A1)");
input = Console.ReadLine();
while(!hitter.IsMatch(input)){
Console.WriteLine("Invalid format");
input = Console.ReadLine().ToLower();
if(Array.IndexOf(botHitBoard,input)>-1){
botBoard[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] = 8;
myBoardSees[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] = 8;
Console.WriteLine("Hit!");
if(Array.IndexOf(botHitBoard, input)<5){
if(i!=Array.IndexOf(botHitBoard, input)&&botHitBoard[i]!="x"){
Console.WriteLine("You sunk the Carrier!");
else if(Array.IndexOf(botHitBoard, input)<9){
if(i!=Array.IndexOf(botHitBoard, input)&&botHitBoard[i]!="x"){
Console.WriteLine("You sunk the Battleship!");
else if(Array.IndexOf(botHitBoard, input)<12){
if(i!=Array.IndexOf(botHitBoard, input)&&botHitBoard[i]!="x"){
Console.WriteLine("You sunk the Cruiser!!");
else if(Array.IndexOf(botHitBoard, input)<15){
for(int i =12; i<15;i++){
if(i!=Array.IndexOf(botHitBoard, input)&&botHitBoard[i]!="x"){
Console.WriteLine("You sunk the Submarine!");
for(int i =15; i<17;i++){
if(i!=Array.IndexOf(botHitBoard, input)&&botHitBoard[i]!="x"){
Console.WriteLine("You sunk the Destroyer!");
botHitBoard[Array.IndexOf(botHitBoard,input)] = "x";
else if(botBoard[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] == 8){
Console.WriteLine("You already hit there lol");
else if(botBoard[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] == 3){
Console.WriteLine("You already whiffed there lol");
botBoard[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] = 3;
myBoardSees[(byte)(Convert.ToChar(input.Substring(0,1))-97),Convert.ToInt32(input.Substring(1,1))-1] = 3;
Console.WriteLine("Miss!");
string[] priority = {"",""};
string[] direction = {"right","left","up","down"};
if(priority[0].Equals("")){
if(botBoardSees[i,j]==0){
comparedValue=botBoardSees[increment,j];
while(!(increment == -1)){
if(botBoardSees[increment,j]==0){
Console.WriteLine(""+i+j+"checkup");
comparedValue=botBoardSees[increment,j];
while(!(increment == 10)){
if(botBoardSees[increment,j]==0){
Console.WriteLine(""+i+j+"checkdown");
comparedValue=botBoardSees[i,yncrement];
while(!(yncrement == -1)){
if(botBoardSees[i,yncrement]==0){
Console.WriteLine(""+i+j+"checkleft");
comparedValue=botBoardSees[i,yncrement];
while(!(yncrement == 10)){
if(botBoardSees[i,yncrement]==0){
Console.WriteLine(""+i+j+"checkright");
priority[0] = ""+Convert.ToChar((byte)(mostX+97))+mostY;
if(Convert.ToInt32(priority[0].Substring(1,1)) ==0){
Console.WriteLine($"Bot: I'll attack {priority[0].Substring(0,1)}{Convert.ToInt32(priority[0].Substring(1,1))-1}");
else if(directionCount==2){
if(Convert.ToInt32(priority[0].Substring(1,1)) ==9){
Console.WriteLine($"Bot: I'll attack {priority[0].Substring(0,1)}{Convert.ToInt32(priority[0].Substring(1,1))+1}");
else if(directionCount==3){
if(priority[0].Substring(0,1).Equals("a"){
Console.WriteLine($"Bot: I'll attack {Convert.ToChar((Byte)(Convert.ToChar(priority[0].Substring(0,1)))-1)}{priority[0].Substring(1,1)}");
else if(directionCount==4){
if(priority[0].Substring(0,1).Equals("j"){
Console.WriteLine($"Bot: I'll attack {Convert.ToChar((Byte)(Convert.ToChar(priority[0].Substring(0,1)))+1)}{priority[0].Substring(1,1)}");
Console.Write($"Bot: I'll target {Convert.ToChar((byte)(mostX+97))}{mostY+1} which is a ");
if(Array.IndexOf(myHitBoard,""+Convert.ToChar((byte)(mostX+97))+(mostY+1))>-1){
myBoard[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] = 8;
botBoardSees[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] = 8;
Console.WriteLine("Hit!\n");
Console.WriteLine(Array.IndexOf(botHitBoard,(""+Convert.ToChar((byte)(mostX+97))+(mostY+1))));
myHitBoard[Array.IndexOf(botHitBoard,(""+Convert.ToChar((byte)(mostX+97))+(mostY+1)))] = "x";
else if(myBoard[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] == 8){
Console.WriteLine("You already hit there lol");
else if(myBoard[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] == 3){
Console.WriteLine("You already whiffed there lol");
myBoard[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] = 3;
botBoardSees[(byte)(Convert.ToChar((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(0,1))-97),Convert.ToInt32((""+Convert.ToChar((byte)(mostX+97))+(mostY+1)).Substring(1,1))-1] = 3;
Console.WriteLine("Miss!\n");
foreach(string pos in myHitBoard){
foreach(string pos in botHitBoard){
Console.WriteLine($"The winner is {winner}!");
Console.WriteLine("Would you like to play again?");
input = Console.ReadLine().ToLower();
while(input!="yes"|input!="no"){
Console.WriteLine("Answer yes or no");
input=Console.ReadLine();