Foros del Web » Programación para mayores de 30 ;) » Java »

Crear juego en java

Estas en el tema de Crear juego en java en el foro de Java en Foros del Web. Hola a todos, soy nuevo por aqui y estoy un poco desesperado. Tengo que crear un juego que se basará en un tablero rectangular de ...
  #1 (permalink)  
Antiguo 09/01/2015, 09:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Crear juego en java

Hola a todos, soy nuevo por aqui y estoy un poco desesperado.
Tengo que crear un juego que se basará en un tablero rectangular de casillas
donde cada casilla podra tener asignado un cuadrado o pieza de un color. Inicialmente el tablero se rellenara aleatoriamente con una serie de piezas.

Mas o menos como se muestra aqui[URL="http://prntscr.com/5qcrme"]http://prntscr.com/5qcrme[/URL]

tengo dos archivos:

Código:
import javax.swing.JFrame;
import java.awt.Graphics;

Código:
public class TestTablero {

	public static void main(String[] args) {
		
		Tablero t = new Tablero();
		
		JFrame app = new JFrame("Tablero");
		
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		app.setBounds(0, 0, 440, 470);
		app.add(t);
		app.setVisible(true);
		
		
	}
}
y el tablero import java.awt.Color; import java.util.Random; //genera el random import java.awt.Graphics; import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Tablero extends JPanel { //Aquí irían los atributos necesarios //Constructores Tablero() { //El constructor debe tener los parámetros oportunos //para inicializar el tablero y el juego // Añadimos el 'escuchador' de ratón addMouseListener(new MouseHandler()); } //Métodos de la clase que implementan el juego: básicamente hacer una //jugada, dibujar el estado del tablero y comprobar si la partida se acabó //Método paint public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); //Verticales g.drawLine(110, 15, 110, 315); g.drawLine(160, 15, 160, 315); g.drawLine(210, 15, 210, 315); g.drawLine(260, 15, 260, 315); g.drawLine(310, 15, 310, 315); g.drawLine(360, 15, 360, 315); g.drawLine(410, 15, 410, 315); //Horizontales g.drawLine(110, 15, 410, 15); g.drawLine(110, 65, 410, 65); g.drawLine(110, 115, 410, 115); g.drawLine(110, 165, 410, 165); g.drawLine(110, 215, 410, 215); g.drawLine(110, 265, 410, 265); g.drawLine(110, 315, 410, 315); //Numeros filas g.setFont(new Font("SansSerif", Font.PLAIN, 45)); g.setColor(Color.black); g.drawString("1",40,60); g.drawString("2",40,110); g.drawString("3",40,160); g.drawString("4",40,210); g.drawString("5",40,260); g.drawString("6",40,310); //Numeros columnas g.drawString("6",370,365); g.drawString("5",320,365); g.drawString("4",270,365); g.drawString("3",220,365); g.drawString("2",170,365); g.drawString("1",120,365); //Puntos g.setFont(new Font("SansSerif", Font.PLAIN, 18)); g.drawString("Puntos: ", 126, 402); //CUADRADO g.setColor(Color.red); g.fillRect(111,16, 49, 49); Cuadrado c = new Cuadrado(); c.setX(161); c.setY(16); g.setColor(Color.blue); g.fillRect(161,16, 49, 49); //Aquí iría el código para pintar el estado del tablero } public void paintComponent1(Graphics g){ super.paintComponent(g); //prueba } //Clase cuadrado private class Cuadrado{ private int x; private int y; private char color; public void setX(int xx){ xx = x; } public void setY(int yy){ yy = y; } public int getX(){ return x; } public int getY(){ return y; } public double setColor(){ double numero_color = Math.random()*6; if(numero_color<=3.0){color = 'r';}; if(numero_color>3.0 && numero_color<=4.5){color = 'b';}; if(numero_color>4.5 && numero_color<6){color = 'g';}; return numero_color; } public char getColor(){ return color; } /** Random rand = new Random(); float r = rand.nextFloat(); float g = rand.nextFloat(); float b = rand.nextFloat();*/ } //Clase privada para capturar los eventos del ratón private class MouseHandler extends MouseAdapter { public void mouseClicked (MouseEvent e) { //Mostramos un diálogo con la posición del ratón //para ver un ejemplo de cómo se obtienen las coordenadas //donde se produjo el click JOptionPane.showMessageDialog(null, String.format("Ratón %d,%d \n",e.getX(),e.getY())); //Aquí irían las instrucciones para comprobar si el //click del ratón se produjo en una posición correcta //y hacer la jugada correspondiente //Se pueden llamar a los métodos públicos de la clase //Seguramente habrá que repintar el tablero si se realizó //una jugada válida repaint(); } } }
De momento tan solo he sido capaz de pintar cuadrados, lineas y poco mas.

Tengo esto para generar colores aleatorios:
Código:
		public double setColor(){	
			double numero_color = Math.random()*6;
			if(numero_color<=3.0){color = 'r';};
			if(numero_color>3.0 && numero_color<=4.5){color = 'b';};
			if(numero_color>4.5 && numero_color<6){color = 'g';};
			return numero_color;
		}
		
		public char getColor(){
			return color;
		}
