cleaned up interpreter
This commit is contained in:
@@ -2,7 +2,7 @@ import logging
|
|||||||
from os import remove
|
from os import remove
|
||||||
import re
|
import re
|
||||||
from re import split
|
from re import split
|
||||||
from typing import List, Tuple
|
from typing import List, Match, Tuple
|
||||||
|
|
||||||
from errors.custom import InterpreterException, JavaSyntaxError, ScopeNotFoundException
|
from errors.custom import InterpreterException, JavaSyntaxError, ScopeNotFoundException
|
||||||
from draw.Iinstruction import *
|
from draw.Iinstruction import *
|
||||||
@@ -23,7 +23,7 @@ class Function_scope(Iterable):
|
|||||||
return self.contents.__iter__()
|
return self.contents.__iter__()
|
||||||
|
|
||||||
COMMENT_PATTERN = re.compile(r"""^//|^/\*\*|^\*|^--""")
|
COMMENT_PATTERN = re.compile(r"""^//|^/\*\*|^\*|^--""")
|
||||||
REMOVE_KEYWORDS = [' ', "public", "private", ';']
|
REMOVE_KEYWORDS = [' ', "public", "private", "final"]
|
||||||
VARIABLE_TAGS = ["byte", "short", "int", "long", "float", "double", "boolean", "char", "String"]
|
VARIABLE_TAGS = ["byte", "short", "int", "long", "float", "double", "boolean", "char", "String"]
|
||||||
FUNCTION_IDENTIFIERS = ["void"]
|
FUNCTION_IDENTIFIERS = ["void"]
|
||||||
FUNCTION_IDENTIFIERS.extend(VARIABLE_TAGS)
|
FUNCTION_IDENTIFIERS.extend(VARIABLE_TAGS)
|
||||||
@@ -36,7 +36,7 @@ remove_pattern = re.compile("|".join(REPLACE.keys()))
|
|||||||
variable_regex = "^("
|
variable_regex = "^("
|
||||||
for kw in FUNCTION_IDENTIFIERS:
|
for kw in FUNCTION_IDENTIFIERS:
|
||||||
variable_regex += fr"""{kw}|"""
|
variable_regex += fr"""{kw}|"""
|
||||||
variable_pattern = re.compile(variable_regex[0:-1]+")$(.*)")
|
variable_pattern = re.compile(variable_regex[0:-1]+")(.*)")
|
||||||
|
|
||||||
function_regex = "^("
|
function_regex = "^("
|
||||||
for kw in FUNCTION_IDENTIFIERS:
|
for kw in FUNCTION_IDENTIFIERS:
|
||||||
@@ -95,6 +95,7 @@ def get_scope_start_offset(src: List[str], i: int) -> int:
|
|||||||
return 2
|
return 2
|
||||||
raise ScopeNotFoundException("Unable to find scope start. Is the program ill-formed?")
|
raise ScopeNotFoundException("Unable to find scope start. Is the program ill-formed?")
|
||||||
|
|
||||||
|
|
||||||
def handle_while(line: str, src: List[str], i: int) -> Tuple[Iinstruction, int]:
|
def handle_while(line: str, src: List[str], i: int) -> Tuple[Iinstruction, int]:
|
||||||
bracket_idx = line.rindex(')') # throws if while contruct is illformed
|
bracket_idx = line.rindex(')') # throws if while contruct is illformed
|
||||||
|
|
||||||
@@ -146,6 +147,12 @@ def handle_do_while(line: str, src: List[str], i: int) -> Tuple[Iinstruction, in
|
|||||||
|
|
||||||
return while_instruction_back(instruction_txt, child_instructions), i
|
return while_instruction_back(instruction_txt, child_instructions), i
|
||||||
|
|
||||||
|
def handle_variable(line:str, src: List[str], i: int) -> Tuple[Iinstruction, int]:
|
||||||
|
groups = variable_pattern.match(line).groups()
|
||||||
|
var_type = groups[0]
|
||||||
|
var_name = groups[1]
|
||||||
|
return generic_instruction(f"{var_type} {var_name}"), i
|
||||||
|
|
||||||
def handle_instruction(line: str, src: List[str], i: int) -> Tuple[Iinstruction, int]:
|
def handle_instruction(line: str, src: List[str], i: int) -> Tuple[Iinstruction, int]:
|
||||||
if line.startswith("while("):
|
if line.startswith("while("):
|
||||||
logging.debug("Found while construct in line: %i", i+1)
|
logging.debug("Found while construct in line: %i", i+1)
|
||||||
@@ -159,6 +166,10 @@ def handle_instruction(line: str, src: List[str], i: int) -> Tuple[Iinstruction,
|
|||||||
logging.debug("Found do-while construct in line: %i", i+1)
|
logging.debug("Found do-while construct in line: %i", i+1)
|
||||||
return handle_do_while(line, src, i)
|
return handle_do_while(line, src, i)
|
||||||
|
|
||||||
|
# elif variable_pattern.match(line):
|
||||||
|
# logging.debug("Found variable in line %i", i+1)
|
||||||
|
# return handle_variable(line, src, i)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logging.debug("found generic instruction in line %i", i+1)
|
logging.debug("found generic instruction in line %i", i+1)
|
||||||
return generic_instruction(line), i
|
return generic_instruction(line), i
|
||||||
@@ -186,16 +197,21 @@ def get_instructions_in_scope(src: List[str], start_idx: int = 0) -> Tuple[List[
|
|||||||
|
|
||||||
return outer_scope, i
|
return outer_scope, i
|
||||||
|
|
||||||
|
def get_function_info(match: Match[str], line: str) -> Tuple[str, str, str]:
|
||||||
|
groups = match.groups()
|
||||||
|
ftype = groups[0]
|
||||||
|
fargs = groups[1]
|
||||||
|
fname = line.removeprefix(ftype).removesuffix(fargs) #remove return type and argument list to get the function name
|
||||||
|
return ftype, fname, fargs
|
||||||
|
|
||||||
def get_function_scopes(src: List[str]) -> List[Function_scope]:
|
def get_function_scopes(src: List[str]) -> List[Function_scope]:
|
||||||
functions = []
|
functions = []
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
while i < len(src):
|
while i < len(src):
|
||||||
line = src[i]
|
line = src[i]
|
||||||
if match:=function_pattern.match(line):
|
if match:=function_pattern.match(line):
|
||||||
groups = match.groups()
|
function_return_type, function_name, function_args = get_function_info(match, line)
|
||||||
function_return_type = groups[0]
|
|
||||||
function_args = groups[1]
|
|
||||||
function_name = line.removeprefix(function_return_type).removesuffix(function_args) #remove return type and argument list to get the function name
|
|
||||||
|
|
||||||
brace_offset = get_scope_start_offset(src, i)
|
brace_offset = get_scope_start_offset(src, i)
|
||||||
child_instructions, i = get_instructions_in_scope(src, i+brace_offset)
|
child_instructions, i = get_instructions_in_scope(src, i+brace_offset)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
//import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||||
|
|
||||||
// public class Rover extends Actor
|
public class Rover extends Actor
|
||||||
// {
|
{
|
||||||
// private Display anzeige;
|
private Display anzeige;
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * this function is to be implemented by the user
|
* this function is to be implemented by the user
|
||||||
// * depending on the needed actions
|
* depending on the needed actions
|
||||||
// */
|
*/
|
||||||
public void act()
|
public void act()
|
||||||
{
|
{
|
||||||
S66Nr3(7);
|
S66Nr3(7);
|
||||||
@@ -39,288 +39,288 @@
|
|||||||
drehe(pri);
|
drehe(pri);
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void fahreBisHuegel()
|
private void fahreBisHuegel()
|
||||||
// {
|
{
|
||||||
// while(!huegelVorhanden("vorne"))
|
while(!huegelVorhanden("vorne"))
|
||||||
// {
|
{
|
||||||
// fahre();
|
fahre();
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
// private void fahreZeileDreheHoch()
|
private void fahreZeileDreheHoch()
|
||||||
// {
|
{
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// fahreUmHuegel("Hoch");
|
fahreUmHuegel("Hoch");
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// drehe("um");
|
drehe("um");
|
||||||
|
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// fahreUmHuegel("Runter");
|
fahreUmHuegel("Runter");
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// drehe("rechts");
|
drehe("rechts");
|
||||||
// fahre();
|
fahre();
|
||||||
// drehe("rechts");
|
drehe("rechts");
|
||||||
// }
|
}
|
||||||
|
|
||||||
// private void fahreZeileDreheRunter(boolean geheInNächsteZeile)
|
private void fahreZeileDreheRunter(boolean geheInNächsteZeile)
|
||||||
// {
|
{
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// fahreUmHuegel("Runter");
|
fahreUmHuegel("Runter");
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// drehe("um");
|
drehe("um");
|
||||||
|
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// fahreUmHuegel("Hoch");
|
fahreUmHuegel("Hoch");
|
||||||
// fahreBisHuegel();
|
fahreBisHuegel();
|
||||||
// if(geheInNächsteZeile) {
|
if(geheInNächsteZeile) {
|
||||||
// drehe("rechts");
|
drehe("rechts");
|
||||||
// fahre();
|
fahre();
|
||||||
// drehe("rechts");
|
drehe("rechts");
|
||||||
// } else {
|
} else {
|
||||||
// drehe("um");
|
drehe("um");
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
// private void S66Nr3(int anzahlZeilen)
|
private void S66Nr3(int anzahlZeilen)
|
||||||
// {
|
{
|
||||||
// if(anzahlZeilen < 3) {
|
if(anzahlZeilen < 3) {
|
||||||
// nachricht("Ich muss mindestens drei Zeilen fahren! :(");
|
nachricht("Ich muss mindestens drei Zeilen fahren! :(");
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
// fahreZeileDreheHoch();
|
fahreZeileDreheHoch();
|
||||||
// //for(int i = 1; i < anzahlZeilen-1; i++) {
|
for(int i = 1; i < anzahlZeilen-1; i++) {
|
||||||
// fahreZeileDreheRunter(true);
|
fahreZeileDreheRunter(true);
|
||||||
// //}
|
}
|
||||||
// fahreZeileDreheRunter(false);
|
fahreZeileDreheRunter(false);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover bewegt sich ein Feld in Fahrtrichtung weiter.
|
* Der Rover bewegt sich ein Feld in Fahrtrichtung weiter.
|
||||||
// // * Sollte sich in Fahrtrichtung ein Objekt der Klasse Huegel befinden oder er sich an der Grenze der Welt befinden,
|
* Sollte sich in Fahrtrichtung ein Objekt der Klasse Huegel befinden oder er sich an der Grenze der Welt befinden,
|
||||||
// // * dann erscheint eine entsprechende Meldung auf dem Display.
|
* dann erscheint eine entsprechende Meldung auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public void fahre()
|
public void fahre()
|
||||||
// // {
|
{
|
||||||
// // int posX = getX();
|
int posX = getX();
|
||||||
// // int posY = getY();
|
int posY = getY();
|
||||||
|
|
||||||
// // if(huegelVorhanden("vorne"))
|
if(huegelVorhanden("vorne"))
|
||||||
// // {
|
{
|
||||||
// // nachricht("Zu steil!");
|
nachricht("Zu steil!");
|
||||||
// // }
|
}
|
||||||
// // else if(getRotation()==270 && getY()==1)
|
else if(getRotation()==270 && getY()==1)
|
||||||
// // {
|
{
|
||||||
// // nachricht("Ich kann mich nicht bewegen");
|
nachricht("Ich kann mich nicht bewegen");
|
||||||
// // }
|
}
|
||||||
// // else
|
else
|
||||||
// // {
|
{
|
||||||
// // move(1);
|
move(1);
|
||||||
// // Greenfoot.delay(1);
|
Greenfoot.delay(1);
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // if(posX==getX()&&posY==getY()&&!huegelVorhanden("vorne"))
|
if(posX==getX()&&posY==getY()&&!huegelVorhanden("vorne"))
|
||||||
// // {
|
{
|
||||||
// // nachricht("Ich kann mich nicht bewegen");
|
nachricht("Ich kann mich nicht bewegen");
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover dreht sich um 90 Grad in die Richtung, die mit richtung (ᅵlinksᅵ oder ᅵrechtsᅵ) ᅵbergeben wurde.
|
* Der Rover dreht sich um 90 Grad in die Richtung, die mit richtung (ᅵlinksᅵ oder ᅵrechtsᅵ) ᅵbergeben wurde.
|
||||||
// // * Sollte ein anderer Text (String) als "rechts" oder "links" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display.
|
* Sollte ein anderer Text (String) als "rechts" oder "links" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public void drehe(String richtung)
|
public void drehe(String richtung)
|
||||||
// // {
|
{
|
||||||
// // if(richtung.equals("rechts")){
|
if(richtung.equals("rechts")){
|
||||||
// // setRotation(getRotation()+90);
|
setRotation(getRotation()+90);
|
||||||
// // }else if(richtung.equals("links")){
|
}else if(richtung.equals("links")){
|
||||||
// // setRotation(getRotation()-90);
|
setRotation(getRotation()-90);
|
||||||
// // } else if(richtung.equals("um")) {
|
} else if(richtung.equals("um")) {
|
||||||
// // setRotation(getRotation()+180);
|
setRotation(getRotation()+180);
|
||||||
// // }else {
|
}else {
|
||||||
// // nachricht("Keinen Korrekte Richtung gegeben!");
|
nachricht("Keinen Korrekte Richtung gegeben!");
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Klasse Gestein befindet.
|
* Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Klasse Gestein befindet.
|
||||||
// // * Eine entsprechende Meldung erscheint auch auf dem Display.
|
* Eine entsprechende Meldung erscheint auch auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public boolean gesteinVorhanden()
|
public boolean gesteinVorhanden()
|
||||||
// // {
|
{
|
||||||
// // if(getOneIntersectingObject(Gestein.class)!=null)
|
if(getOneIntersectingObject(Gestein.class)!=null)
|
||||||
// // {
|
{
|
||||||
// // nachricht("Gestein gefunden!");
|
nachricht("Gestein gefunden!");
|
||||||
// // return true;
|
return true;
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // return false;
|
return false;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover ᅵberprᅵft, ob sich in richtung ("rechts", "links", oder "vorne") ein Objekt der Klasse Huegel befindet.
|
* Der Rover ᅵberprᅵft, ob sich in richtung ("rechts", "links", oder "vorne") ein Objekt der Klasse Huegel befindet.
|
||||||
// // * Das Ergebnis wird auf dem Display angezeigt.
|
* Das Ergebnis wird auf dem Display angezeigt.
|
||||||
// // * Sollte ein anderer Text (String) als "rechts", "links" oder "vorne" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display.
|
* Sollte ein anderer Text (String) als "rechts", "links" oder "vorne" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public boolean huegelVorhanden(String richtung)
|
public boolean huegelVorhanden(String richtung)
|
||||||
// // {
|
{
|
||||||
// // int rot = getRotation();
|
int rot = getRotation();
|
||||||
|
|
||||||
// // if (richtung=="vorne" && rot==0 || richtung=="rechts" && rot==270 || richtung=="links" && rot==90)
|
if (richtung=="vorne" && rot==0 || richtung=="rechts" && rot==270 || richtung=="links" && rot==90)
|
||||||
// // {
|
{
|
||||||
// // if(getOneObjectAtOffset(1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(1,0,Huegel.class)).getSteigung() >30)
|
if(getOneObjectAtOffset(1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(1,0,Huegel.class)).getSteigung() >30)
|
||||||
// // {
|
{
|
||||||
// // return true;
|
return true;
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // if (richtung=="vorne" && rot==180 || richtung=="rechts" && rot==90 || richtung=="links" && rot==270)
|
if (richtung=="vorne" && rot==180 || richtung=="rechts" && rot==90 || richtung=="links" && rot==270)
|
||||||
// // {
|
{
|
||||||
// // if(getOneObjectAtOffset(-1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(-1,0,Huegel.class)).getSteigung() >30)
|
if(getOneObjectAtOffset(-1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(-1,0,Huegel.class)).getSteigung() >30)
|
||||||
// // {
|
{
|
||||||
// // return true;
|
return true;
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // if (richtung=="vorne" && rot==90 || richtung=="rechts" && rot==0 || richtung=="links" && rot==180)
|
if (richtung=="vorne" && rot==90 || richtung=="rechts" && rot==0 || richtung=="links" && rot==180)
|
||||||
// // {
|
{
|
||||||
// // if(getOneObjectAtOffset(0,1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,1,Huegel.class)).getSteigung() >30)
|
if(getOneObjectAtOffset(0,1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,1,Huegel.class)).getSteigung() >30)
|
||||||
// // {
|
{
|
||||||
// // return true;
|
return true;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // if (richtung=="vorne" && rot==270 || richtung=="rechts" && rot==180 || richtung=="links" && rot==0)
|
if (richtung=="vorne" && rot==270 || richtung=="rechts" && rot==180 || richtung=="links" && rot==0)
|
||||||
// // {
|
{
|
||||||
// // if(getOneObjectAtOffset(0,-1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,-1,Huegel.class)).getSteigung() >30)
|
if(getOneObjectAtOffset(0,-1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,-1,Huegel.class)).getSteigung() >30)
|
||||||
// // {
|
{
|
||||||
// // return true;
|
return true;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // if(richtung!="vorne" && richtung!="links" && richtung!="rechts")
|
if(richtung!="vorne" && richtung!="links" && richtung!="rechts")
|
||||||
// // {
|
{
|
||||||
// // nachricht("Befehl nicht korrekt!");
|
nachricht("Befehl nicht korrekt!");
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // return false;
|
return false;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover ermittelt den Wassergehalt des Gesteins auf seiner Position und gibt diesen auf dem Display aus.
|
* Der Rover ermittelt den Wassergehalt des Gesteins auf seiner Position und gibt diesen auf dem Display aus.
|
||||||
// // * Sollte kein Objekt der Klasse Gestein vorhanden sein, dann erscheint eine entsprechende Meldung auf dem Display.
|
* Sollte kein Objekt der Klasse Gestein vorhanden sein, dann erscheint eine entsprechende Meldung auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public void analysiereGestein()
|
public void analysiereGestein()
|
||||||
// // {
|
{
|
||||||
// // if(gesteinVorhanden())
|
if(gesteinVorhanden())
|
||||||
// // {
|
{
|
||||||
// // nachricht("Gestein untersucht! Wassergehalt ist " + ((Gestein)getOneIntersectingObject(Gestein.class)).getWassergehalt()+"%.");
|
nachricht("Gestein untersucht! Wassergehalt ist " + ((Gestein)getOneIntersectingObject(Gestein.class)).getWassergehalt()+"%.");
|
||||||
// // Greenfoot.delay(1);
|
Greenfoot.delay(1);
|
||||||
// // removeTouching(Gestein.class);
|
removeTouching(Gestein.class);
|
||||||
// // }
|
}
|
||||||
// // else
|
else
|
||||||
// // {
|
{
|
||||||
// // nachricht("Hier ist kein Gestein");
|
nachricht("Hier ist kein Gestein");
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * Der Rover erzeugt ein Objekt der Klasse ᅵMarkierungᅵ auf seiner Position.
|
* Der Rover erzeugt ein Objekt der Klasse ᅵMarkierungᅵ auf seiner Position.
|
||||||
// // */
|
*/
|
||||||
// // public void setzeMarke()
|
public void setzeMarke()
|
||||||
// // {
|
{
|
||||||
// // getWorld().addObject(new Marke(), getX(), getY());
|
getWorld().addObject(new Marke(), getX(), getY());
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // /**
|
/**
|
||||||
// // * *Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Marke befindet.
|
* *Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Marke befindet.
|
||||||
// // * Eine entsprechende Meldung erscheint auch auf dem Display.
|
* Eine entsprechende Meldung erscheint auch auf dem Display.
|
||||||
// // */
|
*/
|
||||||
// // public boolean markeVorhanden()
|
public boolean markeVorhanden()
|
||||||
// // {
|
{
|
||||||
// // if(getOneIntersectingObject(Marke.class)!=null)
|
if(getOneIntersectingObject(Marke.class)!=null)
|
||||||
// // {
|
{
|
||||||
// // return true;
|
return true;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // return false;
|
return false;
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // public void entferneMarke()
|
public void entferneMarke()
|
||||||
// // {
|
{
|
||||||
// // if(markeVorhanden())
|
if(markeVorhanden())
|
||||||
// // {
|
{
|
||||||
// // removeTouching(Marke.class);
|
removeTouching(Marke.class);
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // private void nachricht(String pText)
|
private void nachricht(String pText)
|
||||||
// // {
|
{
|
||||||
// // if(anzeige!=null)
|
if(anzeige!=null)
|
||||||
// // {
|
{
|
||||||
// // anzeige.anzeigen(pText);
|
anzeige.anzeigen(pText);
|
||||||
// // Greenfoot.delay(1);
|
Greenfoot.delay(1);
|
||||||
// // anzeige.loeschen();
|
anzeige.loeschen();
|
||||||
// // }
|
}
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // private void displayAusschalten()
|
private void displayAusschalten()
|
||||||
// // {
|
{
|
||||||
// // getWorld().removeObject(anzeige);
|
getWorld().removeObject(anzeige);
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // protected void addedToWorld(World world)
|
protected void addedToWorld(World world)
|
||||||
// // {
|
{
|
||||||
|
|
||||||
// // setImage("images/rover.png");
|
setImage("images/rover.png");
|
||||||
// // world = getWorld();
|
world = getWorld();
|
||||||
// // anzeige = new Display();
|
anzeige = new Display();
|
||||||
// // anzeige.setImage("images/nachricht.png");
|
anzeige.setImage("images/nachricht.png");
|
||||||
// // world.addObject(anzeige, 7, 0);
|
world.addObject(anzeige, 7, 0);
|
||||||
// // if(getY()==0)
|
if(getY()==0)
|
||||||
// // {
|
{
|
||||||
// // setLocation(getX(),1);
|
setLocation(getX(),1);
|
||||||
// // }
|
}
|
||||||
// // anzeige.anzeigen("Ich bin bereit");
|
anzeige.anzeigen("Ich bin bereit");
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // class Display extends Actor
|
class Display extends Actor
|
||||||
// // {
|
{
|
||||||
// // GreenfootImage bild;
|
GreenfootImage bild;
|
||||||
|
|
||||||
// // public Display()
|
public Display()
|
||||||
// // {
|
{
|
||||||
// // bild = getImage();
|
bild = getImage();
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // public void act()
|
public void act()
|
||||||
// // {
|
{
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // public void anzeigen(String pText)
|
public void anzeigen(String pText)
|
||||||
// // {
|
{
|
||||||
// // loeschen();
|
loeschen();
|
||||||
// // getImage().drawImage(new GreenfootImage(pText, 25, Color.BLACK, new Color(0, 0, 0, 0)),10,10);
|
getImage().drawImage(new GreenfootImage(pText, 25, Color.BLACK, new Color(0, 0, 0, 0)),10,10);
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // public void loeschen()
|
public void loeschen()
|
||||||
// // {
|
{
|
||||||
// // getImage().clear();
|
getImage().clear();
|
||||||
// // setImage("images/nachricht.png");
|
setImage("images/nachricht.png");
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // }
|
}
|
||||||
|
|
||||||
// // public class Direction {
|
public class Direction {
|
||||||
// // Direction(int val){
|
Direction(int val){
|
||||||
// // this.value = val;
|
this.value = val;
|
||||||
// // }
|
}
|
||||||
// // final int value;
|
final int value;
|
||||||
// // };
|
};
|
||||||
// // }
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user