Java - Ayuda importante urgente no me sale y llevo dias...

 
Vista:
sin imagen de perfil

Ayuda importante urgente no me sale y llevo dias...

Publicado por Ismael (14 intervenciones) el 18/11/2015 10:26:54
Disculpar señores programadores:
Llevo ya intentando hacer un juegecito ya una semana entera y no hay manera de que me salga, haber si ustedes me pueden ayudar a resolverme la duda tan grande que tengo:
Solo puedo usar Strings y metodos de cadenas, no puedo usar vectores ni arrays ni nada de eso...
Mi duda es que en este programa que tengo hecho lo que quiero es que en las ultimas lineas que he hecho me entre depende si encuentra una letra o encuentra dos, la putada es que como es un código bastante "extenso" me lio un montón y nose como acabarlo... Es decir si sale la palabra "MONITOR" y el usuario introduce una M que aparezca "M------" y si introduce una O que aparezca "-O---O-", lo segundo me lo hace pero lo primero me da error, otra cosa importante que no me sale tampoco que es que cada vez que introduce una letra el usuario te diga por el numero de intento por el que vas (maximo de intentos=10), porque me seguia sumando intento 1 + 1 y no acababa nunca, y si falla una letra que no está que solamente diga que has fallao y no cuente el intento, y por último que tampoco se me ocurre como hacerlo es que no podamos introducir una letra que ya hemos jugado, porque si lo guardo en una cadena y lo pongo en un patron me da errores muy raros, debe ser el codigo tan lioso que he hecho... Solo quiero que se puede jugar a este "ahorcado" como se debe y sin fallos, que esté completito, en la linea 43 vemos que lo transformo todo a guiones y despues lo que quiero es que en funcion de si pones una letra u otra te la vaya completando hasta que ganes o pierdas... Nose me gustaría que alguien me diera un empujoncito ya que estoy bastante perdido y nose si repetirlo o qué hacer porque estoy liado y atrapado... Les agradecería su ayuda...
Les dejo el código haber si me lo pueden ayudar a terminar porque estoy mas perdido....
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package ej01;
 
import java.util.*;
 
public class ahorcado {
 
 public static void main(String[] args) {
 
  int dato1,c=0,i,t,longit,longitud,l,cont1=0;
  char letra;
  String palabra="",letrapulsada,cadenavacia2="",cadenavacia="";
  String lista="PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
  Scanner teclado = new Scanner(System.in);
  Random azar =new Random();
     dato1=azar.nextInt(20)+1; //genera numero al azar de 1 a 20 para contar las 20 palabras que hay
 
     for(i=0; i<lista.length(); i++){ //recorremos la cadena para buscar nuestra palabra escogida por el numero al azar dado
 
           letra = lista.charAt(i); //Vamos contando letra a letra y guardandolo en la variable letra
 
            if(letra == ' ') { //si se encuentra con un espacio que sume 1 al contador 
                c++; //especifica porqué palabra del ciclo va
            }
            if(c == dato1) { //y cuando el contador coincida con el numero generado al azar que especifica la palabra que ha elegido
 
                palabra=palabra+lista.charAt(i+1); // que coja el carácter por el que va (+1 para que no coja el espacio), que es el que coincide con la palabra elegida y con el ciclo que se complete dicha palabra guardandolo en la variable palabra
            }
        }
 
 
        System.out.println(palabra);
 
        System.out.println("Introduce una letra para adivinar la palabra: ");
        letrapulsada=teclado.nextLine();
        letrapulsada=letrapulsada.toUpperCase();
 
        if(palabra.indexOf(letrapulsada) != -1){ //si la letra que ha pulsado coincide con la letra pulsada por el usuario
 
         for(t=0;t<palabra.length();t++){ //para ir contando las letras
 
 
          if(!letrapulsada.equals(palabra.charAt(t))){ //que ponga la cadena en guiones
           cadenavacia=cadenavacia+"-";
           }
 
          }
         //QUIERO AQUI QUE SI ENCUENTRA SOLO UNA OCURRENCIA DE ESA LETRA ME HAGA LO PRIMERO SI ME ENCUENTRA MAS DE UNA QUE ME HAGA LO SIGUIENTE
 
           longit=palabra.indexOf(letrapulsada); //posicion de esa letra
                 cadenavacia=cadenavacia.substring(0,longit)+letrapulsada+cadenavacia.substring(longit,cadenavacia.length()-1);
              //Lo que hacemos es concatenar desde el inicio hasta la longitud de esa palabra y alli ponemos la letra, a continuacion hasta el final de la palabra 
                 System.out.println(cadenavacia);
 
 
                  longit=palabra.indexOf(letrapulsada);
               longitud=palabra.indexOf(letrapulsada, longit+1);
                     cadenavacia2=cadenavacia.substring(0,longitud)+letrapulsada+cadenavacia.substring(longitud,cadenavacia.length()-1);
                     System.out.println(cadenavacia2);
         }
     }
}

Por favor les estaría eternamente agradecido ya que nadie me ayuda y nose como seguir...
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
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda importante urgente no me sale y llevo dias...

Publicado por Lawliet (303 intervenciones) el 18/11/2015 18:18:44
Hola...

Prácticamente lo que necesitas es hacer el famoso juego del ahorcado, correcto?
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
sin imagen de perfil

Ayuda importante urgente no me sale y llevo dias...

Publicado por Ismael (14 intervenciones) el 19/11/2015 10:18:01
Para nada, es un trabajo de clase y ya está, solo estoy pidiendo un poco de ayuda a alguien que sepa bien de programación porque yo ando perdido y he llegado hasta ahi... Si fuesen ustedes tan amables de ayudarme a acabarlo les estaria muy muy agradecido


Un saludo

Ismael
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