Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jet1994 en 18 Noviembre 2012, 02:06



Título: [Ayuda con proyecto]
Publicado por: jet1994 en 18 Noviembre 2012, 02:06
Saludos a los exelentes programadores de esta magnfica pagina
Bueno, en esta ocasion necesito ayuda en un proyecto que me enviaron en la universdad :
Se trata de programar un juego llamado SENET
aqui les dejo el link para que puedan jugarlo

http://www.tarot-egipcio.com/Art_senet_online.htm

les pido ayuda por que mi profesor no nos dijo con que ni como programarlo
tampoco les estoy pidiendo que me hagan el proyecto para presentarlo como mio
si no les pido por favor que me asesoren y mi ayuden para poder realizarlo
claro si tienen un poco de tiempo para ayudarme

a los que les interesa ayudarme les estare eternamente agradecido

empezamos:

como ven este es un juego de mesa con 30 casillas
3 filas
10 columnas           3x10
con 10 "fichas" sobre la misma
5 de un jugador y 5 de otro colocadas por defecto alternadamente
el objetivo es sacar todas las 5 fichas tuyas antes que tu oponente
condiciones:
la casilla 27 tiene una condicion: si caes ahi regresaras a la casilla 15
la casilla 26 y 28 son seguras osea tu oponente no puede intercambiar casilla contigosi estas en esa posicion
la 29 te da un turno extra  


lo primero sera sera hacer el tablero de forma de que se puedan mover las fichas segun el numero de movimientos que hayamos sacado aleatoriamente

mi primera duda es como haria el tablero con las fichas :
con una matriz 3x10 tipo int  
o harian todo el juego con coordenadas  

 


Título: Re: [Ayuda con proyecto]
Publicado por: bemone en 18 Noviembre 2012, 12:51
fijate que es muy facil, si estan en fila par mueven para la derecha, si estan en fila impar, a la izquierda. O tranquilamente podes hacer un vector de 30.
Vos tenes 2 tipos de fichas la cual vas a llenar la matriz con dos valores.
Tiras un random del 1 al 5, y vas desplanzandote, si caes una casilla del jugador oponente cambias el valor de la matriz por el opuesto y asi.
No son mas que condiciones e ir avanzando.
La matriz la llenas con 0s donde este vacio, con 1s el jugador rojo y con 2s el jugador azul. En la casilla 15 la llenas con 3, en las que no podes cambiar con 4s y en la que si caes te vas a la 15 con 5 y asi tenes todo el tablero identificado.


Título: Re: [Ayuda con proyecto]
Publicado por: jet1994 en 18 Noviembre 2012, 20:48
para hacer el tablero declare un arreglo tamaño 30

mi intencion es presentarlo mas o menos asi:

   1 2 1 2 1 2 1 2 1 2 1
   0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0    los 0 son espacios en blanco

ya lo pude hacer con este codigo pruebenlo si quieren

Código:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
int i,x,y;
int a[30]={1,2,1,2,1,2,1,2,1,2,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0};
void arre();

int main(){
clrscr();
arre();
getch();
return (0);
}
void arre()
{
clrscr();
x=20;
y=15;
for(i=0;i<30;i++)
 {
 if (i==10){
 x=20;
 y=y+2;}
 if (i==20){
 x=20;
 y=y+2;}
gotoxy(x,y);
if(a[i]!=0){
printf("%d",a[i]);}
x=x+5;
delay(100);
}
}


Ahora el siguiente paso seria hacer que una ficha avance segun un numero aleatorio del 1 al 6

Alguna idea?


Título: Re: [Ayuda con proyecto]
Publicado por: Ferno en 19 Noviembre 2012, 13:06
Si bien no podés tener aleatoriedad total en una computadora por ser determinística, podés simular esos números random con pseudo-aleatoriedad.

Para eso, te recomiendo leer sobre srand() y rand().