int main(void) { enc_init(); motor_init(); encoder_debug_init(); right_turns = 0; left_turns = 0; right_direction = REVERSE; left_direction = REVERSE; encoder_debug_init(); //Enable all interrupts sei(); DDRC &= ~(_BV(DDC5)); while (!(has_wall(RIGHT) && has_wall(RIGHT))) { move_forward(1); } turn_right(1); move_forward(1); while (1) { if (has_wall(RIGHT)) { PORTC |= _BV(PORTC3); } else { PORTC &= ~(_BV(PORTC3)); } if (has_wall(LEFT)) { PORTC |= _BV(PORTC2); } else { PORTC &= ~(_BV(PORTC2)); } /* while ((PINC & _BV(PINC5))); move_forward(1); move_forward(1); turn_right(1); move_forward(1); */ } }
element type_of(Maze *maze, int x, int y) { Player p1 = maze->player1; Exit e1 = maze->exit1; if (has_wall(maze, x, y)) { return WALL; } else if (x == p1.coordinate.x && y == p1.coordinate.y) { return PLAYER; } else if (x == e1.coordinate.x && y == e1.coordinate.y) { return EXIT; } else { return NONE; } }
void fill_row(char * buf, int row) { if(row < 2 || row > CELL_Y - 2) for(int i = 0; i < CELL_X; i++) buf[i] = ' '; else for(int i = 0; i < CELL_X; i++) buf[i] = /*(i == 1 || i == CELL_X - 2) ? ' ' :*/ RANDOM_BLOCK; if(has_wall(up)) { int i0 = 0, i1 = 1; if(row == i0) for(int i = 0; i < CELL_X; i++) buf[i] = '-'; /*if(row == i1) for(int i = 0; i < CELL_X; i++) buf[i] = '-';*/ // } if(has_wall(down)) { int i0 = CELL_Y - 1, i1 = CELL_Y - 2; if(row == i0) for(int i = 0; i < CELL_X; i++) buf[i] = '-'; /*if(row == i1) for(int i = 0; i < CELL_X; i++) buf[i] = '-';*/ } // if(has_wall(left)) { int i0 = 0, i1 = 1; buf[i0] = '-'; /*if(buf[i1] == ' ') buf[i1] = '-';*/ } if(has_wall(right)) { int i0 = CELL_X - 1, i1 = CELL_X - 2; buf[i0] = '-'; /*if(buf[i1] == ' ') buf[i1] = '-';*/ } if(row == 0 || row == CELL_Y - 1) { buf[0] = '-'; buf[CELL_X-1] = '-'; /* buf[1] = '-'; buf[CELL_X-2] = '-';*/ } /* if(row == 1 || row == CELL_Y - 2) { buf[0] = '-'; buf[CELL_X-1] = '-'; buf[1] = '-'; buf[CELL_X-2] = '-'; }*/ }