viernes, 25 de mayo de 2012
K means
Del codigo resalta la parte en donde realiza los calculos.
Primero checa la distancia entre dos centroides y despues entre los menores de esa comparacion previa para ver el punto mas cercano.
Despues se le agrega el grupo y se recalculan los centroides.
for(int IT = 0; IT < ITERACIONES; IT++){
System.out.println("");
for(int i = 0; i < punto.length; i++){
aux1 = (distancia.euclidea( punto[i], centroide[0]) < distancia.euclidea(punto[i], centroide[1])) ? 0 : 1;
aux2 = (distancia.euclidea( punto[i], centroide[2]) < distancia.euclidea(punto[i], centroide[3])) ? 2 : 3;
punto[i].setGrupo((distancia.euclidea( punto[i], centroide[aux1]) < distancia.euclidea(punto[i], centroide[aux2])) ?
(aux1+1):(aux2+1) );
System.out.println("Punto["+(i+1)+"] En grupo: "+punto[i].getGrupo());
}
for(int i = 0; i < centroide.length; i++){
centroide[i] = distancia.recCentroide(punto,centroide[i],(i+1));
}
}
jueves, 24 de mayo de 2012
Entregable4
View more presentations from mandymota.
CODIGO
La matriz de los jugadores
private int nValores[][]={
{-150,0,5}, // Jugador 1
{-80,-45,3}, // Jugador 2
{-100,0,3}, // Jugador 3
{-80,45,3}, // Jugador 4
{-50,0,10}, // Jugador 5
{0,-55,3}, // Jugador 6
{0,55,3}, // Jugador 7
{80,-60,7}, // Jugador 8
{80,60,7}, // Jugador 9
{65,0,7}, // Jugador 10
{100,15,6} // Jugador 11
};
Parte defensiva
if (bola.getX() < 10)
{
for (int n=5;n<9 && n!=nJug;n++)
comandos.add(new ComandoIrA (n,(nValores[n][0])-60, nValores[n][1]));
}
if(bola.getX() < -60 && bola.getY() >-70 && bola.getY() <70)
{
int contrario1=sj.getContrarioMasCerca(1);
int contrario2=sj.getContrarioMasCerca(3);
if (contrario1!=contrario2 && sj.getMasCercanoDeBola()!=1 && sj.getMasCercanoDeBola()!=3){
comandos.add(new ComandoIrA (1,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
comandos.add(new ComandoIrA (3,contrarios[contrario2].getX()+10,contrarios[contrario2].getY()));
}
if (contrario1==contrario2)
{
if (contrarios[contrario1].getY()>=0) {
comandos.add(new ComandoIrA (3,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
}
else {
comandos.add(new ComandoIrA (1,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
}
}
}
Aquí hay varias clases que el sistema ya tiene por defecto como la de comandos.
ATAQUE
if(bola.getX() >= 10) {
for (int n=1;n<5 && n!=nJug;n++){
comandos.add(new ComandoIrA (n,(nValores[n][0])+40, nValores[n][1])) ;
}
}
if(bola.getX() >= 85)
{
comandos.add(new ComandoIrA (1,15,-70)) ;
comandos.add(new ComandoIrA (2,0,0)) ;
comandos.add(new ComandoIrA (3,15,70)) ;
comandos.add(new ComandoIrA (4,45,0)) ;
comandos.add(new ComandoIrA (5,55,-55)) ;
comandos.add(new ComandoIrA (6,55,55));
for (int j=7;j<11;j++){
if (nJug!=j) {
int contrario4=sj.getContrarioMasCerca(j);
if ((( contrarios[contrario4].getX() )-( misJugadores[j].getX() )<10) && ( ( contrarios[contrario4].getX() )-( misJugadores[j].getX() )>=0)){
comandos.add(new ComandoIrA (j, (contrarios[contrario4].getX())+5, misJugadores[j].getY() ));
}
}
}
int contrario3=sj.getContrarioMasCerca(4);
comandos.add(new ComandoIrA (4,contrarios[contrario3].getX()+5, nValores[4][1])) ;
}
Aquí el sj también ya esta en una clase del sistema, la cual significa situación del jugador. La de bola y comandoIrA también están en clase del sistema.
estas serian las partes mas importantes del proyecto en si.
CODIGO
La matriz de los jugadores
private int nValores[][]={
{-150,0,5}, // Jugador 1
{-80,-45,3}, // Jugador 2
{-100,0,3}, // Jugador 3
{-80,45,3}, // Jugador 4
{-50,0,10}, // Jugador 5
{0,-55,3}, // Jugador 6
{0,55,3}, // Jugador 7
{80,-60,7}, // Jugador 8
{80,60,7}, // Jugador 9
{65,0,7}, // Jugador 10
{100,15,6} // Jugador 11
};
Parte defensiva
if (bola.getX() < 10)
{
for (int n=5;n<9 && n!=nJug;n++)
comandos.add(new ComandoIrA (n,(nValores[n][0])-60, nValores[n][1]));
}
if(bola.getX() < -60 && bola.getY() >-70 && bola.getY() <70)
{
int contrario1=sj.getContrarioMasCerca(1);
int contrario2=sj.getContrarioMasCerca(3);
if (contrario1!=contrario2 && sj.getMasCercanoDeBola()!=1 && sj.getMasCercanoDeBola()!=3){
comandos.add(new ComandoIrA (1,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
comandos.add(new ComandoIrA (3,contrarios[contrario2].getX()+10,contrarios[contrario2].getY()));
}
if (contrario1==contrario2)
{
if (contrarios[contrario1].getY()>=0) {
comandos.add(new ComandoIrA (3,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
}
else {
comandos.add(new ComandoIrA (1,contrarios[contrario1].getX()+10,contrarios[contrario1].getY()));
}
}
}
Aquí hay varias clases que el sistema ya tiene por defecto como la de comandos.
ATAQUE
if(bola.getX() >= 10) {
for (int n=1;n<5 && n!=nJug;n++){
comandos.add(new ComandoIrA (n,(nValores[n][0])+40, nValores[n][1])) ;
}
}
if(bola.getX() >= 85)
{
comandos.add(new ComandoIrA (1,15,-70)) ;
comandos.add(new ComandoIrA (2,0,0)) ;
comandos.add(new ComandoIrA (3,15,70)) ;
comandos.add(new ComandoIrA (4,45,0)) ;
comandos.add(new ComandoIrA (5,55,-55)) ;
comandos.add(new ComandoIrA (6,55,55));
for (int j=7;j<11;j++){
if (nJug!=j) {
int contrario4=sj.getContrarioMasCerca(j);
if ((( contrarios[contrario4].getX() )-( misJugadores[j].getX() )<10) && ( ( contrarios[contrario4].getX() )-( misJugadores[j].getX() )>=0)){
comandos.add(new ComandoIrA (j, (contrarios[contrario4].getX())+5, misJugadores[j].getY() ));
}
}
}
int contrario3=sj.getContrarioMasCerca(4);
comandos.add(new ComandoIrA (4,contrarios[contrario3].getX()+5, nValores[4][1])) ;
}
Aquí el sj también ya esta en una clase del sistema, la cual significa situación del jugador. La de bola y comandoIrA también están en clase del sistema.
estas serian las partes mas importantes del proyecto en si.
Suscribirse a:
Entradas (Atom)