elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego del laberinto C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego del laberinto C  (Leído 8,587 veces)
Rpgmakero

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Juego del laberinto C
« en: 23 Febrero 2011, 10:11 am »

Muy buenas a todos. Es la primera vez que escribo, espero que podáis resolverme algunas dudas sin que sea mucha molestia :).

Soy estudiante de primer curso de Ingeniería informática y me han mandado como trabajo crear un juego en c. El juego consiste en un laberinto de 5x5 donde hay un protagonista, que es representado por el carácter "O", unos obstáculos, "X", monstruos, "M", y un tesoro "D". Ni el protagonista ni los monstruos podrán atravesar los obstáculos. Los monstruos se mueven de forma aleatoria por el tablero y pueden caer en la misma casilla. El objetivo es llegar al tesoro sin ser cogido por ningún monstruo y evitando obstáculos. El juego es sencillo ya que el tablero es imprimido en el mismo terminal mediante carácteres, es decir, algo así:

- - - - D
- - - X X
- X - - -
X - - - -
O - X X -
Los monstruos aparecerían de forma aleatoria.

Bien, la verdad es que no tengo mucha idea de cómo empezar y me gustaría leer algunas ideas generales de cómo crearlo. Obviamente no pretendo que me contesteis con el juego creado ni nada así, sólo saber qué idea general debería tener para empezar a programar.

Gracias de antemano! ^^


En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Juego del laberinto C
« Respuesta #1 en: 23 Febrero 2011, 12:52 pm »

1- bucle
2- el camino
3- if " me refiero a que si no es esto no puedes hacer esto"

con esto creo que podrias hacer.


En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
namber

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Juego del laberinto C
« Respuesta #2 en: 3 Marzo 2011, 19:14 pm »

ola!!! tengo q programar el mismo juego, pero tengo un problema al introducir los monstruos, nose como hacerlo. Alguna idea¿? me seria de gran ayuda.
En línea

gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Juego del laberinto C
« Respuesta #3 en: 3 Marzo 2011, 21:30 pm »

a namber :

Como el tablero tiene 5*5=25 posiciones tienes que generar un numero aleatorio entre [1..25], si dicha casilla hay un obstaculo o el protagonista generas otro numero aleatorio, asi con los n Moustros.

Para que te sea mas facil el acceso a la matriz si quieres puedes generar 2 numeros aleatorios entre [1..5].
En línea

N0body

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: Juego del laberinto C
« Respuesta #4 en: 4 Marzo 2011, 01:50 am »

Citar
Como el tablero tiene 5*5=25 posiciones tienes que generar un numero aleatorio entre [1..25], si dicha casilla hay un obstaculo o el protagonista generas otro numero aleatorio, asi con los n Moustros.
Eso se hace mucha veces, pero definitivamente no me agrada.
Tiene una terminación indefinida, si el número aleatorio te sale siempre una casilla ocupada por obstaculos. Puede ser todo lo improbable que quieras, pero creo que es mala programación fiarse de la probabilidad de que un programa termine o no.

La cantidad de casilleros para colocar monstruos es 24-numero de obstáculos (para todos los monstruos, ya que los siguientes que coloques pueden superponerse dice).
Yo haría lo siguiente (que conste que no estoy haciendo la tarea de nadie porque no digo como implementarlo):
para simplificarlo, mi tablero es de 3x3=9 casillas
nº de obstaculos: 2
nº de monstruos: 3
Tablero inicial:
0 0 0 0 0 0 0 0 0
Elijo aleatoriamente un numero del 0 al 8-obstaculos ubicados hasta el momento (cantidad de posiciones disponibles)
numero elegido: 2
Tablero luego de colocar el obstaculo
0 0 'X' 1 1 1 1 1 1
Elijo aleatoriamente un numero del 0 al 8-obstaculos ubicados hasta el momento
numero elegido: 3
0 0 'X' 1 X 2 2 2 2

Nota: Cuando ubicamos el obstaculo en la posición x, introducimos en dicha posicion el valor 'X' (caracter 'X'=88.

Reglas para ubicar el obstaculo:
Genero un numero random entre 0 y "9-numero de obstaculos" ubicado hasta el momento, lo llamo r a dicho numero.
Si en r hay un numero a lo ubico en g(r+a)
Si en r hay un obstaculo lo ubico en g(r+1)
g(x)=x Si en x no hay obstaculo.
g(x)=g(x+1) Si en x hay obstaculo.
Incluso conviene no hacerlo recursivo, es mucho más rápido obviamente.
Luego actualizo el tablero de la siguiente manera:
Para las casillas posteriores a donde ubiqué el obstáculo, le sumo 1+o si es un numero, de ser un obstaculo, no modifico la casilla, pero incremento o en 1. o empiza siendo 0 y vendría a ser el numero de obstáculos con el que me topé en este proceso de actualización.

El proceso de ubicación de monstruos es análogo, pero no necesito actualizar el tablero luego de ubicar un monstruos porque es posible superponerlos. g(x) sigue igual ya que no puedo superponer con obstaculos.
Obviamente que las casillas que contengan un monstruo no van a ser todas "m" ya que esto no nos diría nada sobre la cantidad de monstruos que hay, podemos entonces hacer "m+x" siendo x igual a "la cantidad de monstruos sobre esa casilla-1"
Total, cuanto mucho habrá 24 monstruos... osea, el valor de la variable no superará el máximo de un char (255).
Por que "m" minuscula, porque si fuese mayuscula y tuviese 12 monstruos, les dejo a ustedes deducir las consecuencias...
« Última modificación: 4 Marzo 2011, 01:55 am por N0body » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Laberinto en Php.
PHP
n3fisto 2 3,224 Último mensaje 20 Marzo 2010, 15:26 pm
por n3fisto
Backtracking - Laberinto
Programación C/C++
hadree 3 4,932 Último mensaje 23 Noviembre 2010, 03:08 am
por do-while
Juego de laberinto en c++
Programación C/C++
SirLancelot53 6 10,735 Último mensaje 30 Enero 2014, 23:11 pm
por NikNitro!
hacer un juego de laberinto
Programación C/C++
TaniaSRT 1 1,055 Último mensaje 18 Julio 2017, 01:17 am
por ivancea96
[Aporte] Mini juego laberinto estilo FPS en terminal de Linux
Programación C/C++
BloodSharp 1 593 Último mensaje 12 Febrero 2021, 15:33 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines