Una ayudadita no? peleandome con un gato grandote c#

Iniciado por shin_akuma, 21 Abril 2008, 23:34 PM

0 Miembros y 1 Visitante están viendo este tema.

shin_akuma

Hola denuevo yo miren haora estoy haciendo un juego en c# (visual estudio 2008)donde es una espesie de gato gigante.

bien les explico las reglas puesto que supongo que algunos no lo conoce a por cierto el juego existe solo que no se como se llama  :xD

reglas

1.- consta de 2 jugadores,  cada uno tiene un turno alternamente pueden presionar un boton que se marcara segun el jugador X ú O en cualquier parte del tablero en su turno

2.- si en algun momento un jugador junta 5 de sus simbolos horizontales, verticales o diagonales gana sin ningu espacio vasio u otro caracter me refiero XXXXX bien no XXXOXX o algo hasi

miren miproblema esta en determinar el ganador podria hacerse con if pero tardaria milenios  :o esta es una forma de como pensaba hacerle y esta linea iria en la funcion GanaO
(ya lo veran en el codigo) por ejemplo:

if (button1.Text.Equals("O") && button2.Text.Equals("O") && button3.Text.Equals("O") && button4.Text.Equals("O") && button5.Text.Equals("O"))
{
messagebox.show ("Gana jugador O");
}
else if () /*y asi hasta acabar con todas las posibles victorias de O y X*/
{
}


a por cierto mis bottones estan ordenados de izquierda a derecha de arriva a bajo es decir
button1  2  3..
13  14 15 ..

para mas informacion

y no se si alguien prodria ayudarme a redusir ese codigo que pretendo hacer


bien una imagen de tablero y formulario



bien el codigo del formulario


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            radioButton1.Select();      /*seleciona de inicio radio button 1*/
            radioButton1.Enabled = false;        /*inabilita el radio button para que no alteren los turnos*/
            radioButton2.Enabled = false;
        }

        private void sendN(object sender, EventArgs e)  /*Cada vez que un boton del grupo tablero es clikeado viene a este void */
        {
            Button bnt = (Button)sender;    /* bnt gana las propiedader de el boton para luego pasarselas al boton clikeado*/
            if (radioButton1.Checked)   /*viene a esta linea del codigo si es el turno de X*/
            {
                bnt.Text = "X";      /*Aqui se escribe el texto en este caso X por que es el turno de X*/
                bnt.Enabled = false;    /*aqui el boton queda inutilizado para que ninguno de los jugadores pueda clikearlo otra vez*/
                radioButton2.Select();  /*aqui seleccionamos radiobutton2 o jugador "O" que es el proximo en el turno*/
                label3.Text = "Es el turno de el jugador O";    /*aqui escribimos en un label cual es el turno correspondiente*/
            }
            else if (radioButton2.Checked)  /*el proseso anterior es el mismo solo que haora ablamos del jugador O*/
            {
                bnt.Text = "O";
                bnt.Enabled = false;
                radioButton1.Select();
                label3.Text = "Es el turno de el jugador X";
            }
            this.GanaO();   /*aqui revisa si O es el ganador*/
            this.GanaX();   /*aqui revisa si X es el ganador*/
        }

        private void SALIR_Click(object sender, EventArgs e)
        {
            DialogResult a = MessageBox.Show("¿De verdad desas salir de esta aplicacion?", "Confimacion", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                MessageBoxDefaultButton.Button2, MessageBoxOptions.ServiceNotification);     /*MUESTRA UN CUADRO DE DIALOGO EL CUAL PREGUNTA SI SALIR*/
            if (a == DialogResult.Yes)  /*si presiono que si viene a este if*/
            {
                Dispose();      /*Cierra la aplicacion*/
            }
            else
            {
                /*no hace nada*/
            }
        }
       
        private void GanaX()
        {
            // aqui se supone que deberia verificar si X gana
        }
        private void GanaO()
        {
            //aqui se que verifica si O gano
        }

    }
}



bien cuando se clikea un boton del tablero va a la funcion sendN por el evento click_event
pues de antemano se los agradezco si tiene dudas con el codigo o el metodo pues aqui estoy

graxx ;D



El conocimiento es poder!!!

Saludos!!