using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Desarrollo
{
class Program
{
char[,] tablero = new char[12, 12];
void inicializar_tablero()
{
int i, j;
for (i = 0; i < 12; i++)
for (j = 0; j < 12; j++)
tablero[i, j] = ' ';
}
int jugada_corrrecta(int fila, int col)
{
int jugada_correcta;
jugada_correcta = 1;
if (fila >= 12 || fila < 0 || col >= 12 || col < 0)
jugada_correcta = 0;
if (jugada_correcta == 1)
{
if (tablero[fila, col] == '0' || tablero[fila, col] == 'X')
jugada_correcta = 0;
}
if (jugada_correcta == 1)
{
if (fila != 12 -1 && tablero[fila + 1, col] == ' ')
jugada_correcta = 0;
}
return jugada_correcta;
}
int hacer_jugada(int jug)
{
int fila, col;
int i;
char ficha;
int resultado_jugada;
resultado_jugada = 1;
col = 0;
if (jug == 0)
{
ficha = '0';
Console.WriteLine("!!!!!! El usuario coloca ficha !!!!.\n");
do
{
if (resultado_jugada == 0)
Console.WriteLine("Jugada Incorrecta.\n");
Console.Write("Introduce la columna en la que quieres colocar la ficha: ");
//creo que era columa y no ficha
col = int.Parse(Console.ReadLine());
i = 12 - 1;
if (tablero[12 - 1, col] != ' ')
{
while (i < 12 && (tablero[i, col] == 'X' || tablero[i, col] == '0'))
i--;
}
fila = i;
resultado_jugada = jugada_corrrecta(fila, col);
} while (resultado_jugada == 0);
}
else
{
ficha = 'X';
do
{
col = generar_numero();
i = 12 - 1;
if (tablero[12 - 1, col] != ' ')
{
while (i < 12 && (tablero[i, col] == 'X' || tablero[i, col] == '0'))
i--;
}
fila = i;
resultado_jugada = jugada_corrrecta(fila, col);
} while (resultado_jugada == 0);
}
if (resultado_jugada == 1)
tablero[fila, col] = ficha;
return resultado_jugada;
}
int generar_numero()
{
int num;
num = 0;
Random rnd = new Random();
num = rnd.Next(0, 12);
return num;
}
void mostrar_tablero() //pinta
{
int i, j;
int ficha;
Console.Clear(); // verificar este clear tal vez se un mensaje "Clear"
Console.WriteLine("\n");
for (j = 0; j < 8 * 5 / 2; j++)
Console.WriteLine(" ");
Console.WriteLine("_____________________CONECTA 4________________");
Console.Write("\n F ---------");
//Console.Write("\t F -");
for (j = 0; j < 12 + 1; j++)
Console.Write("----");
Console.Write("\n");
for (i = 0; i < 12; i++)
{
Console.Write(" ");
if (i == 0)
Console.Write("I");
else if (i == 1)
Console.Write("A");
else
Console.Write(" ");
Console.Write(" | ", i);
for (j = 0; j < 12; j++)
{
Console.Write(" ");
Console.Write(tablero[i, j]);
Console.Write(" | ");
}
Console.Write(" ");
if (i == 0)
Console.Write("\n L");
else if (i == 1)
Console.Write("\n S");
else
Console.Write("\n ");
Console.Write(" -------");
for (j = 0; j < 8 + 1; j++)
Console.Write("------");
Console.Write("\n");
}
Console.Write(" ");
for (j = 0; j < 12; j++)
Console.Write(" ", j);
Console.Write("COLUMNAS 12\n"); //verificar aqui tal vez sea el nombre COLUMNAS y no el numero del valor
Console.Write("\n");
}
int comprobar_fin()
{
int i, j;
int ganador;
ganador = -1;
//comprobar si hay 4 en linea horizontal
for (i = 0; i < 12; i++)
{
for (j = 0; j < 12 - 3; j++)
{
if (tablero[i, j] == 'X' && tablero[i, j + 1] == 'X' && tablero[i, j + 2] == 'X' && tablero[i, j + 3] == 'X')
ganador = 0;
else if (tablero[i, j] == '0' && tablero[i, j + 1] == '0' && tablero[i, j + 2] == '0' && tablero[1, j + 3] == '0')
ganador = 1;
}
}
if (ganador == -1)
{
//comprovar si hay 4 en linea vertical
for (i = 0; i < 12 - 3; i++)
{
for (j = 0; j < 12; j++)
{
if (tablero[i, j] == 'X' && tablero[i + 1, j] == 'X' && tablero[i + 2, j] == 'X' && tablero[i + 3, j] == 'X')
ganador = 0;
else if (tablero[i, j] == '0' && tablero[i + 1, j] == '0' && tablero[i + 2, j] == '0' && tablero[i + 3, j] == '0')
ganador = 1;
}
}
}
if (ganador == -1)
{
//comprobar si hay cuatro en linea diagonal 1
for (i = 0; i < 12; i++)
{
for (j = 0; j < 12; j++)
{
if (i + 3 < 12 && j + 3 < 12)
{
if (tablero[i, j] == 'X' && tablero[i + 1, j + 1] == 'X' && tablero[i + 2, j + 2] == 'X' && tablero[i + 3, j + 3] == 'X')
ganador = 0;
else if (tablero[i, j] == '0' && tablero[i + 1, j + 1] == '0' && tablero[i + 2, j + 2] == '0' && tablero[i + 3, j + 3] == '0')
ganador = 1;
}
}
}
}
if (ganador == -1)
{
//comprobar si hay cuatro en linea en diagonal 2
for (i = 0; i < 12; i++)
{
for (j = 0; j < 12; j++)
{
if (i + 3 < 12 && j - 3 >= 0)
{
if (tablero[i, j] == 'X' && tablero[i + 1, j - 1] == 'X' && tablero[i + 2, j - 2] == 'X' && tablero[i + 3, j - 3] == 'X')
ganador = 0;
else if (tablero[i, j] == '0' && tablero[i + 1, j - 1] == '0' && tablero[i + 2, j - 2] == '0' && tablero[i + 3, j - 3] == '0')
ganador = 1;
}
}
}
}
return ganador;
}
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.Cyan;
Console.Clear();
Program Arranque = new Program();
int jugador;
int total_jugadas;
total_jugadas = 0;
Arranque.inicializar_tablero();
do
{
if (total_jugadas % 2 == 0)
jugador = 0;
else
jugador = 1;
total_jugadas++;
Arranque.mostrar_tablero();
if (Arranque.hacer_jugada(jugador) == 0)
{
Console.WriteLine("Jugada Incorrecta.\n\n");
//Console.WriteLine("Pause"); // verificar esto
Console.ReadLine();
}
} while (Arranque.comprobar_fin() == -1);
Arranque.mostrar_tablero();
if (Arranque.comprobar_fin() == 1)
Console.WriteLine("Haz Ganado.\n\n");
else
Console.WriteLine("Ganá la computadora!!\n\n");
}
}
}
No hay comentarios.:
Publicar un comentario
Es muy importante tu comentarios: