Navegación de robot.
El objetivo del ejercicio es permitir que un robot se desplace por un tablero.
- El tablero será de dimensiones 5 x 5.
- La posición inicial del robot será (1,1)
- Los comandos para los movimientos seran:
IZ(izquierda), DE(Derecha), AR(Arriba), AB(Abajo)
- Cada vez que el robot cambie de posición debe indicar su nueva poscición en consola.
- Los comandos serán ingresados mediante un archivo de texto.
- Los resultados serán impresos en consola.
Por ejemplo si los comandos en el archvio de texto son:
DE, DE, AB
La consola imprime lo siguiente:
(2,1)
(3,1)
(3,2)
El programa debe funcionar para las siguientes secuencias de comandos:
DE,DE,AB
DE,AB,AB,AB,AB
AB,DE,DE,AB,IZ
Para la solución se utilizó Netbeans 8.1 y jdk 1.8
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
Ejemplo de lectura y escritura de archivo de texto en Java
1. Autor: LuisCoba
Ejercicio1
Nombre: Luis Coba
Fecha: 31 de Marzo de 2017
Navegaciónde robot.
El objetivodel ejercicioespermitirque unrobotse desplace poruntablero.
- El tableroseráde dimensiones5x 5.
- La posicióninicial del robotserá(1,1)
- Los comandospara losmovimientosserán:
IZ(Izquierda),DE(Derecha),AR(Arriba),AB(Abajo).
- Cada vezque el robot cambie de posicióndebe indicarsunuevaposiciónenconsola.
- Los comandosseráningresadosmedianteunarchivode texto.
- Los resultadosserán impresosenconsola.
Por ejemplosi loscomandosenel archivode textoson:
DE, DE, AB
La consoladeberáimprimirlosiguiente:
(2,1)
(3,1)
(3,2)
El programa debe funcionarparalassiguientessecuenciasde comandos:
DE,DE,AB
DE,AB,AB,AB,AB
AB,DE,DE,AB,IZ
2. Autor: LuisCoba
RESOLUCIÓN:
El ejercicio 1fue programadoenel IDE Netbeans8.1 con el JDK1.8
- El programa lee unarchivode texto llamadoarchivo.txt
- El archivoestáubicadoen C:archivo.txt
Resultadode ingresar la siguiente secuenciade comandos:
DE,DE,AB
DE,AB,AB,AB,AB
AB,DE,DE,AB,IZ
3. Autor: LuisCoba
Códigoescrito enJava:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
public classYoRobot1 {
public static void main(String[] args) {
Filearchivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
// Apertura del fichero y creacion de BufferedReader para poder
// leer con el método readLine()
archivo = new File("C:archivo.txt");
fr = new FileReader(archivo);
br = new BufferedReader(fr);
//son las posiciones iniciales del Tablero
int xPosicion =1; //posicion inicial en X
int yPosicion =1; //posicion inicial en Y
String linea;// 'linea' recorrerá cada linea del Archivo.txt
String palabra;// 'palabra' recorrerá cada palabra decada linea
// buclepara todas las lineas del Archivo
while ((linea =br.readLine()) != null) {
// la coma(,) es el separador de'linea'
StringTokenizer st= new StringTokenizer(linea,",");
//System.out.println(linea);
// buclepara todas las palabras
while (st.hasMoreTokens()) {
palabra =st.nextToken();
switch (palabra) {
case"DE":
xPosicion =xPosicion +1;
break;
case"IZ":
xPosicion =xPosicion - 1;
break;
case"AB":
yPosicion =yPosicion +1;
break;
case"AR":
yPosicion =yPosicion - 1;
break;
default:
System.out.println("Error al leer una palabra del Archivo.txt");
break;
}
// comprobamos que la posicion no rebaseel tablero 5x5
xPosicion =comprobarDimension(xPosicion);
yPosicion =comprobarDimension(yPosicion);
4. Autor: LuisCoba
// se imprimeel resultado del desplazamiento del Robot
System.out.println("(" + xPosicion +"," + yPosicion +")");
}
}
} catch (FileNotFoundException f) {
System.out.println("Archivo no encontrado");
} catch (IOException ioe) {
System.out.println("error al leer el archivo");
}
}
// metodo para comprobar si la posicion es mayor a 5
public static intcomprobarDimension(intposicion) {
if (posicion >5) { // si posicion es mayor que 5, esta saliendo del tablero
System.out.println("Robot NO puede salirdel tableto 5x5 ");
System.out.println("Robot se mantiene en el mismo punto");
posicion =posicion - 1;
}
return posicion;
}
}