Java Program for working Pacman game
Java Program/source code for working Pacman Game. This program is primarily based on the game pacman….. A running pacman eating piece according to light signals red ,green or yellow just run this java program to see live working pacman game ,
It consist of three (2 java files + 1 html file ) files :
1)PackManAndRedLight.java
2)RedLight.java
3)redlight+packman.html
Steps to run Java Program/source code for working Pacman Game :
Copy the code and save three files in same folder with names as mentioned above
compile two files at a time via running this command on cmd :
javac *.java
after that open redlight+packman.html in your browser
Done 🙂
so here is the source code for running pacman game
import java.awt.Color;
import java.awt.Graphics;
import java.applet.Applet;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JApplet;
import java.applet.AppletContext;
class mythread1 extends Thread
{
PackManAndRedLight pack;
char dir;
mythread1(PackManAndRedLight pack)
{
this.pack=pack;
pack.x=0;
pack.y=0;
pack.ang=315;
pack.stang=23;
dir='r';
start();
}
public void run()
{
try
{
for(;pack.y<=550;)
{
if(pack.rd.clr=='g')
{
pack.repaint();
if(dir=='r')
{
pack.x+=5;
pack.recy=pack.y;
pack.recx=pack.x-25;
pack.repaint();
if(pack.x>760)
{
pack.recx=740;
pack.repaint();
pack.showStatus(""+pack.rd.clr);
dir='d';
}
if(pack.x%50==45)
{
pack.ang=360;
pack.stang=270;
}
else
{
pack.stang=23;
pack.ang=315;
}
}
if((dir=='d'))
{
pack.recx=pack.x;
pack.recy=pack.y-25;
pack.y+=5;
if(pack.y%50==0)
{
if(pack.x>50)
{
pack.repaint();
pack.showStatus(""+pack.rd.clr);
dir='l';
}
else
dir='r';
}
if(pack.y%50==30)
{
pack.ang=360;
pack.stang=270;
}
else
{
pack.stang=293;
pack.ang=315;
}
}
if(dir=='l')
{
pack.recy=pack.y;
pack.recx=pack.x+25;
//pack.stang=203;
pack.x-=5;
if(pack.x<20)
dir='d';
if(pack.x%50==30)
{
pack.ang=360;
pack.stang=0;
}
else
{
pack.ang=315;
pack.stang=203;
}
}
Thread.sleep(50);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public class PackManAndRedLight extends JApplet implements MouseMotionListener
{
int x,y,stang,ang;
int recx,recy;
boolean flag;
mythread1 mth;
String str="";
RedLight rd;
@Override
public void init()
{
flag=false;
x=0;
y=0;
stang=23;
ang=315;
addMouseMotionListener(this);
AppletContext ct=getAppletContext();
rd=(RedLight)ct.getApplet("redlight");
System.out.println(""+rd);
}
public void start()
{
flag=false;
mth=new mythread1(this);
}
@Override
public void mouseDragged(MouseEvent e)
{
}
@Override
public void mouseMoved(MouseEvent e)
{
str=(" x = "+e.getX()+" y = "+e.getY());
}
@Override
public void paint(Graphics g)
{
if(flag==false)
{
flag=true;
int x1=75,y1=25;
for(;y1<600;)
{
g.setColor(Color.red);
g.fillOval(x1+10, y1-5, 10, 10);
if(x1>750)
{
x1=-25;
y1+=50;
}
x1+=50;
}
}
g.setColor(Color.white);
g.fillRect(recx, recy, 50,50);
g.setColor(Color.yellow);
g.fillArc(x, y, 50,50, stang, ang);showStatus(str+rd.clr);
}
}
RedLight.java
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
class red_thread extends Thread
{
char lclr;
RedLight rl;
red_thread(RedLight rl)
{
this.rl=rl;
start();
}
@Override
public void run()
{
while(true)
{
try
{
if(rl.clr=='r')
{
Thread.sleep(10000);
lclr='r';
rl.clr='y';
}
else if(rl.clr=='g')
{
Thread.sleep(10000);
lclr='g';
rl.clr='y';
}
else if(rl.clr=='y')
{
Thread.sleep(30000);
if(lclr=='r')
rl.clr='g';
else
rl.clr='r';
}
rl.repaint();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
public class RedLight extends Applet
{
int clr='r';
public void init()
{
new red_thread(this);
}
@Override
public void paint(Graphics g)
{
g.fillRect(40,40,120,360);
g.setColor(Color.DARK_GRAY);
g.fillOval(50,50,100,100);
g.fillOval(50,170,100,100);
g.fillOval(50,290,100,100);
if(clr=='r')
{
g.setColor(Color.red);
g.fillOval(50,50,100,100);
}
else if(clr=='y')
{
g.setColor(Color.orange);
g.fillOval(50,170,100,100);
}
else
{
g.setColor(Color.green);
g.fillOval(50,290,100,100);
}
}
}
redlight+packman.html
Output Screenshots of working Pacman game


