Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Principal.cs
- //
- // Original en: http://goo.gl/MpVxzE
- //
- // Propósito: Representa la ventana principal de la
- // aplicación de triqui.
- //
- ============================================================*/
- using System;
- using System.ComponentModel;
- using System.Drawing;
- using System.Windows.Forms;
- using Triqui.Modelo;
- namespace Triqui.GUI
- {
- public partial class Principal : Form
- {
- #region Campos
- /// <summary>
- /// Juego de triqui a jugar.
- /// </summary>
- private Triqui.Modelo.Triqui juegoTrigui;
- /// <summary>
- /// Representa una instancia de jugador PC.
- /// </summary>
- private JugadorPC jugadorPC;
- #endregion
- #region Componentes
- /// <summary>
- /// Control con los botones de creación de juego.
- /// </summary>
- private ControlBotones controlBotones;
- /// <summary>
- /// Control para los mensajes de estado del juego.
- /// </summary>
- private ControlMensajes controlMensajes;
- /// <summary>
- /// Control para las nueve casillas del tablero.
- /// </summary>
- private ControlTriqui controlTriqui;
- #endregion
- #region Constantes
- /// <summary>
- /// Marca para el jugador humano.
- /// </summary>
- private const char MARCA_JUGADOR = 'X';
- /// <summary>
- /// Marca para el jugador máquina.
- /// </summary>
- private const char MARCA_PC = 'O';
- #endregion
- #region Constructores
- /// <summary>
- /// Crea una instancia de la ventana principal.
- /// </summary>
- public Principal()
- {
- InitializeComponent();
- ConfiguracionComponentes();
- // Icono de la aplicación:
- this.Icon = Properties.Resources.triqui;
- // Creación de instancia de la clase Triqui:
- juegoTrigui = new Modelo.Triqui();
- // Crea el jugador PC:
- jugadorPC = new JugadorPC(juegoTrigui, MARCA_PC);
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Actualiza el estado de las nueve casillas del tablero.
- /// </summary>
- public void ActualizarTablero()
- {
- for (int i = 1; i <= 9; ++i)
- {
- switch (i)
- {
- case 1:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.SuperiorIzquierda))
- {
- controlTriqui.btnPosicionSuperiorIzquierda.Enabled = false;
- controlTriqui.btnPosicionSuperiorIzquierda.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.SuperiorIzquierda));
- }
- break;
- case 2:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.SuperiorCentro))
- {
- controlTriqui.btnPosicionSuperiorCentro.Enabled = false;
- controlTriqui.btnPosicionSuperiorCentro.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.SuperiorCentro));
- }
- break;
- case 3:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.SuperiorDerecha))
- {
- controlTriqui.btnPosicionSuperiorDerecha.Enabled = false;
- controlTriqui.btnPosicionSuperiorDerecha.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.SuperiorDerecha));
- }
- break;
- case 4:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.MedioIzquierda))
- {
- controlTriqui.btnPosicionMedioIzquierda.Enabled = false;
- controlTriqui.btnPosicionMedioIzquierda.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.MedioIzquierda));
- }
- break;
- case 5:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.MedioCentro))
- {
- controlTriqui.btnPosicionMedioCentro.Enabled = false;
- controlTriqui.btnPosicionMedioCentro.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.MedioCentro));
- }
- break;
- case 6:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.MedioDerecha))
- {
- controlTriqui.btnPosicionMedioDerecha.Enabled = false;
- controlTriqui.btnPosicionMedioDerecha.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.MedioDerecha));
- }
- break;
- case 7:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.InferiorIzquierda))
- {
- controlTriqui.btnPosicionInferiorIzquierda.Enabled = false;
- controlTriqui.btnPosicionInferiorIzquierda.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.InferiorIzquierda));
- }
- break;
- case 8:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.InferiorCentro))
- {
- controlTriqui.btnPosicionInferiorCentro.Enabled = false;
- controlTriqui.btnPosicionInferiorCentro.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.InferiorCentro));
- }
- break;
- case 9:
- if (!juegoTrigui.CasillaVacia(PosicionCasilla.InferiorDerecha))
- {
- controlTriqui.btnPosicionInferiorDerecha.Enabled = false;
- controlTriqui.btnPosicionInferiorDerecha.Text =
- String.Format("{0}", juegoTrigui.ObtenerMarcaCasilla(PosicionCasilla.InferiorDerecha));
- }
- break;
- }
- }
- }
- /// <summary>
- /// Configura los componentes integrales de la ventana principal.
- /// </summary>
- private void ConfiguracionComponentes()
- {
- controlMensajes = new ControlMensajes();
- controlTriqui = new ControlTriqui(this);
- controlTriqui.Location = new Point(0, 34);
- controlBotones = new ControlBotones(this);
- controlBotones.Location = new Point(0, 234);
- this.Controls.Add(controlMensajes);
- this.Controls.Add(controlTriqui);
- this.Controls.Add(controlBotones);
- }
- /// <summary>
- /// Crea un nuevo juego.
- /// </summary>
- public void NuevoJuego()
- {
- // Limpia el tablero de triqui:
- juegoTrigui.LimpiarTablero();
- controlTriqui.ReiniciarBotonesCasillas();
- }
- /// <summary>
- /// Procesa una jugada hecha por el jugador humano.
- /// </summary>
- /// <param name="casillaJugada">Posición de la casilla marcar.</param>
- public void ProcesarJugada(PosicionCasilla casillaJugada)
- {
- juegoTrigui.MarcarCasilla(casillaJugada, MARCA_JUGADOR);
- // Verifica si el jugador humano ha ganado el juego:
- if (juegoTrigui.GanoJuego(MARCA_JUGADOR))
- {
- controlMensajes.MostrarMensaje("¡Ganaste!");
- controlTriqui.SuspenderTablero();
- }
- else
- {
- if (jugadorPC.Jugar())
- {
- if (juegoTrigui.GanoJuego(MARCA_PC))
- {
- controlMensajes.MostrarMensaje("¡Gané!");
- controlTriqui.SuspenderTablero();
- }
- else
- {
- controlMensajes.MostrarMensaje("Tu Turno");
- }
- }
- else
- {
- controlMensajes.MostrarMensaje("Se acabó el juego.");
- }
- }
- ActualizarTablero();
- }
- #endregion
- #region Puntos de Extensión
- /// <summary>
- /// Punto de extensión no. 1.
- /// </summary>
- public void PuntoExtension1()
- {
- MessageBox.Show(this, juegoTrigui.Metodo1(), "Respuesta", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- /// <summary>
- /// Punto de extensión no. 2.
- /// </summary>
- public void PuntoExtension2()
- {
- MessageBox.Show(this, juegoTrigui.Metodo2(), "Respuesta", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement