Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class pac{
- int x, y;
- char dir;
- pac pai;
- pac(int x, int y, char dir){
- this.x = x;
- this.y = y;
- this.dir = dir;
- }
- pac(int x, int y){
- this.x = x;
- this.y = y;
- dir = 'N';
- }
- }
- class marcos{
- public static void mover(char a){
- System.out.println(a);
- }
- public static LinkedList<pac> tem_moeda(LinkedList<pac> fila, pac pacman, char[][] mapa){
- if(mapa[pacman.x-1][pacman.y] == 'o' || mapa[pacman.x-1][pacman.y] == 'O'){
- pacman.dir = 'L';
- fila.addLast(pacman);
- }
- if(mapa[pacman.x+1][pacman.y] == 'o' || mapa[pacman.x+1][pacman.y] == 'O'){
- pacman.dir = 'R';
- fila.addLast(pacman);
- }
- if(mapa[pacman.x][pacman.y+1] == 'o' || mapa[pacman.x][pacman.y+1] == 'O'){
- pacman.dir = 'D';
- fila.addLast(pacman);
- }
- if(mapa[pacman.x][pacman.y-1] == 'o' || mapa[pacman.x][pacman.y-1] == 'O'){
- pacman.dir = 'U';
- fila.addLast(pacman);
- }
- return fila;
- }
- public static void main(String args[]){
- //incializacao de variaveis
- int x,y;
- String linha;
- LinkedList<pac> fila = new LinkedList<pac>();
- LinkedList<pac> backtrack = new LinkedList<pac>();
- Random randomGenerator = new Random();
- Scanner in = new Scanner(System.in);
- //leitura do tamanho do mapa
- y = in.nextInt();
- x = in.nextInt();
- //inicializacao do mapa
- char[][] mapa = new char[x][y];
- //saltar linha para ler o mapa
- in.nextLine();
- //leitura do mapa
- for(int i = 0; i<y; i++){
- linha = in.nextLine();
- for(int c = 0; c<x; c++){
- mapa[c][i] = linha.charAt(c);
- }
- }
- y = in.nextInt();
- x = in.nextInt();
- in.nextLine();
- in.nextLine();
- in.nextLine();
- in.nextLine();
- in.nextLine();
- linha = in.nextLine();
- char direc = linha.charAt(0);
- char direc2;
- pac pacman = new pac(x, y);
- boolean verdadeiro = true;
- boolean marcador = false;
- int profundidade;
- while(verdadeiro){
- fila = tem_moeda(fila, pacman, mapa);
- while(!fila.isEmpty()){
- pacman = fila.removeFirst();
- mover(pacman.dir);
- }
- if(direc != 'N'){
- if(mapa[pacman.x--][pacman.y] == '.' && direc == 'L'){
- mover(direc);
- }
- if(mapa[pacman.x++][pacman.y] == '.' && direc == 'R'){
- mover(direc);
- }
- if(mapa[pacman.x][pacman.y--] == '.' && direc == 'U'){
- mover(direc);
- }
- if(mapa[pacman.x][pacman.y++] == '.' && direc == 'D'){
- mover(direc);
- }
- }
- int randomInt = randomGenerator.nextInt(3);
- if (randomInt == 0){
- direc2 = 'D';
- if(mapa[pacman.x][pacman.y++] == '.'){
- mover(direc2);
- }
- }
- if (randomInt == 1){
- direc2 = 'U';
- if(mapa[pacman.x][pacman.y--] == '.'){
- mover(direc2);
- }
- }
- if (randomInt == 2) {
- direc2 = 'R';
- if(mapa[pacman.x++][pacman.y] == '.'){
- mover(direc2);
- }
- }
- if (randomInt == 3) {
- direc2 = 'L';
- if(mapa[pacman.x--][pacman.y] == '.'){
- mover(direc2);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement