Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: sheiking en 1 Abril 2019, 18:30 PM

Título: ayuda con recursividad juego de adivinar animales
Publicado por: sheiking en 1 Abril 2019, 18:30 PM
hola que tal estoy haciendo un juego de adivinar animales pero necesito hacerlo recursivo pero no tengo idea de como aplicar la recursion
aquí les comparto el código 

Código (java) [Seleccionar]

package evidencia;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;


public class Juego implements Serializable {

   
    public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
       
        FileInputStream Fi = new FileInputStream("respuestas.txt");
        ObjectInputStream in = new ObjectInputStream(Fi);
        Memoria memory = (Memoria)in.readObject();
        memory.iniciar("vaca");
       
        FileOutputStream out = new FileOutputStream("respuestas.txt");
        ObjectOutputStream os = new ObjectOutputStream(out);
        os.writeObject(memory);
   
       
    }
   
}


Código (java) [Seleccionar]

package evidencia;

import java.io.Serializable;


public class Arbol<E> implements Serializable {
    public Arbol izquierda;
    public Arbol derecha;
    public E carga;

    public Arbol() {
    }
   
   
    public Arbol(Arbol izquierda,Arbol derecha, E carga){
        this.izquierda = izquierda;
        this.derecha = derecha;
        this.carga = carga;
    }
    public Arbol(E cargar){
        this.izquierda = null;
        this.derecha = null;
        this.carga = cargar;
    }
    @Override
    public String toString(){
        return carga.toString();
    }
}



Código (java) [Seleccionar]

package evidencia;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;



public class Memoria implements Serializable {
    private Arbol raiz;
    static BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
   
    public boolean si(String pregunta) throws IOException{
        System.out.println(pregunta);
       
        String respuesta = sc.readLine();
       
        return "si".equals(respuesta.toLowerCase());
    }
   
    public void iniciar(String firstAnimal) throws IOException{
        boolean bucle = true;
        if(raiz == null){
        raiz = new Arbol(firstAnimal);
        }
        while(bucle){
            if (!si("¿Estas pensando en un Animal?")) {
                break;
            }
            Arbol arbol = raiz;
            while(arbol.izquierda !=null){
                if (si(arbol.carga+"?")) {
                    arbol = arbol.izquierda;
                }else{
                    arbol = arbol.derecha;
                }
            }
            String animal = (String) arbol.carga;
            if (si("Es un "+animal+"?")) {
                System.out.println("Adivine!!");
                continue;
            }
            if(arbol.derecha == null){
            System.out.println("¿Que animal era?");
            String nuevo = sc.readLine();
            System.out.println("que diferencia a un(a) " +animal+ " de un "+nuevo+"?");
            String info = sc.readLine();
            String indicador = "Si el animal fuera un(a) "+animal+" cual seria la respuesta";
            arbol.carga = info;
           
            if (si(indicador)) {
                arbol.izquierda = new Arbol(animal);
                arbol.derecha = new Arbol(nuevo);
            }else{
                arbol.derecha = new Arbol(animal);
                arbol.izquierda = new Arbol(nuevo);
            }
            }else{
                System.out.println(arbol.derecha);
            }
        }
    }
}