juego take five (algorithms de un tablero)
Estoy tratando de realizar un pequeno juego (take Five) el juego consiste en colocar 5 fichas del mismo color consecutivamente para poder "dominar" una diagonal, una linea o una columna. Lo que daria la victoria al jugador.
doy un pequeño ejemplo
exemple. N= color negro (jugador 1)
..N
.....N
N N N N N voila!! algunas posibles formas de ganar
........N... N
........N....... N
........N.......... N
........N
Lo que quisiera Por favor si alguien me puede ayudar es de mejorar mi algorithmo para verificar cada vez que un jugador entra una ficha si gano (fin de juego) o no.
// las fichas comienzan a colocarse debajo
tengo una matriz [10][10]
0 1 2 3 4 5 6 7 8 9
1 .........................*Ok lo que hago es lo sgte.
2 ..........................* para ver la diagonal izq
3 ..........................*me posiciono al punto
4 ..........................* de comienzo de la diagonal
5 ..........................* donde el jugador jugo
6........................... * de esta forma
7 N .......................* si (linea>0 || columna<9)
8 N .......................* Roperacion=linea-columna
9 N B ....................* si Roperacion<0
..............................* lineaCDiag=0
..............................* columnaCDiag=Roperacion *-1
..............................* sino
.......................................* lineaCDiag=Roperacion
.......................................* columnaCDiag=0
con esto consigo el comienzo de la diagonal izquierda donde el player jugó un algo parecido utiliso para conseguir la diagonal derecha entonces verifico toda la diagonal para ver si existen 5 colores del mismo tipo en el tablero.
eso me hace unas 20 lineas de codigo en java, solo para encontrar el comienzo de las dos diagonales, entonces tengo que hacer la verificación.
podrÃa haber una solición más pequena de verificacion por ejemplo ex.
tablero
verificar en alrededor y evitar de verificar en una diagonal o un columna donde no exista un color igual que la ficha entrada.
L=linea
c=columna
dd=diagonal derecha
di=diagonal izquierda
ddv=verificacion.
FICHAJUGADA= la ficha que jugo el player.
di ..........................ddv
L FICHAJUGADA L
dd ..........c............. dd
Bueno gracias de antemano espero que entiendan lo que deseo.....
doy un pequeño ejemplo
exemple. N= color negro (jugador 1)
..N
.....N
N N N N N voila!! algunas posibles formas de ganar
........N... N
........N....... N
........N.......... N
........N
Lo que quisiera Por favor si alguien me puede ayudar es de mejorar mi algorithmo para verificar cada vez que un jugador entra una ficha si gano (fin de juego) o no.
// las fichas comienzan a colocarse debajo
tengo una matriz [10][10]
0 1 2 3 4 5 6 7 8 9
1 .........................*Ok lo que hago es lo sgte.
2 ..........................* para ver la diagonal izq
3 ..........................*me posiciono al punto
4 ..........................* de comienzo de la diagonal
5 ..........................* donde el jugador jugo
6........................... * de esta forma
7 N .......................* si (linea>0 || columna<9)
8 N .......................* Roperacion=linea-columna
9 N B ....................* si Roperacion<0
..............................* lineaCDiag=0
..............................* columnaCDiag=Roperacion *-1
..............................* sino
.......................................* lineaCDiag=Roperacion
.......................................* columnaCDiag=0
con esto consigo el comienzo de la diagonal izquierda donde el player jugó un algo parecido utiliso para conseguir la diagonal derecha entonces verifico toda la diagonal para ver si existen 5 colores del mismo tipo en el tablero.
eso me hace unas 20 lineas de codigo en java, solo para encontrar el comienzo de las dos diagonales, entonces tengo que hacer la verificación.
podrÃa haber una solición más pequena de verificacion por ejemplo ex.
tablero
verificar en alrededor y evitar de verificar en una diagonal o un columna donde no exista un color igual que la ficha entrada.
L=linea
c=columna
dd=diagonal derecha
di=diagonal izquierda
ddv=verificacion.
FICHAJUGADA= la ficha que jugo el player.
di ..........................ddv
L FICHAJUGADA L
dd ..........c............. dd
Bueno gracias de antemano espero que entiendan lo que deseo.....