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
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
esta es una forma de como pensaba hacerle y esta linea iria en la funcion GanaO
(ya lo veran en el codigo) por ejemplo:
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
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
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

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

(ya lo veran en el codigo) por ejemplo:
Código [Seleccionar]
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
Código [Seleccionar]
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
