示例#1
0
        static void Main(string[] args)
        {
            MineSweeper    juego = new MineSweeper(10);
            MineSweeperGUI g     = new MineSweeperGUI(juego);

            Jugar(g);
        }
示例#2
0
 static void MineSweeperGUI_Dibujar(MineSweeperGUI gui)
 {
     MineSweeperGUI_DibujarTablero(gui);
     Console.WriteLine($"Banderas Restantes {gui.Juego.CantBanderasRestantes:D3}");
     Console.WriteLine($"Movimiento = Flechas");
     Console.WriteLine($"Colocar Bandera = Espacio");
     Console.WriteLine($"Descubrir = Enter");
 }
示例#3
0
        static void MineSweeperGUI_Actualizar(MineSweeperGUI gui)
        {
            MineSweeperGUI_ActualizarInput(gui);

            if (gui.Input.DescubrirCelda)
            {
                MineSweeper_DescubrirCelda(gui.Juego, gui.Input.CurPosFil, gui.Input.CurPosCol);
            }
            if (gui.Input.PonerBandera)
            {
                MineSweeper_UbicarBandera(gui.Juego, gui.Input.CurPosFil, gui.Input.CurPosCol);
            }
        }
示例#4
0
        static void Jugar(MineSweeperGUI gui)
        {
            MineSweeper_ColocarMinas(gui.Juego);
            MineSweeperGUI_Dibujar(gui);
            while (!MineSweeper_EsFinDelJuego(gui.Juego))
            {
                MineSweeperGUI_Actualizar(gui);
                MineSweeper_ValidarTablero(gui.Juego);
                if (gui.Input.Cambio)
                {
                    MineSweeperGUI_Dibujar(gui);
                }
                Thread.Sleep(16);
            }


            Console.WriteLine(gui.Juego.EsVictoria ? "Victoria!" : "Derrota!");
            Console.ReadLine();
        }
示例#5
0
        static void MineSweeperGUI_DibujarTablero(MineSweeperGUI gui)
        {
            Console.SetCursorPosition(0, 0);
            for (int fila = 0; fila < gui.Juego.Celdas.GetLength(0); fila++)
            {
                for (int columna = 0; columna < gui.Juego.Celdas.GetLength(1); columna++)
                {
                    if (fila == gui.Input.CurPosFil && columna == gui.Input.CurPosCol)
                    {
                        Console.BackgroundColor = ConsoleColor.DarkCyan;
                        Console.ForegroundColor = ConsoleColor.Black;
                    }

                    MineSweeperGUI_DibujarCelda(gui.Juego.Celdas[fila, columna]);


                    Console.ResetColor();
                }
                Console.WriteLine();
            }
        }
示例#6
0
        //----------------------------------------------------------------------------------
        //MineSweeperGUI
        //----------------------------------------------------------------------------------
        static void MineSweeperGUI_ActualizarInput(MineSweeperGUI gui)
        {
            Input_Reset(gui.Input);
            if (Console.KeyAvailable)
            {
                gui.Input.Cambio = true;
                switch (Console.ReadKey(true).Key)
                {
                case ConsoleKey.UpArrow:
                    gui.Input.CurPosFil--;
                    break;

                case ConsoleKey.DownArrow:
                    gui.Input.CurPosFil++;
                    break;

                case ConsoleKey.LeftArrow:
                    gui.Input.CurPosCol--;
                    break;

                case ConsoleKey.RightArrow:
                    gui.Input.CurPosCol++;
                    break;

                case ConsoleKey.Spacebar:
                    gui.Input.PonerBandera = true;
                    break;

                case ConsoleKey.Enter:
                    gui.Input.DescubrirCelda = true;
                    break;
                }
                gui.Input.CurPosFil = Math.Clamp(gui.Input.CurPosFil, 0, gui.Juego.Celdas.GetLength(0) - 1);
                gui.Input.CurPosCol = Math.Clamp(gui.Input.CurPosCol, 0, gui.Juego.Celdas.GetLength(1) - 1);
            }
        }