this is my program here, its not v good as i am just a beginner with
java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Froggame extends Applet implements MouseListener,
MouseMotionListener {
Image greenkermit;
Image pinkkermit;
Image toadstool;
Image lilypad;
private Point kermit1;
private Point kermit2;
private Point kermit3;
private Point kermit4;
private Point mouse;
private int select;
private Image dbImage;
private Graphics dbg;
int my;
int mx;
private boolean layOut = false;
private Button restart;
private Button solve;
private Font font;
private Font font1;
private int winner;
private int[] frogs = {2, 0, 2, 0, 0, 1, 1};
public void init() {
this.addMouseMotionListener(this);
this.addMouseListener(this);
this.setLayout(null);
restart = new Button ("Reset Frogs");
add(restart);
solve = new Button ("Game autosolve");
add(solve);
greenkermit = getImage(getCodeBase(), "kermitfeet.png");
pinkkermit = getImage(getCodeBase(), "kermitfeet1.png");
toadstool = getImage(getCodeBase(), "toadstool.png");
lilypad = getImage(getCodeBase(), "lilypad.png");
font = new Font ("Courier", Font.BOLD, 18);
font1 = new Font ("Courier", Font.ITALIC, 12);
select = 0;
kermit1 = new Point(85,25);
kermit2 = new Point(285,25);
kermit3 = new Point(85,230);
kermit4 = new Point(285, 230);
mouse = new Point();
}
//double buffer that will write image offscreen then back on, stops
flickering
http://teachers.henrico.k12.va.us/deeprun/lawson_g/oracle2/buffering.htm
public void update (Graphics g) {
if (dbImage == null) {
dbImage = createImage (this.getSize().width,
this.getSize().height);
dbg = dbImage.getGraphics ();
}
//clear screen in background
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
//draw elements in background
dbg.setColor (getForeground());
paint (dbg);
// draw image on the screen
g.drawImage (dbImage, 0, 0, this);
}
public void paint(Graphics g) {
g.setFont(font);
g.drawString("Four Frogs Game", 125, 20);
g.drawImage(lilypad, 80, 40, 250, 250, this);
g.setFont(font1);
g.setColor(Color.red);
g.drawString("Use your mouse to drag a frog to a toadstool", 70,
320);
g.setColor(Color.black);
g.drawLine(100, 70, 200, 270);
g.drawLine(200, 270, 300, 70);
g.drawLine(300, 70, 100, 170);
g.drawLine(100, 170, 300, 270);
g.drawLine(300, 270, 200, 70);
g.drawLine(200, 70, 100, 270);
g.drawLine(100, 270, 300, 170);
g.drawLine(300, 170, 100, 70);
g.setFont(font);
g.setColor(Color.white);
g.drawString("1", 95, 95);
g.drawString("2", 195, 95);
g.drawString("3", 295, 95);
g.drawString("4", 95, 195);
g.drawString("5", 295, 195);
g.drawString("6", 95, 300);
g.drawString("7", 195, 300);
g.drawString("8", 295, 300);
g.drawImage(toadstool, 85, 45, 35, 35, this);
g.drawImage(toadstool, 185, 45, 35, 35, this);
g.drawImage(toadstool, 285, 45, 35, 35, this);
g.drawImage(toadstool, 85, 145, 35, 35, this);
g.drawImage(toadstool, 285, 145, 35, 35, this);
g.drawImage(toadstool, 85, 250, 35, 35, this);
g.drawImage(toadstool, 185, 250, 35, 35, this);
g.drawImage(toadstool, 285, 250, 35, 35, this);
g.drawImage(greenkermit, kermit1.x, kermit1.y, 35, 35, this);
g.drawImage(greenkermit, kermit2.x, kermit2.y, 35, 35, this);
g.drawImage(pinkkermit, kermit3.x, kermit3.y, 35, 35, this);
g.drawImage(pinkkermit, kermit4.x, kermit4.y, 35, 35, this);
if (winner ==1) {
g.drawString("Well done you have solved the puzzle", 100, 330);
}
if(!this.layOut) {
this.restart.setLocation(140, 350);
this.restart.setSize(90, 20);
this.solve.setLocation(240, 350);
this.solve.setSize(90, 20);
this.layOut = true;
}
}
public boolean action(Event e, Object arg) {
if (e.target == restart)
resetGame();
if (e.target == solve) {
solveGame();
}
return true;
}
public void resetGame() {
kermit1.x = 85;
kermit1.y = 25;
kermit2.x = 285;
kermit2.y = 25;
kermit3.x = 85;
kermit3.y = 230;
kermit4.x = 285;
kermit4.y = 230;
repaint();
}
public void solveGame () {
kermit1.x = 185;
kermit1.y = 125;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit2.x = 185;
kermit2.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit2.x = 85;
kermit2.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit4.x = 85;
kermit4.y = 125;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit4.x = 285;
kermit4.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit4.x = 185;
kermit4.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit3.x = 185;
kermit3.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
repaint();
kermit3.x = 285;
kermit3.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit3.x = 85;
kermit3.y = 125;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit3.x = 285;
kermit3.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit1.x = 85;
kermit1.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit1.x = 185;
kermit1.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit1.x = 285;
kermit1.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit2.x = 185;
kermit2.y = 125;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit2.x = 85;
kermit2.y = 230;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
kermit4.x = 85;
kermit4.y = 25;
repaint();
try {
Thread.sleep(1000);
}
catch(InterruptedException err) {}
}
public void mouseDragged(MouseEvent e) {
mouse = e.getPoint();
if (select == 1) kermit1 = mouse;
if (select == 2) kermit2 = mouse;
if (select == 3) kermit3 = mouse;
if (select == 4) kermit4 = mouse;
repaint();
}
// required for the interface
public void mouseMoved(MouseEvent e) {}
//select a counter using the mouse
public void mousePressed(MouseEvent e) {
mx = e.getX();
my = e.getY();
if (kermit1.x < mx && mx < kermit1.x + 30 &&
kermit1.y < my && my < kermit1.y + 30) {
select = 1;
}
else
if (kermit2.x < mx && mx < kermit2.x + 30 &&
kermit2.y < my && my < kermit2.y + 30) {
select = 2;
}
else
if (kermit3.x < mx && mx < kermit3.x + 30 &&
kermit3.y < my && my < kermit3.y + 30) {
select = 3;
}
else
if (kermit4.x < mx && mx < kermit4.x + 30 &&
kermit4.y < my && my < kermit4.y + 30) {
select = 4;
}
}
// required for the interface
public void mouseClicked(MouseEvent event){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent event){
}
public void mouseExited(MouseEvent event){
}
}