Estoy un poco perdio y no se como seguir para poder aplicar esos colores que se generan aleatorios a mi cudrado y como generar posiciones aleatorias a mis cuadrados.

Un saludo y gracias
  #2 (permalink)  
Antiguo 09/01/2015, 09:51
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Crear juego en java

Es dificil asi amigo... necesitas un mundo de cosas, deberías seccionar los problemas uno a uno, a menos que tengas demasiada experiencia... lo que yo haría es tomar 1 problema a la vez... cual es el siguiente problema a resolver según tú?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 09/01/2015, 15:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Crear juego en java

gracias por contestar,

pues lo primero asignar color aleatorio al cuadrado que tengo ya formado, ese es mi primer problema.

segundo problema es generar 3 cuadrados aleatorios en las posiciones aleatorias y color aleatorio.

gracias y un saludo
  #4 (permalink)  
Antiguo 10/01/2015, 04:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Crear juego en java

he creado un for para pintar las lineas y que no sea por coordenadas de esta manera:

Código:
for (int x=1;x<7;x+1){
	for (int y=0;y<6;y++){
		gdawRect (x*75,y*75,75,75);
	}
}

es un tablero con celdas de 75x75 y que se quiere generar colores aleatorios que pinten cada celda hasta un maximo de 8 y que no puedan quedar 3 juntas
  #5 (permalink)  
Antiguo 10/01/2015, 08:34
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Crear juego en java

Disculpa, pero, qué debería hacer tu juego en sí? Veo que ya estas generando colores aleatorios con la librería Random pero no veo cómo lo aplicas.. tanto el DRAW como el COLOR tienen "subfunciones" que generan ciertas acciones.. así por ejemplo, el color puede aplicarse algo asi

import java.util.Random;

// ESTO CREO QUE YA LO HICISTE
Random rnd = new Random();
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();

Pero, entiendes lo que está haciendo? puedes controlar qué colores saldrán, es decir, puedes decirle que saque 3 rojos, 3 azules y 3 amarillos?


Aca creamos el objeto que nos ayudará a dar color
Color randomColor = new Color(r, g, b);


Ok, me detengo aquí para hacerte la misma pregunta... necesitas que los colores sean Random o que la aplicación de A, B, C colores sea random? porque con eso generas colores aleatorios, pero no defines ninguno en específico...

Si es por eso, el color tiene muchas formas de aplicar y sub propiedades del color que pueden ser ajustadas, por darte una idea...


Código Java:
Ver original
  1. int R = (int)(Math.random()*256);
  2. int G = (int)(Math.random()*256);
  3. int B= (int)(Math.random()*256);
  4. Color color = new Color(R, G, B); //generamos el objeto color, pero no le decimos que color será
  5.  
  6. // un desastre de colores incontrolable.. fijate que hay tonos, saturaciones, luminosidad,
  7. // incluso hay una funcion brigther() propia del color
  8. Random random = new Random();
  9. final float tonoColor = random.nextFloat(); // aplicamos el tono o color
  10. final float saturacion = 0.9f;//1.0 saturacion, 0.0 desaturacion
  11. final float luminosidad = 1.0f; //1.0 para brillo blanco, 0.0 para negro
  12. color = Color.getHSBColor(tonoColor, saturacion, luminosidad);

A lo que voy es que, deberías definir unos colores y no hacerlos random.. lo que deberías hacer random es la aplicación de colores a los cuadros... y decirle que solo puede haber 3, 5, o 10 cuadros con ese color... o sea, ese es tu problema primeramente, y convertir tus cuadros en Objetos, ya que si son solo dibujos, no podrás moverlos luego o cambiarlos fácilmente...

Por eso te dije, un problema a la vez.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 10/01/2015, 13:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Crear juego en java

Gracias por la respuesta, estoy empezando con esto.

te comento, el juego tratra como el cubis addictive puzzle que la funcion es que se generen solo 3 colores diferentes rojo azul y verde y que si juntas 3 o mas de estos colores exploten y sumen puntuacion. por eso queremo saber lo de los colores aleatorios.

ahora como convertimos los cuadrados en objetos para luego aplicarles los colores?

Gracias de nuevo
  #7 (permalink)  
Antiguo 10/01/2015, 18:01
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Crear juego en java

si quieres te puedo ayudar corrigiéndote el código que lo puedo hacer en un plis pero me parece a mí que lo tienes bastante incompleto. no declaraste atributos? no tienes las normas del juego por ahí? es que nunca jugué a ese juego no se de que va jeje .
  #8 (permalink)  
Antiguo 11/01/2015, 06:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Crear juego en java

Delotrolado, gracias por tu respuesta ya comente mas o menos de q trata lo q quiero realizar, mi objetivo ahora es como convertir los cuadrados en objetos si se puede de alguna forma.

Gracias.de.nuevo
  #9 (permalink)  
Antiguo 13/01/2015, 10:58
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Crear juego en java

upp, arribaa

Etiquetas: clase, jframe, juego, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.