Computer Science Canada

pac man weighted AI

Author:  viperfan7 [ Tue Mar 25, 2008 11:09 am ]
Post subject:  pac man weighted AI

I have finaly made the AI for my pac man game, open for sugestions, the player base/ collision detection will be up shortly, but in the help section sence its so slow, open for comments/ crticizim, hope someone can use it, o also, the AI wont always move towards you, its set up so that it is more likely then not to move towards you.


Turing:

% setscreen ("graphics:max;max,offscreenonly,nocursor")
setscreen("text")
var directionx, directiony : int
%var leftdetecty1, leftdetecty2, leftdetecty3 : int
%var rightdetecty1, rightdetecty2, rightdetecty3 : int
%var updetectx1, updetectx2, updetectx3 : int
%var downdetectx1, downdetectx2, downdetectx3 : int
var ghostx, ghosty, ghostWH : int
%var moveghost : int := 2
var comp1dirx, comp1diry : string
var pacx, pacy : int
%const wall : int := 10
%const wallcolour : int := 1
%ghostWH := 14



proc AI1
    if pacx > ghostx then
        directionx := Rand.Int(1,4)
            if directionx > 3 then
                comp1dirx := "down"
            else
                comp1dirx := "up"
            end if
    elsif pacx < ghostx then
        directionx := Rand.Int(1,4)
            if directionx > 1 then
                comp1dirx := "down"
            else
                comp1dirx := "up"
            end if
    elsif pacx = ghostx then
        directionx := Rand.Int(1,4)
            if directionx > 2 then
                comp1dirx := "down"
            else
                comp1dirx := "up"
            end if
    end if       
           
    if pacy > ghosty then
        directiony := Rand.Int(1,4)
            if directiony > 3 then
                comp1diry := "left"
            else
                comp1diry := "right"
            end if
    elsif pacy < ghosty then
        directiony := Rand.Int(1,4)
            if directiony > 1 then
                comp1diry := "left"
            else
                comp1diry := "right"
            end if
    elsif pacy = ghosty then
        directionx := Rand.Int(1,4)
            if directiony > 2 then
                comp1diry := "left"
            else
                comp1diry := "right"
            end if
    end if
end AI1


for i : 0..5
ghostx := Rand.Int(0,maxx)
ghosty := Rand.Int(0,maxy)
pacx := Rand.Int(0,maxx)
pacy := Rand.Int(0,maxy)
 
put ghostx
put ghosty
put ""
put pacx
put pacy
put ""
AI1

put comp1dirx
put comp1diry
put ""
put "-----------"
put ""
end for

Author:  A.J [ Tue Mar 25, 2008 3:54 pm ]
Post subject:  Re: pac man weighted AI

It's not bad....but if you want to make your pacman AI extremely good, I suggest you look up A* pathfinding Wink
Good Job though!

Author:  viperfan7 [ Wed Mar 26, 2008 9:53 am ]
Post subject:  RE:pac man weighted AI

I already have a colision detection system for it, but am probaly going to go with pathfinding instead, just that whatdotcolour, being used as many times as it would be, would lag


: