Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - eleon

#1
Si no tienes la ruta en el PATH tendrás que utilizar la ruta absoluta:

java -jar "C:\Usuarios\usuario\Mis Documentos\...\Etiquetas_Cajas_Pallet_Sabinas.jar"

Pon dicha ruta entre comillas dobles.

Saludos.
#2
Dos formas:

Sin vidas o intentos: Si el jugador se equivoca empieza desde el principio el juego, desde el número primo "1".

Con vidas o intentos: El jugador tiene 3 oportunidades y si se equivoca puede volver a intentarlo desde el número primo por el que va, el cronómetro (5 segundos para escribir el número primo) empieza a contar desde el principio.

Como dije en el primer post lo de añadirle vidas es opcional, se dan por buenas las dos formas, ¡pero os animo a hacerlo que es bastante sencillo!.

Un saludo.
#3
Cita de: Darhius en 26 Julio 2013, 00:10 AM
Qué pasa si por ejemplo "toca el turno" del numero 31 y por accidente el usuario escribe solo el 3?, debe marcarlo como incorrecto?.
Después de cada intento vuelve a iniciar en 1?

Exacto, cuando el usuario se equivoca pierde la partida y empieza de cero, a menos que añadas "vidas" aunque eso lo he marcado como opcional, si no lo haces también te lo doy por bueno.

Si decides añadir "vidas", el usuario puede equivocarse 3 veces antes de tener que empezar de nuevo.
#4
Sé que es un tema un poco raro y que no se suele usar si no es en aplicaciones complejas, pero ahora que me he documentado acerca de ello me autorespondo por si le sirve a alguien:

La visibilidad de los métodos se puede modificar de derecha a izquierda cuando se hereda de una clase: public <- protected <- nivel de paquete <- private

La visibilidad de los atributos no se modifica, sino que un atributo con un mismo nombre en la clase descendiente que en la clase ascendiente, hace que el atributo de la clase ascendiente se oculte, por tanto se puede modificar de derecha a izquierda y viceversa.

Espero que le sirva a alguien. Saludos.
#5
Buenas tardes:

Yo soy programador C++ (en realidad esto es porque es el lenguaje que normalmente utilizamos en la universidad) pero últimamente me he estado pasando por el foro de Java y la verdad es que noto que hay muy poca actividad (no sé si será por vacaciones).

Por tanto, para animar la cosa, propongo un juego: Se plantea un minijuego que se ha de programar en Java. Todo el que participe tendrá que programar el juego por su cuenta y podrá ir preguntando dudas en este mismo post. Las dudas serán tanto de conceptos de Java como de puntos del enunciado que no se hayan comprendido correctamente, pero nunca se podrá preguntar "Cómo hago esto o cómo hago lo otro" porque la idea es que cada uno lleve a la práctica su originalidad y habilidad en la programación. El que antes resuelva y coloque una solución correcta (el juego funciona y sin errores) gana y es el encargado de proponer el siguiente minijuego a programar.

Condiciones: El enunciado debe ser claro y conciso. Se deberá colocar el nombre del videojuego en negrita y con un tamaño de letra de 22 (esto es para que los participantes no tengan que leer todos los mensajes escritos y visualicen fácilmente cuál es el último minijuego propuesto) y junto a ello ira la descripción con sus condiciones. El usuario que propone el minijuego debe estar atento para solucionar dudas, si bien las dudas de programación debemos ayudar a resolverlas entre todos los participantes, las dudas de enunciado corresponden principalmente al que lo ha propuesto.

Recomendación: Personalmente recomendaría que el entorno gráfico fuera opcional por no hacerlo complejo y largo, lo más óptimo en los videojuegos que lo requieran sería utilizar carácteres del teclado, pero lo dejo a la elección de cada uno.

También se puede dar un tiempo límite para solucionarlo, tras el cuál, si no se ha posteado una solución correcta el autor del minijuego puede colocar la solución y darle el turno al usuario que más se haya acercado.

La idea de esto es tanto mejorar nuestras habilidades de programación como entretenernos programando videojuegos, así que os animo a que participéis.

Comenzaré yo proponiendo un programa sencillo:

Números primos: Jugador vs Máquina

