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