[Java] Ajuda urgente! Controlar Robot!

Pinistia

Membro
Boas pessoal!
Ando com uns problemas a programar a JAVA e fiz um pseudo-código, mas não estou a conseguir passar para código.

Se alguém me pudesse dar umas luzes.

Código:
package pt.ulht.fp.curiosity.core;

import java.util.Random;

import pt.ulht.fp.curiosity.RobotController;
import pt.ulht.fp.curiosity.Simulator;
import pt.ulht.fp.curiosity.Simulator.Map;
import pt.ulht.fp.curiosity.Simulator.Speed;

public class Curiosity {
    static int linhaactual;
    static int colunaactual;
    static int comprimento;
    static int largura;
    static int [][] coordenadas= new int [comprimento][largura];
	public static void configLandingSite(int line, int column, int numLines,
			int numColumns) {
		//Inicializa estado do robot
            colunaactual = column;
            linhaactual = line;
            comprimento= numLines;
            largura = numColumns;
            System.out.println("A Posição inicial é"+ colunaactual +"," + linhaactual);
               
	}
		
	public static void controlRobot() {
            int energia = RobotController.getEnergy();
            System.out.println(energia);
            
            if(RobotController.senseEnergy()){
                System.out.println("Bateria");
                RobotController.recharge();
                RobotController.turnRight();
                RobotController.senseSpace();
                if(RobotController.senseSpace()==true){
                    RobotController.move();
                    System.out.println("coordenada actual"+ linhaactual+","+colunaactual);
                }
                else if(RobotController.senseSpace()==false){
                    RobotController.turnRight();
                    RobotController.senseSpace();
                }
                
            }
            
            if(RobotController.senseWall()){
                System.out.println("Parede");
                if(RobotController.senseWall()==true){
                    RobotController.turnRight();
                    RobotController.senseWall();
                }
                else if(RobotController.senseWall()==false){
                    RobotController.move();
                    System.out.println("coordenada actual"+ linhaactual+","+colunaactual);
                } 
            }
            
            if(RobotController.senseSpace()){
                RobotController.move();
                System.out.println("coordenada actual"+ linhaactual+","+colunaactual);
            }	
}
	
	public static void transmitState(String filename) {
		//Escrever estado para ficheiro filename passado como argumentos  
           }
	
	public static void main(String[] args) {
		//Experimentar Map.WORLD01 Map.WORLD02 Map.WORLD03 Map.WORLD04 Map.WORLD05
		//e as velocidades Speed.SLOW Speed.NORMAL Speed.FAST
		Simulator.run(Map.WORLD03, Speed.NORMAL);
	}
}

tenho as seguintes operações para movimentar o robot:

void RobotController.move()- Avança uma unidade, caso exista um obstáculo, o robot fica destruído e a missão comprometida.
boolean RobotController.senseSpace()- Devolve Verdadeiro ou Falso caso exista ou não um espaço à frente do robot
boolean RobotController.senseWall()- Devolve Verdadeiro ou Falso caso exista ou não uma parede à frente do robot.
boolean RobotController.senseEnergy()- Devolve Verdadeiro ou Falso caso exista ou não uma fonte de energia à frente do robot.
boolean RobotController.recharge()- Devolve verdadeiro ou falso caso o robot consiga recarregar ou não.
int RobotController.getEnergy()- Ddevolve um nº inteiro referente à energia disponivel na bateria do robo
void RobotController.turnLeft()- o robot fica na mesma posição mas vira 90º para a esquerda.
void RobotController.turnRight()- o robot fica na mesma posição mas vira 90º para a direita.

Não estou a conseguir criar o seguinte:
1º Uma memória que me guarde as coordenadas e consequentemente não deixe o meu robot andar por sítios que já andou.
2º Criar um file log com as decisões/operações efectuadas
3º E acho que não percebo nada disto porque tudo me parece mal!
 
Back
Topo