import greenfoot.*;
import java.awt.Graphics2D;
import java.awt.Color;
public class Polis extends Actor
{
private int x;
private Actor duvar;
public Polis()
{
GreenfootImage katman1 = new GreenfootImage(10,10);
GreenfootImage katman2 = new GreenfootImage("polis.png");
katman2.drawImage(katman1,katman1.getWidth() / 2, katman1.getHeight() / 2);
GreenfootImage katman3 = new GreenfootImage(100,100);
Graphics2D oval = katman3.getAwtImage().createGraphics();
oval.setColor(Color.BLUE);
oval.drawOval(0,0,100,100);
katman3.drawImage(katman2,30,30);
setImage(katman3);
}
private void rastgele()
{
if(Greenfoot.getRandomNumber(150) <= 5)
{
turn(90);
}
if(getX() >= getWorld().getWidth() - 1 || getX() <= 1 || getY()
>= getWorld().getHeight() - 1 || getY() <= 1)
{
turn(180);
}
if(duvar != null)
{
x++;
if(x == 1)
{
turn(180);
}
}
else
{
x = 0;
}
}
private double hipotenus()
{
Bolum1 bolum1 = (Bolum1) getWorld();
Ninja ninja = bolum1.getNinja();
int x = Math.abs(getX() - ninja.getX());
int y = Math.abs(getY() - ninja.getY());
double x_dogrusu = (double)x;
double y_dogrusu = (double)y;
return Math.hypot(x_dogrusu,y_dogrusu);
}
private int mesafe()
{
Bolum1 bolum1 = (Bolum1) getWorld();
Ninja ninja = bolum1.getNinja();
if(ninja.getY() != getY() && ninja.getX() != getX())
{
double hipot = hipotenus();
int uzaklik = (int) Math.sqrt(hipot);
return uzaklik;
}
else if(ninja.getY() == getY())
{
return Math.abs(ninja.getX() - getX());
}
else
{
return Math.abs(ninja.getY() - getY());
}
}
public void act()
{
GreenfootSound ses = new GreenfootSound("bip.wav");
Bolum1 bolum1 = (Bolum1) getWorld();
Ninja ninja = bolum1.getNinja();
Katman katman = bolum1.getKatman();
duvar = getOneIntersectingObject(Duvar.class);
move(2);
if(mesafe() <= 10 && duvar == null)
{
if(duvar != null)
{
x++;
if(x == 1)
{
turn(180);
}
}
else
{
x = 0;
}
turnTowards(ninja.getX(),ninja.getY());
ses.setVolume(60);
ses.play();
katman.setAktif(true);
}
else
{
rastgele();
katman.setAktif(false);
}
}
}
9 Aralık 2013 Pazartesi
Basit Yapay Zeka
Yapmaya çalıştığımız oyun için hazırladığım yapay zeka örneği. Ninja objesi ile arasındaki farkı hesaplayıp farka göre işlemler yapan bir yapay zeka.
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder