lunes, 5 de abril de 2010

Act. 250310_1 Agente con arreglos bidimencionales-Jose Luis Alejandro Aguilar, Jose Luis Díaz, Rafael Soriano










Main

package aspiradora;
public class Main {
public static void main(String[] args) {
areaLimpiar interfaz = new areaLimpiar();
interfaz.setVisible(true);
}
}

Clase AgenteSimple

package aspiradora;

public class AgenteSimple {
int percepcionActual;
int accion,k,p,x,reglas[][]= new int[8][8];
AgenteSimple()
{ }

void recibePercepcion(int percep)
{
percepcionActual = percep;
}

int escogeLaMejorAccion(int percepcionActual)
{/*
String reglas[][]=new String[8][8];
reglas[1][0]="inspeccionar área";
reglas[1][1]="aspirar";//
reglas[1][2]="aspirar";
reglas[1][3]="aspirar";
reglas[1][4]="aspirar";
reglas[1][4]="inspeccionar área";
reglas[1][6]="mover izquierda";
reglas[1][7]="mover derecha";
*/
for(k=1; k<8;k++){
for(p=0; p<4;p++){
reglas[1][0]=1;
reglas[1][1]=2;
reglas[1][2]=2;
reglas[1][3]=2;
reglas[1][4]=2;
reglas[1][5]=1;
reglas[1][6]=3;
reglas[1][7]=4;
}
}
for(x=1; x if(reglas[1][x] ==percepcionActual)
{
return percepcionActual;
}
}
return 0;
}
String interpretaAccion (int accion)
{
if(accion == 1)
{
return ("Estoy analizando el área para ver si me muevo o no me muevo, o limpio o no");
}
if(accion ==2)
{
return("Aspiraré el área");
}
if(accion ==3)
{
return("Percibo pared a la izquierda de mi, por lo tanto me moveré a mi derecha");
}
if(accion ==4)
{
return("Percibo pared a la derecha de mi, por lo tanto me moveré a mi izquierda");
}
return ("No sé que hacer por lo tanto, me detengo");
}
}

Interfaz AreaLimpiar (Código)

package aspiradora;
public class areaLimpiar extends javax.swing.JFrame {


public areaLimpiar() {
initComponents();
}


@SuppressWarnings("unchecked")
//
private void initComponents() {

jButton1 = new javax.swing.JButton();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Agente-(Aspiradora)");

jButton1.setText("click");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jTextField1.setEnabled(false);

jLabel1.setText("Percepción y acción a realizar:");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(77, 77, 77)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(15, 15, 15)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

pack();
}//


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int opcion;
int random = (int) (Math.random() * 4);
opcion=random+1;
jTextField1.setText(""+opcion);
AgenteSimple ag1 = new AgenteSimple();
int percep = Integer.parseInt(jTextField1.getText());
ag1.recibePercepcion( percep);
int accion = ag1.escogeLaMejorAccion(ag1.percepcionActual);
String accionInterpretada = ag1.interpretaAccion(accion);
jTextField2.setText(accionInterpretada);
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new areaLimpiar().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration

}



1 comentario:

  1. Muy bueno, pero...
    Falta una explicación de por que lo programaste de esta manera(fundamento), si te basaste en algun algoritmo existente llamese redes neuronales, A*, algoritmos evolutivos y explicar lo que tu cosideras partes fundamentales de código.

    ResponderEliminar