Descripción: Este videojuego tiene 2 niveles:

Nivel 1: El juego imprime en pantalla un número primo comenzando desde el "1" y el jugador debe escribir el siguiente. Después le toca al programa imprimir el tercer número primo y a continuación al jugador y así sucesivamente. Cuando le toca al jugador escribir un número primo tiene 5 segundos para hacerlo.

Nivel 2: El juego imprime un número primo y el jugador 3 seguidos. Cuando le toca al jugador escribir un número primo tiene 3 segundos para hacerlo (por cada número).

Para que el jugador gane se debe llegar al número primo "401" (OJO: le puede tocar imprimirlo por pantalla al jugador o al programa). Aqui os dejo una tabla de números primos (solo tened en cuenta hasta el 401): http://www.disfrutalasmatematicas.com/numeros/primos-tabla.html


Condiciones:

1- Se debe mostrar en pantalla claramente cuándo le toca al jugador escribrir el siguiente número primo.
2- Se debe mostrar en pantalla claramente al menos el último número primo que se ha preguntado.


Opcional: Podéis añadir "vidas" si queréis, es decir, el jugador puede equivocarse hasta 3 veces antes de perder la partida.

Es un juego muy sencillo que se puede hacer en un rato, pero aún así, si nadie postea una solución correcta esperaré 7 días antes de solucionarlo (hasta el jueves 1 de agosto).


Un saludo.
#6
Java / Re: Ayuda con mapeo de imagen
24 Julio 2013, 20:36 PM
Cada bloque "Terreno" sería algo así:



Los atributos (x, y) nos dicen dónde hay que colocarlo. Por ejemplo: (x =2,  y = 3) hay que colocar este bloque en la columna número 2 fila número 3:

T X T T T
T T T T T
T T T T T

Siempre comenzando a contar desde abajo que es el inicio del mapa y por tanto del plano de coordenadas.

La diferencia entre un bloque y otro según los atributos que te he indicado yo (tendrás que añadir otros dependiendo de cómo funcione tu juego) son:

Código (java) [Seleccionar]
int x; //Le dice al mapa en qué columna colocar este bloque
int y; //Le dice al mapa en qué fila colocar este bloque
boolean caminable; //Le dice al jugador si puede colocarse encima de este bloque o no
Image imagen; //La imagen del bloque que será: Suelo, Rio, Puente, etc.


Los objetos que hay encima del terreno (la columna, la llama, etc) hay dos formas de trabajarlos:

1- Colocarlos del mismo modo que resto del terreno (solo tendrás que asignar en la variable "Image imagen" la imagen de la columna) pero esto tiene un problema:

Las imagenes todas tienen que tener el mismo tamaño. ¿Qué pasa si quiero hacer un objeto más ancho o alto que otro?. Ejemplo: La columna es el doble de alta que un bloque de suelo o rio -> tendrás que dividir la columna en 2 imágenes: parte superior y parte inferior y se quedaría así:

T T T C T
T T T C T

Al colocar la mitad superior encima de la mitad inferior crearás una columna completa. Pero todas las imágenes tienen que tener el mismo tamaño o el mapa aparece con "blancos" aunque esto seguramente ya lo tendrías estudiado.

2- Otra forma de hacerlo es crear primero el terreno únicamente con: Suelo, Rio y Puente y a partir de ahi colocar encima los objetos (si imprimes el suelo en una posición y luego imprimes la columna en la misma posición se ve la segunda imagen encima de la primera, por tanto no habría ninguna complicación en este aspecto). Aqui no haría falta que todas las imágenes tuvieran el mismo tamaño pero crea otro problema: Si has imprimido el suelo que es "caminable" y encima imprimes la columna que no es "caminable" cuando el personaje intente pasar por encima tendrás tratar el código de manera que se tenga en cuenta que no se puede pasar por esa posición porque hay una columna que no se puede atravesar aunque el suelo si sea atravesable.

Cualquier duda comenta.
#7
Java / Re: Ayuda con mapeo de imagen
24 Julio 2013, 18:58 PM
Buenas tardes:

