martes, 22 de abril de 2014

Conecta 4 consola C#

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: