package application.model;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.python.core.PyInstance;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;



/**
 * Pregunta de tipo Codigo
 * @author Carlos
 *
 */
public class Codigo extends Pregunta <String>
{
	public Codigo(int numero, String enunciado, String pista, String solucion) {
		super(numero, enunciado, pista, solucion);
		//this.respuesta = respuesta;
	}
	
	//respuesta es la funcion a la que llamar, código es lo que escribe el usuario
	public boolean comprueba(String respuesta, String codigo){
		return true;
	}


	@Override
	public void setOpciones(ArrayList<String> opciones) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean corrige(String respuesta, Tema tema) {
		ProcessBuilder pb = new ProcessBuilder(Utilities.PATH + "python.exe", "\\resources\\exec\\tema1.py");
		try {//No estalla pero no hace nada
			Process p = pb.start();
			InputStream is = p.getInputStream();
	        InputStreamReader isr = new InputStreamReader(is);
	        BufferedReader br = new BufferedReader(isr);
	        String line;
	        System.out.printf("Output of running is:\n");
	               
	        while ((line = br.readLine()) != null) {
	            System.out.println(line);
	        }
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}

	@Override
	public void setSolucion(String solucion) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void setMulti(Boolean is) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void setSolucion(ArrayList<Integer> correctasAux) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void setTexto(String explicacion) {
		// TODO Auto-generated method stub
		
	}
	
}

@@ -1100,32 +1100,429 @@
 %0A%09%09%09
-Process p = pb.start();%0A
+System.out.println(%22lanza el proceso%22);%0A%09%09%09Process p = pb.start();%0A%09%09%09pb.command(this.solucion+%22(%22+respuesta+%22)%22);%0A%09%09%09pb.command(%22exit()%22); //salir de la consola%0A%09%09%09Map%3CString, String%3E env = pb.environment();%0A%09%0A%09%09%09boolean errCode = p.waitFor(2, TimeUnit.SECONDS);%0A%09%09%09System.out.println(%22Echo command executed, any errors? %22 + (errCode ? %22Yes%22 : %22No%22));%0A%09%09%09System.out.println(%22Echo Output:%5Cn%22 + p.getInputStream());%0A%09%09%09%0A//
 %09%09%09I
@@ -1557,16 +1557,18 @@
 ream();%0A
+//
 %09       
@@ -1619,16 +1619,18 @@
 er(is);%0A
+//
 %09       
@@ -1675,16 +1675,18 @@
 r(isr);%0A
+//
 %09       
@@ -1699,16 +1699,18 @@
 g line;%0A
+//
 %09       
@@ -1726,17 +1726,18 @@
 ut.print
-f
+ln
 (%22Output
@@ -1757,16 +1757,18 @@
 s:%5Cn%22);%0A
+//
 %09       
@@ -1776,16 +1776,18 @@
        %0A
+//
 %09       
@@ -1828,16 +1828,18 @@
 null) %7B%0A
+//
 %09       
@@ -1869,16 +1869,18 @@
 (line);%0A
+//
 %09       
@@ -1975,19 +1975,115 @@
 e();%0A%09%09%7D
-%0A%09%09
+ catch (InterruptedException e) %7B%0A%09%09%09// TODO Auto-generated catch block%0A%09%09%09e.printStackTrace();%0A%09%09%7D
 %0A%09%09retur

prueba ejecucion