Normalmente cuando se pregunta una duda posteas lo que llevas hecho, o al menos la especificación aunque no muestres los detalles de implementación para que nos hagamos una idia. Por cómo lo has descrito voy a suponer que te refieres a este juego: https://www.youtube.com/watch?v=2btqbTFtwSo

Debes dividir el mapa en un array bidimensional donde en cada posición hay un objeto de la clase "Terreno":

Terreno: ¡No es el suelo de todo el mapa! sino que es un fragmento del mapa y va a tener las siguientes variables:

int x;
int y;
boolean caminable;
Image imagen; (Este tipo no es real, aqui depende del que tú uses para cargar la imagen).

Cuando crees un objeto de tipo "Terreno", sus valores "x" e "y" definirán en qué posición del mapa se encuentra y la variable "caminable" nos dirá si el personaje puede pisarla o no. Por tanto tu mapa se dividirá en un montón de objetos "Terreno" de la siguiente manera:

T = Objeto de tipo Terreno

T T T T T T T
T T T T T T T
T T T T T T T
T T T T T T T
T T T T T T T
T T T T T T T
T T T T T T T
T T T T T T T
...
(Será tan largo como objetos terreno añadas).

Cuando tu personaje se vaya a mover, hará la siguiente comprobación:

Código (java) [Seleccionar]
if (terrenoActual.adyacente(direccion).caminable == true) //Movemos el personaje si se cumple la condición, sino no hará nada

terrenoActual es una variable que debes añadir al PERSONAJE que apunta al terreno en el que se encuentra posicionado en este momento, cada vez que muevas el personaje cambias su valor a la nueva posición.

terrenoActual.adyacente(direccion) es un método que devuelve el terreno adyacente en la dirección que le pases (debes implementarlo).

terrenoActual.adyacente(direccion).caminable -> Ahora que tenemos el terreno adyacente, por ejemplo, el personaje se quiere mover hacia arriba, y por tanto el terreno que hemos obtenido con terrenoActual.adyacente(direccion) es justo la posición de arriba, comprobamos si la variable caminable es igual a true (es decir se puede caminar sobre él), sino no hará nada el personaje y se quedará en la misma posición.

Si no has comprendido alguna cosa comenta. Ten en cuenta que esto es la base de los videojuegos en dos dimensiones, el 90% de los juegos 2D utilizan este sistema de colisión de mapas con objetos no movibles.

Un saludo.
#8
Java / Re: Problema sintaxis JAVA
23 Julio 2013, 17:38 PM
Cita de: cracksergio en 21 Julio 2013, 20:12 PM
Entonces sólo habría que agregar... ??


public int valorPasaje, desc;
public Pasajero[] pasajeroAsiento=new Pasajero[10];

public int asignaAsientoAPas(int asiento, String nom){
     if(asiento<10)
     {
        pasajeroAsiento[asiento].creaPasajero(nom,desc);
               desc(valorPasaje*0.1);

     }
 
return desc;
}//fin asignaAsientoAPas



No, lo que dice BufferOverflow es que al hacer la operación no estás guardando el resultado en ninguna variable, y eso que acabas de hacer no es una asignación. Sería así:

Código (java) [Seleccionar]
desc = valorPasaje*0.1;
#9
Buenas tardes:

No tengo muy claro cómo varía la visibilidad en un método o atributo heredado:

public - protected - nivel de paquete - private

¿Se puede modificar de derecha a izquierda o al contrario?.

¿Esto se hace automáticamente al redefinirlo?, es decir:

Código (java) [Seleccionar]
public class ClasePadre {
private int x;
...
}

public class ClaseHija extends ClasePadre {

int x;
...
}


¿Ahi la visibilidad ha cambiado de privado a nivel de paquete en ClaseHija o se hace de otro modo?.

Gracias. Un saludo.
#10
GNU/Linux / Re: No existe el archivo o el directorio
30 Septiembre 2012, 17:21 PM
Ya veo. Si es así podrías indicarme los pasos detalladamente, es decir ¿cuál es el argumento de la instrucción make y make install?, ya que con make solo me pone "no se especificó ningún objeto ni se encontró un makefile".

Siento estas preguntas de principiante pero no tengo mucha idea de estas cosas y no las hemos dado en clase. Gracias por vuestro tiempo.