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 General
| | |-+  Java
| | | |-+  Problema de generar palabras aleatorias [URGENTE]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema de generar palabras aleatorias [URGENTE]  (Leído 5,378 veces)
IsmaelBFH

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Problema de generar palabras aleatorias [URGENTE]
« en: 11 Noviembre 2015, 13:42 pm »

Estimados señores hackers y programadores:
Me han mandado para un trabajo algo muy importante que tengo que hacer en Java , 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);
    }
   
    }*/
   
 

}
}

RUEGO VUESTRA AYUDA PLIS, ES UNA TONTERIA SEGURO...


En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Problema de generar palabras aleatorias [URGENTE]
« Respuesta #1 en: 11 Noviembre 2015, 18:49 pm »

Acabo de hacer esto mismo pero en Python y si que me salio, de ahí a pasarlo a Java es solo un paso  :P

Código
  1. import random
  2.  
  3. lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
  4.  
  5. numeroRandom = random.randint(1, 20);
  6.  
  7. palabraActual = "";
  8. contador = 1;
  9.  
  10. pararCiclo = False;
  11.  
  12. for letra in lista:
  13.    if(letra == " "):
  14.        contador += 1;
  15.        if(pararCiclo == True):
  16.            break;
  17.    if(contador == numeroRandom):
  18.        palabraActual += letra;
  19.        pararCiclo = True;
  20.  
  21. print(str(numeroRandom)+":"+palabraActual);
  22.  
  23.  

Te explico un poco como funciona el Script:
Lo que hace el ciclo for, es recorrer letra por letra la cadena lista.
Cuando el ciclo lee una letra, primero se fija si es igual a un espacio vació, si es así, la variable contador, aumentara en 1. La variable contador sirve para verificar por que palabra va el ciclo.
Luego se hace otra comprobación, que se fija si  contador es igual al numerorandom, osea la palabra que se tiene que obtener de la lista, si lo es, cada letra que se lea del ciclo for, sera agregada a la variable palabraActual.

No pretendo que lo hagas tal cual, pero para que te sirva de orientación xD

Salu2


En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Problema de generar palabras aleatorias [URGENTE]
« Respuesta #2 en: 11 Noviembre 2015, 23:24 pm »

En Java  ::)

Código
  1. public static void main(String[] args) {
  2.        String lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
  3.        int numeroAlAzar = 1 + new Random().nextInt(20);
  4.  
  5.        String palabra = "";
  6.        int contadorDePalabras = 1;
  7.  
  8.        for(int i = 0; i<lista.length(); i++){
  9.            char letra = lista.charAt(i);
  10.            if(letra == ' ') {
  11.                contadorDePalabras ++;
  12.            }
  13.            if(contadorDePalabras == numeroAlAzar) {
  14.                palabra += lista.charAt(i);
  15.            }
  16.        }
  17.  
  18.        System.out.println(palabra);
  19.    }
  20.  
No me llevo ni 5 minutos traducir de Python a Java :P
En línea

IsmaelBFH

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Problema de generar palabras aleatorias [URGENTE]
« Respuesta #3 en: 12 Noviembre 2015, 10:15 am »

Muchas gracias !!!!! Oye porque palabra almacena un epacio? Me interesaria que solo se guardara la palabra sin el espacio... Pero muchas gracias enserio aquí si que valeis de verdad para esto de la programación, yo estoy empezando desde lo bajo así que gracias por hacermelo sencillo... Lo que no descubro es como hacer que no se almacene el espacio....
« Última modificación: 12 Noviembre 2015, 10:53 am por IsmaelBFH » En línea

IsmaelBFH

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Problema de generar palabras aleatorias [URGENTE]
« Respuesta #4 en: 12 Noviembre 2015, 10:54 am »

Ya lo solucioné y lo que hice fue fuera del ciclo for añadir esto:
Código:
palabra=palabra.substring(+1);

Pero palabra valdra la palabra sin el espacio no?
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Problema de generar palabras aleatorias [URGENTE]
« Respuesta #5 en: 12 Noviembre 2015, 16:18 pm »

De nada compañero para eso estamos, para ayudarnos  ;D

El problema del espacio esta en la siguiente linea:

Código
  1. palabra += lista.charAt(i);

Para que no te tome el espacio, haces:

Código
  1. palabra += lista.charAt(i+1);
Entonces esto tomara una letra mas después del espacio, que seria donde empieza la palabra.

La variable palabra guarda una palabra de la lista según el numero aleatorio, si el valor random es 1, te guardara la primera palabra, si es 2 la segunda y así sucesivamente.

Salu2.
« Última modificación: 12 Noviembre 2015, 16:21 pm por PabloPbl » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como generar una cadena de letras aleatorias... « 1 2 »
Programación Visual Basic
Danieldark 11 10,543 Último mensaje 17 Agosto 2007, 06:17 am
por HaDeS, -
Palabras aleatorias SIN repeticion [ayuda] « 1 2 »
Programación Visual Basic
Psyke1 11 8,636 Último mensaje 15 Junio 2010, 23:55 pm
por Psyke1
Generar matriculas aleatorias
Programación C/C++
JOSE23 2 6,407 Último mensaje 7 Marzo 2011, 03:44 am
por Valkyr
Generar palabras de la mejor manera. « 1 2 »
Java
NetJava 12 5,658 Último mensaje 18 Abril 2011, 20:57 pm
por NetJava
Esta web te permite generar caras aleatorias basadas en IA de gente que no ...
Noticias
wolfbcn 0 894 Último mensaje 14 Febrero 2019, 14:59 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines