int active[10][10];
String incoming;
int playerPosY = 2;
int playerPosX = 2;
int count;
String sache;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
active[1][2] = 2;
active[2][2] = 2;
active[6][2] = 2;
Serial.println("Hier w, a, s oder d eingeben");
}
void loop(){
lamp(playerPosY,playerPosX,true,true);
for(int b=0;b<3;b++){
for(int v=0;v<3;v++){
int bu=b+playerPosY-2;
int vu=v+playerPosX-2;
if(active[bu][vu]==1){
digitalWrite(b+5, HIGH);
digitalWrite(v+8, HIGH);
digitalWrite(b+5, LOW);
digitalWrite(v+8, LOW);
}
if(active[bu][vu]==2||active[bu][vu]==3){
if(active[bu][vu]==2){
digitalWrite(b+5, HIGH);
digitalWrite(v+8, HIGH);
digitalWrite(b+5, LOW);
digitalWrite(v+8, LOW);
}
count++;
delay(1);
if(count>=250&&active[bu][vu]==2){
active[bu][vu]=3;
count = 0;
}
else if(count>250&&active[bu][vu]==3){
active[bu][vu]=2;
count = 0;
}
}
}
}
if(Serial.available() != 0){
incoming = Serial.readString();
incoming.trim();
if(incoming=="w"&&playerPosY+1<11){
playerPosY++;
}
else if(incoming=="a"&&playerPosX-1>0){
playerPosX--;
}
else if(incoming=="s"&&playerPosY-1>0){
playerPosY--;
}
else if(incoming=="d"&&playerPosX+1<11){
playerPosX++;
}
Serial.end();
Serial.begin(9600);
}
}
void lamp(int i, int l, bool activate, bool clear){
if(activate==true){
active[i-1][l-1] = 1;
}
else if(activate==false){
if(active[i-1][l-1]!=2&&active[i-1][l-1]!=3){
active[i-1][l-1] = 0;
}
}
if(clear==true){
for(int p=1;p<11;p++){
for(int u=1;u<11;u++){
if(p!=i||u!=l){
lamp(p,u,false,false);
}
}
}
}
}