Java - Ayuda con codigo palabras aleatorias... [URGENTE]

   
Vista:

Ayuda con codigo palabras aleatorias... [URGENTE]

Publicado por Ismael (14 intervenciones) el 11/11/2015 12:05:35
Hola perdonar, estamos haciendo en clase un juego del ahorcado en el que hay que guardar en un String 20 palabras y de esas 20 palabras que seleccione una al azar, lo he inmtentado hacer asi, pero en "cadenavacia" me guarda la cadena entera, es decir todas las palabras, y yo solo quiero que en "cadenavacia" sólo se guarde una palabra de las 20 que hay en ese String... ¿Se os ocurriría hacerlo de alguna manera? No vale hacerlo con arrays, solo con cosas basicas que hemos dado, metodos de cadenas, bucles, etc, lo que pasa es que almacena mas de una palabra y me gustaria que solo almacenase una palabra... Si fuesen ustedes tan amables de corregirme el código para que guarde en "cadenavacia" una única palabra, sólo les pido eso ya que llevamos muchos dias intentando sacarlo y no hay manera, si fuesen ustedes tan amables aqui les dejo el código que he hecho yo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package ej01;
 
import java.util.*;
 
public class ahorcado {
 
	public static void main(String[] args) {
	int dato1,t,c,l;
		char var, y;
		String cadenavacia="";
		String lista="PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
		Random azar =new Random();
	    dato1=azar.nextInt(lista.length()); //genera numero al azar de la cadena
 
	    for(c=dato1;c<lista.length();c++){
			 y=lista.charAt(c);
			 var=(char) lista.indexOf(y);
 
			 for(t=var+1; y == ' ' ; t++){
				 cadenavacia=cadenavacia+lista.charAt(t);
 
			 }
 
		 }
 
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con codigo palabras aleatorias... [URGENTE]

Publicado por Ismael (14 intervenciones) el 11/11/2015 13:49:10
O también he estado probando lo siguiente:
se trata de un codigo que saque de 20 palabras fijas, saque una al azar, no se pueden usar arrays o vectores ni nada de esas cosas, solo con cadenas y metodos de cadenas y tal, lo que he hecho en el codigo es sacar un fragmento al azar de esa palabra, ahora solo me falta autocompletar la palabra, es decir si la palabra es JERSEY, me saca ERSEY y yo quiero que me saque la palabra entera y nose como hacerlo, llevo ya dias intentandolo y aún no me ha salido, por favor cuento con vuestra ayuda para que me lo solucioneis y me lo expliqueis si sois tan amables, habia pensado en ir a la posicion de esa cadena sacada (por ejemplo ERSEY), y sacar las letras que faltan en la lista de palabras pero nose como añadirlas, y seguro que es una tonteria que tengo delante de mis narices... Por favor cuento con vuestra ayuda para que me ayudeis a sacarlo, solo pido que me saque la palabra entera de ese patron , acá les dejo el código que llevo deducido hasta ahora, lo que hay entre comentario nose si estará bien o no por eso lo e dejado asi, pero "cadena" saca un fragmento de una palabra de la "lista" pero no la palabra completa, ayudenme plisss!!!
Código:
package ej01;

import java.util.*;

public class ahorcado {

public static void main(String[] args) {
int dato1,t,c,l;
char var, y;
String cadenavacia="",cadena;
String lista="PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
Random azar =new Random();
dato1=azar.nextInt(lista.length()); //genera numero al azar de la cadena

int inicio = lista.indexOf(" ");
int fin = lista.indexOf(" ", inicio + dato1);

cadena=lista.substring(inicio + dato1, fin);

System.out.println(cadena);

/*if (lista.indexOf(cadena) != -1){
for (t=0;t< inicio && t>fin; t++){
l=lista.indexOf(cadena.charAt(t));
y=lista.charAt(l);
System.out.println(l);
System.out.println(y);
}

}*/



}
}
CUALQUIERA DE LAS DOS FORMAS ME VALE, ESTA MANERA LA HE VISTO MAS FACIL LO UNICO QUE SOLO ME SACA FRAGMENTO DE LA PALABRA Y NO LA PALABRA ENTERA, ESTO IGUAL ES MAS FACIL PARA USTEDES...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con codigo palabras aleatorias... [URGENTE]

Publicado por Hector (24 intervenciones) el 11/11/2015 20:52:29
No es la mejor logica y no usa al 100% los metodos de String pero es funcional:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int dato1, dato2;
 
        String cadenavacia;
        String lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
        Random azar = new Random();
 
        //genera numero al azar de la cadena
        dato1 = azar.nextInt(lista.length());
 
        // Verifica la posicion si es espacio vacio o letra
        if(lista.charAt(dato1) == ' ')
        {
            dato2 = ++dato1;
        }
        else
        {
            dato2 = dato1;
 
            while(dato1 - 1 >= 0 && lista.charAt(dato1 - 1) != ' ')
                dato1--;
        }
 
       // Ubica el final de la palabra
        while((dato2 + 1) <= lista.length())
        {
            if(lista.charAt(dato2) != ' ')
                dato2++;
            else
                break;
        }
 
        cadenavacia = lista.substring(dato1, dato2);
 
        System.out.println(cadenavacia);

Lo que hace es ubicar los limites de la palabra en función de la posición obtenida, luego usa substring con los limites para adquirir la palabra, si bien puede que no sea lo que pides quizás haya una método en String que haga este tipo de trabajo.

Aqui hay otra forma de hacerlo:

http://stackoverflow.com/questions/16549908/how-do-i-get-a-random-word-from-a-string

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar