int active[3][3];
float playerPosX = 0;
float playerPosY = 0;
String message;
int direction;
void setup() {
// put your setup code here, to run once:
#define vertical A0
#define horizontal A1
pinMode(vertical, INPUT);
pinMode(horizontal, INPUT);
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop(){
for(int b=0;b<3;b++){
for(int v=0;v<3;v++){
if(active[b][v]==1){
digitalWrite(b+5, HIGH);
digitalWrite(v+8, HIGH);
digitalWrite(b+5, LOW);
digitalWrite(v+8, LOW);
}
}
}
move((analogRead(vertical)-512)/10,(analogRead(horizontal)-512)/10);
}
void lamp(int i, int l, bool activate){
if(activate==true){
active[i-1][l-1] = 1;
}
else if(activate==false){
active[i-1][l-1] = 0;
}
}
void move(float vertMove, float horiMove){
if(10>vertMove&&vertMove>-10&&10>horiMove&&horiMove>-10){
int ar[3][3]={{0,0,0},
{0,1,0},
{0,0,0}};
fill(ar);
}
else if(10<vertMove&&10>horiMove&&horiMove>-10){
int ar[3][3]={{1,0,1},
{1,1,1},
{0,1,0}};
fill(ar);
}
else if(-10>vertMove&&10>horiMove&&horiMove>-10){
int ar[3][3]={{0,1,0},
{1,1,1},
{1,0,1}};
fill(ar);
}
else if(10>vertMove&&vertMove>-10&&10<horiMove){
int ar[3][3]={{1,1,0},
{0,1,1},
{1,1,0}};
fill(ar);
}
else if(10>vertMove&&vertMove>-10&&-10>horiMove){
int ar[3][3]={{0,1,1},
{1,1,0},
{0,1,1}};
fill(ar);
}
if(-10>vertMove&&-10>horiMove){
int ar[3][3]={{1,1,1},
{1,1,0},
{1,0,1}};
fill(ar);
}
if(-10>vertMove&&10<horiMove){
int ar[3][3]={{1,1,1},
{0,1,1},
{1,0,1}};
fill(ar);
}
if(10<vertMove&&10<horiMove){
int ar[3][3]={{1,0,1},
{0,1,1},
{1,1,1}};
fill(ar);
}
if(10<vertMove&&-10>horiMove){
int ar[3][3]={{1,0,1},
{1,1,0},
{1,1,1}};
fill(ar);
}
float moveDis = 0;
moveDis = sqrt(vertMove*vertMove+horiMove*horiMove);
while(moveDis>102){
vertMove--;
horiMove--;
moveDis = sqrt(vertMove*vertMove+horiMove*horiMove);
}
playerPosX = playerPosX + horiMove;
playerPosY = playerPosY + vertMove;
message = "The Player is currently at: ";
message.concat(playerPosX);
message.concat(" and ");
message.concat(playerPosY);
Serial.println(message);
delay(50);
}
void fill(int Array[3][3]){
for(int n=0;n<3;n++){
for(int m=0;m<3;m++){
if(Array[n][m]==0){
lamp(n+1,m+1, false);
//Serial.println("nein");
}
if(Array[n][m]==1){
lamp(n+1,m+1, true);
//Serial.println("ja");
}
}
}
}