Cambio para recibir más de un estado final
This commit is contained in:
parent
5a04629ac7
commit
4196ce4f61
@ -15,7 +15,8 @@ public class LoteController {
|
|||||||
protected void runLote() throws Exception {
|
protected void runLote() throws Exception {
|
||||||
Scene scene = vboxLote.getScene();
|
Scene scene = vboxLote.getScene();
|
||||||
Maquina maquina = (Maquina) scene.getUserData();
|
Maquina maquina = (Maquina) scene.getUserData();
|
||||||
if (maquina.comprobarCadena(new StringBuilder("000111###"), 5)) {
|
int[] estados = {5};
|
||||||
|
if (maquina.comprobarCadena(new StringBuilder("000111###"),estados)) {
|
||||||
MT.mostrarMensaje("Resultado", "Reconce");
|
MT.mostrarMensaje("Resultado", "Reconce");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -11,23 +11,33 @@ import org.w3c.dom.Document;
|
|||||||
|
|
||||||
class Maquina {
|
class Maquina {
|
||||||
private final Automata maquina;
|
private final Automata maquina;
|
||||||
|
private Estado estadoactual;
|
||||||
|
private Enlace enlaceactual;
|
||||||
|
private String cintaanterior;
|
||||||
|
|
||||||
Maquina(Document document) {
|
Maquina(Document document) {
|
||||||
maquina = new Automata(document);
|
maquina = new Automata(document);
|
||||||
|
estadoactual = maquina.getEstados().get(0);
|
||||||
|
enlaceactual = null;
|
||||||
|
cintaanterior = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
Automata getMaquina() {
|
Automata getMaquina() {return maquina;}
|
||||||
return maquina;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean comprobarCadena(StringBuilder cinta, int estadoFinal) {
|
public Estado getEstadoactual() {return estadoactual;}
|
||||||
Estado qi = maquina.getEstados().get(0);
|
|
||||||
|
public Enlace getEnlaceactual() {return enlaceactual;}
|
||||||
|
|
||||||
|
public String getCintaanterior() {return cintaanterior;}
|
||||||
|
|
||||||
|
boolean comprobarCadena(StringBuilder cinta, int[] estadoFinal) {
|
||||||
|
//estadoactual = maquina.getEstados().get(0);
|
||||||
int cabezal = 0;
|
int cabezal = 0;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < qi.getEnlaces().size(); i++) {
|
for (i = 0; i < estadoactual.getEnlaces().size(); i++) {
|
||||||
if (qi.getEnlaces().get(i).getSi() == cinta.charAt(cabezal)) {
|
if (estadoactual.getEnlaces().get(i).getSi() == cinta.charAt(cabezal)) {
|
||||||
cinta.setCharAt(cabezal, qi.getEnlaces().get(i).getSj());
|
cinta.setCharAt(cabezal, estadoactual.getEnlaces().get(i).getSj());
|
||||||
switch (qi.getEnlaces().get(i).getMovimiento()) {
|
switch (estadoactual.getEnlaces().get(i).getMovimiento()) {
|
||||||
case 'L': {
|
case 'L': {
|
||||||
cabezal--;
|
cabezal--;
|
||||||
if (cabezal == (-1)) {
|
if (cabezal == (-1)) {
|
||||||
@ -45,11 +55,19 @@ class Maquina {
|
|||||||
}
|
}
|
||||||
default: {/*Se mantiene*/}
|
default: {/*Se mantiene*/}
|
||||||
}
|
}
|
||||||
qi = qi.getEnlaces().get(i).getQj();
|
estadoactual = estadoactual.getEnlaces().get(i).getQj();
|
||||||
i = -1;
|
i = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (qi.getQ() == estadoFinal);
|
for(i=0;i<estadoFinal.length;i++){
|
||||||
|
if(estadoactual.getQ() == estadoFinal[i]) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean comprobarCadenaS2S(StringBuilder cinta, int[] estadoFinal){
|
||||||
|
cintaanterior = cinta.toString();
|
||||||
|
return false; // Programando ahora
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user