001 package de.hska.java.aufgaben.felder;
002
003 /**
004 * Ein deterministischer endlicher Automat.
005 * <p>
006 * <a href="http://www.home.hs-karlsruhe.de/~pach0003/informatik_1/aufgaben/felder.html#automat">Zurück zum Aufgabentext</a>
007 * </p>
008 *
009 * @author Christian Pape
010 *
011 */
012 public class EndlicherAutomat implements Automat {
013
014 private int [][] uebergaenge;
015
016 public EndlicherAutomat(int [][] uebergaenge) {
017 this.uebergaenge = uebergaenge;
018 }
019
020 public boolean akzeptiert(char [] eingabe) {
021 int zustand = 1;
022
023 for (char c : eingabe) {
024 zustand = uebergaenge[zustand][c];
025 if (zustand == 0) {
026 return false;
027 }
028 }
029
030 return zustand == uebergaenge.length - 1;
031 }
032
033 }