import java.awt.*; import java.applet.Applet; import java.net.*; public class IQPuzzle2 extends Applet { Frame f; MyWindow winnerwin; Completed_puzzle2 completed_puzzle2; Uncompleted_puzzle2 uncompleted_puzzle2; TextField statusline; TextField timeslot; String s; Button restartbutton; Choice newpuzzlebutton; Button showwinnersbutton; Button infobutton; Panel canvasPanel; URL theURL; public void init() { this.setBackground(Color.gray); setLayout(new FlowLayout()); Panel titlePanel = new Panel(); infobutton = new Button("Info"); titlePanel.add (infobutton); newpuzzlebutton = new Choice(); newpuzzlebutton.addItem("Puzzle1"); newpuzzlebutton.addItem("Puzzle2"); newpuzzlebutton.addItem("Puzzle3"); titlePanel.add (newpuzzlebutton); showwinnersbutton = (new Button("Show Winners")); titlePanel.add (showwinnersbutton); restartbutton = (new Button("ReStart")); titlePanel.add (restartbutton); setLayout(new FlowLayout()); canvasPanel = new Panel(); completed_puzzle2 = new Completed_puzzle2(); completed_puzzle2.setBackground(Color.yellow); uncompleted_puzzle2 = new Uncompleted_puzzle2(this,s); uncompleted_puzzle2.setBackground(Color.yellow); canvasPanel.add (completed_puzzle2); canvasPanel.add (uncompleted_puzzle2); setLayout(new FlowLayout()); Panel footerPanel = new Panel(); footerPanel.add(new Label("Status", Label.LEFT)); statusline = new TextField(s,40); timeslot =new TextField(" 00:00 "); statusline.setEditable(false); timeslot.setEditable(false); footerPanel.add(statusline); footerPanel.add(timeslot); setLayout(new BorderLayout()); this.add("North", titlePanel); this.add("Center", canvasPanel); this.add("South", footerPanel); } public boolean action(Event evt, Object arg) { if (evt.target == infobutton) { System.out.print(" Start button pressed\n"); InfoDialog d = new InfoDialog(f, "Puzzle Designers", "Dave Shaffer & Chris Ly\n" + "Millersville University\n" + "CopyRight (c)1996"); d.show(); return true; } if (evt.target == showwinnersbutton) { System.out.print(" show winners button pressed\n"); winnerwin = new MyWindow("Frame"); winnerwin.show(); return true; } if (evt.target == restartbutton) { System.out.print(" restart button pressed\n"); uncompleted_puzzle2.restart(); return true; } if (evt.target == newpuzzlebutton) { System.out.print(" new puzzle button pressed\n"); if (newpuzzlebutton.getSelectedItem() == "Puzzle2") { return true; } if (newpuzzlebutton.getSelectedItem() == "Puzzle1") { String urladdress2 = "http://cs.millersv.edu/~dashaffe/java_progs/assign2/IQPuzzle1.html"; try {theURL = new URL(urladdress2);} catch (MalformedURLException e) {} getAppletContext().showDocument(theURL); return true; } if (newpuzzlebutton.getSelectedItem() == "Puzzle3") { String urladdress1 = "http://cs.millersv.edu/~dashaffe/java_progs/assign2/IQPuzzle3.html"; try {theURL = new URL(urladdress1);} catch (MalformedURLException e) {} getAppletContext().showDocument(theURL); return true; } } return true; } // public void start(){ // //Create a window with a menu at the top. // window = new MyWindow("Dave's Little App"); // window.pack(); // Rectangle bounds = bounds(); // Rectangle wbounds = window.bounds(); // //window.move(bounds.x + (bounds.width - wbounds.width)/2, // //bounds.y + (bounds.height - wbounds.height)/2); // window.move(bounds.x + bounds.width + 15, bounds.y); // window.show(); // } } //class MyWindow extends Frame { // final String FILEDIALOGMENUITEM = "File dialog..."; // MyWindow(String title) { // super("Dave's Little App"); // MenuBar mb = new MenuBar(); // Menu m = new Menu("Menu"); // m.add(new MenuItem("Cars")); // m.add(new CheckboxMenuItem("Women")); // m.add(new MenuItem("More Women")); // m.add(new MenuItem("-")); // m.add(new MenuItem(FILEDIALOGMENUITEM)); // mb.add(m); // setMenuBar(mb); // MenuBar mb2 = new MenuBar(); // Menu m2 = new Menu("People"); // m2.add(new MenuItem("Chris")); // m2.add(new CheckboxMenuItem("Dave")); // m2.add(new MenuItem("Beavis")); // m2.add(new MenuItem("Butt-Head")); // m2.add(new MenuItem("Nikki")); // mb2.add(m2); // setMenuBar(mb2); // //Put a list in the window. // List l = new List(3, false); // l.addItem("List item 1"); // l.addItem("List item 2"); // l.addItem("List item 3"); // l.addItem("List item 4"); // l.addItem("List item 5"); // l.addItem("List item 6"); // l.addItem("List item 7"); // add("Center", l); // } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class Completed_puzzle2 extends Canvas { public void paint(Graphics g) { int w = size().width; int h = size().height; g.drawRect(0, 0, w - 1, h - 1); g.drawString("Completed Puzzle", (w - g.getFontMetrics().stringWidth("Canvas"))/2, 10); g.setFont(new Font("Helvetica", Font.PLAIN, 32)); g.fillRect(25,30,4,4); g.fillRect(50,30,4,4); g.fillRect(100,30,4,4); g.fillRect(150,30,4,4); g.fillRect(175,30,4,4); g.fillRect(75,65,4,4); g.fillRect(125,65,4,4); g.fillRect(50,100,4,4); g.fillRect(150,100,4,4); g.fillRect(75,135,4,4); g.fillRect(125,135,4,4); g.fillRect(25,170,4,4); g.fillRect(50,170,4,4); g.fillRect(100,170,4,4); g.fillRect(150,170,4,4); g.fillRect(175,170,4,4); g.drawLine(27,32,27,170); g.drawLine(27,32,52,32); g.drawLine(52,32,102,32); g.drawLine(52,32,52,102); g.drawLine(52,32,77,67); g.drawLine(102,32,152,32); g.drawLine(102,32,77,67); g.drawLine(102,32,127,67); g.drawLine(152,32,177,32); g.drawLine(152,32,127,67); g.drawLine(152,32,152,102); g.drawLine(177,32,177,172); g.drawLine(77,67,127,67); g.drawLine(77,67,52,102); g.drawLine(77,67,77,137); g.drawLine(127,67,152,102); g.drawLine(127,67,127,137); g.drawLine(52,102,77,137); g.drawLine(52,102,52,172); g.drawLine(77,137,127,137); g.drawLine(77,137,52,172); g.drawLine(77,137,102,172); g.drawLine(127,137,152,100); g.drawLine(127,137,102,172); g.drawLine(127,137,152,172); g.drawLine(152,102,152,172); g.drawLine(27,172,52,172); g.drawLine(52,172,102,172); g.drawLine(102,172,152,172); g.drawLine(152,172,177,172); g.drawLine(77,67,127,137); g.drawLine(127,67,77,137); } public Dimension minimumSize() { return new Dimension(200,200); } public Dimension preferredSize() { return minimumSize(); } } class Uncompleted_puzzle2 extends Canvas { final Point A = new Point(27,32); final Point B = new Point(52,32); final Point C = new Point(102,32); final Point D = new Point(152,32); final Point E = new Point(177,32); final Point F = new Point(77,67); final Point G = new Point(127,67); final Point H = new Point(52,102); final Point I = new Point(152,102); final Point J = new Point(77,137); final Point K = new Point(127,137); final Point L = new Point(27,172); final Point M = new Point(52,172); final Point N = new Point(102,172); final Point O = new Point(152,172); final Point P = new Point(177,172); boolean Edge_A_B = false; boolean Edge_A_L = false; boolean Edge_B_C = false; boolean Edge_B_H = false; boolean Edge_B_F = false; boolean Edge_C_D = false; boolean Edge_C_F = false; boolean Edge_C_G = false; boolean Edge_D_E = false; boolean Edge_D_G = false; boolean Edge_D_I = false; boolean Edge_E_P = false; boolean Edge_F_H = false; boolean Edge_F_J = false; boolean Edge_F_K = false; boolean Edge_F_G = false; boolean Edge_G_J = false; boolean Edge_G_K = false; boolean Edge_G_I = false; boolean Edge_H_J = false; boolean Edge_H_M = false; boolean Edge_I_K = false; boolean Edge_I_O = false; boolean Edge_J_K = false; boolean Edge_J_M = false; boolean Edge_J_N = false; boolean Edge_K_N = false; boolean Edge_K_O = false; boolean Edge_L_M = false; boolean Edge_M_N = false; boolean Edge_N_O = false; boolean Edge_O_P = false; final int MAXLINES = 32; Point starts[] = new Point[MAXLINES]; Point ends[] = new Point[MAXLINES]; Point anchor = new Point(-1,-1); Point currentpoint; int currline = 0; Circle2 c; IQPuzzle2 outerparent; Uncompleted_puzzle2(IQPuzzle2 target, String statmessage) { this.outerparent = target; } public void paint(Graphics g) { int w = size().width; int h = size().height; g.drawRect(0, 0, w - 1, h - 1); g.drawString("Solve Puzzle", (w - g.getFontMetrics().stringWidth("Canvas"))/2, 10); g.setFont(new Font("Helvetica", Font.PLAIN, 32)); g.fillRect(25,30,4,4); g.fillRect(50,30,4,4); g.fillRect(100,30,4,4); g.fillRect(150,30,4,4); g.fillRect(175,30,4,4); g.fillRect(75,65,4,4); g.fillRect(125,65,4,4); g.fillRect(50,100,4,4); g.fillRect(150,100,4,4); g.fillRect(75,135,4,4); g.fillRect(125,135,4,4); g.fillRect(25,170,4,4); g.fillRect(50,170,4,4); g.fillRect(100,170,4,4); g.fillRect(150,170,4,4); g.fillRect(175,170,4,4); //draw existing lines for (int i= 0; i < currline; i++) { g.drawLine(starts[i].x, starts[i].y, ends[i].x, ends[i].y); } //draw current line if (currentpoint != null) g.drawLine(anchor.x,anchor.y ,currentpoint.x ,currentpoint.y); } public void restart() { Edge_A_B = false; Edge_A_L = false; Edge_B_C = false; Edge_B_H = false; Edge_B_F = false; Edge_C_D = false; Edge_C_F = false; Edge_C_G = false; Edge_D_E = false; Edge_D_G = false; Edge_D_I = false; Edge_E_P = false; Edge_F_H = false; Edge_F_J = false; Edge_F_K = false; Edge_F_G = false; Edge_G_J = false; Edge_G_K = false; Edge_G_I = false; Edge_H_J = false; Edge_H_M = false; Edge_I_K = false; Edge_I_O = false; Edge_J_K = false; Edge_J_M = false; Edge_J_N = false; Edge_K_N = false; Edge_K_O = false; Edge_L_M = false; Edge_M_N = false; Edge_N_O = false; Edge_O_P = false; currline = 0; anchor.x = -1; anchor.y = -1; currentpoint = null; String s; s = " "; showMessage(s); repaint(); } public boolean mouseUp(Event evt, int x, int y) { c = new Circle2(); int userpoint = c.check((double)x,(double)y); if (userpoint > 0) { if (userpoint == 1) { x = 27; y = 32; } else if (userpoint == 2) { x = 52; y = 32; } else if (userpoint == 3) { x = 102; y = 32; } else if (userpoint == 4) { x = 152; y = 32; } else if (userpoint == 5) { x = 177; y = 32; } else if (userpoint == 6) { x = 77; y = 67; } else if (userpoint == 7) { x = 127; y = 67; } else if (userpoint == 8) { x = 52; y = 102; } else if (userpoint == 9) { x = 152; y = 102; } else if (userpoint == 10) { x = 77; y = 137; } else if (userpoint == 11) { x = 127; y = 137; } else if (userpoint == 12) { x = 27; y = 172; } else if (userpoint == 13) { x = 52; y = 172; } else if (userpoint == 14) { x = 102; y = 172; } else if (userpoint == 15) { x = 152; y = 172; } else if (userpoint == 16) { x = 177; y = 172; } if (anchor.x == -1) { // first point anchor.x = x; anchor.y = y; String s; s = " "; showMessage(s); return true; } else { currentpoint = new Point(x,y); if (check_line(anchor,currentpoint)) { String s; s = " "; showMessage(s); addline(x,y); return true; } else { currentpoint = null; String s; s = "Cannot draw that line"; showMessage(s); System.out.print(" bad line\n"); return true; } } } else { String s; s = "Click on a valid point"; showMessage(s); System.out.print(" bad point\n"); return true; } } boolean check_line (Point anchor, Point end) { if ((anchor.x == A.x) && (anchor.y == A.y)) { if ((end.x == B.x)&&(end.y == B.y)) { if (Edge_A_B == false) { Edge_A_B = true; return true; } else { return false; } } if ((end.x==L.x)&&(end.y==L.y)) { if (Edge_A_L == false) { Edge_A_L = true; return true; } else { return false; } } } // end outermost if else if ((anchor.x == B.x) && (anchor.y == B.y)) { if ((end.x == A.x)&&(end.y == A.y)) { if (Edge_A_B == false) { Edge_A_B = true; return true; } else { return false; } } if ((end.x==C.x)&&(end.y==C.y)) { if (Edge_B_C == false) { Edge_B_C = true; return true; } else { return false; } } if ((end.x == H.x)&&(end.y == H.y)) { if (Edge_B_H == false) { Edge_B_H = true; return true; } else { return false; } } if ((end.x==F.x)&&(end.y==F.y)) { if (Edge_B_F == false) { Edge_B_F = true; return true; } else { return false; } } } // end else if else if ((anchor.x == C.x) && (anchor.y == C.y)) { if ((end.x == B.x)&&(end.y == B.y)) { if (Edge_B_C == false) { Edge_B_C = true; return true; } else { return false; } } if ((end.x==D.x)&&(end.y==D.y)) { if (Edge_C_D == false) { Edge_C_D = true; return true; } else { return false; } } if ((end.x == F.x)&&(end.y == F.y)) { if (Edge_C_F == false) { Edge_C_F = true; return true; } else { return false; } } if ((end.x==G.x)&&(end.y==G.y)) { if (Edge_C_G == false) { Edge_C_G = true; return true; } else { return false; } } } // end else if else if ((anchor.x == D.x) && (anchor.y == D.y)) { if ((end.x == C.x)&&(end.y == C.y)) { if (Edge_C_D == false) { Edge_C_D = true; return true; } else { return false; } } if ((end.x==E.x)&&(end.y==E.y)) { if (Edge_D_E == false) { Edge_D_E = true; return true; } else { return false; } } if ((end.x == G.x)&&(end.y == G.y)) { if (Edge_D_G == false) { Edge_D_G = true; return true; } else { return false; } } if ((end.x==I.x)&&(end.y==I.y)) { if (Edge_D_I == false) { Edge_D_I = true; return true; } else { return false; } } } // end else if else if ((anchor.x == E.x) && (anchor.y == E.y)) { if ((end.x==D.x)&&(end.y==D.y)) { if (Edge_D_E == false) { Edge_D_E = true; return true; } else { return false; } } if ((end.x == P.x)&&(end.y == P.y)) { if (Edge_E_P == false) { Edge_E_P = true; return true; } else { return false; } } } // end else if else if ((anchor.x == F.x) && (anchor.y == F.y)) { if ((end.x==B.x)&&(end.y==B.y)) { if (Edge_B_F == false) { Edge_B_F = true; return true; } else { return false; } } if ((end.x == C.x)&&(end.y == C.y)) { if (Edge_C_F == false) { Edge_C_F = true; return true; } else { return false; } } if ((end.x==H.x)&&(end.y==H.y)) { if (Edge_F_H == false) { Edge_F_H = true; return true; } else { return false; } } if ((end.x == J.x)&&(end.y == J.y)) { if (Edge_F_J == false) { Edge_F_J = true; return true; } else { return false; } } if ((end.x==K.x)&&(end.y==K.y)) { if (Edge_F_K == false) { Edge_F_K = true; return true; } else { return false; } } if ((end.x == G.x)&&(end.y == G.y)) { if (Edge_F_G == false) { Edge_F_G = true; return true; } else { return false; } } } else if ((anchor.x == G.x) && (anchor.y == G.y)) { if ((end.x==C.x)&&(end.y==C.y)) { if (Edge_C_G == false) { Edge_C_G = true; return true; } else { return false; } } if ((end.x == D.x)&&(end.y == D.y)) { if (Edge_D_G == false) { Edge_D_G = true; return true; } else { return false; } } if ((end.x==F.x)&&(end.y==F.y)) { if (Edge_F_G == false) { Edge_F_G = true; return true; } else { return false; } } if ((end.x == I.x)&&(end.y == I.y)) { if (Edge_G_I == false) { Edge_G_I = true; return true; } else { return false; } } if ((end.x == J.x)&&(end.y == J.y)) { if (Edge_G_J == false) { Edge_G_J = true; return true; } else { return false; } } if ((end.x == K.x)&&(end.y == K.y)) { if (Edge_G_K == false) { Edge_G_K = true; return true; } else { return false; } } } else if ((anchor.x == H.x) && (anchor.y == H.y)) { if ((end.x == B.x)&&(end.y == B.y)) { if (Edge_B_H == false) { Edge_B_H = true; return true; } else { return false; } } if ((end.x==F.x)&&(end.y==F.y)) { if (Edge_F_H == false) { Edge_F_H = true; return true; } else { return false; } } if ((end.x == J.x)&&(end.y == J.y)) { if (Edge_H_J == false) { Edge_H_J = true; return true; } else { return false; } } if ((end.x==M.x)&&(end.y==M.y)) { if (Edge_H_M == false) { Edge_H_M = true; return true; } else { return false; } } } // end else if else if ((anchor.x == I.x) && (anchor.y == I.y)) { if ((end.x == D.x)&&(end.y == D.y)) { if (Edge_D_I == false) { Edge_D_I = true; return true; } else { return false; } } if ((end.x==G.x)&&(end.y==G.y)) { if (Edge_G_I == false) { Edge_G_I = true; return true; } else { return false; } } if ((end.x == K.x)&&(end.y == K.y)) { if (Edge_I_K == false) { Edge_I_K = true; return true; } else { return false; } } if ((end.x==O.x)&&(end.y==O.y)) { if (Edge_I_O == false) { Edge_I_O = true; return true; } else { return false; } } } // end else if else if ((anchor.x == J.x) && (anchor.y == J.y)) { if ((end.x==F.x)&&(end.y==F.y)) { if (Edge_F_J == false) { Edge_F_J = true; return true; } else { return false; } } if ((end.x == G.x)&&(end.y == G.y)) { if (Edge_G_J == false) { Edge_G_J = true; return true; } else { return false; } } if ((end.x==H.x)&&(end.y==H.y)) { if (Edge_H_J == false) { Edge_H_J = true; return true; } else { return false; } } if ((end.x == K.x)&&(end.y == K.y)) { if (Edge_J_K == false) { Edge_J_K = true; return true; } else { return false; } } if ((end.x == M.x)&&(end.y == M.y)) { if (Edge_J_M == false) { Edge_J_M = true; return true; } else { return false; } } if ((end.x == N.x)&&(end.y == N.y)) { if (Edge_J_N == false) { Edge_J_N = true; return true; } else { return false; } } } else if ((anchor.x == K.x) && (anchor.y == K.y)) { if ((end.x==F.x)&&(end.y==F.y)) { if (Edge_F_K == false) { Edge_F_K = true; return true; } else { return false; } } if ((end.x == G.x)&&(end.y == G.y)) { if (Edge_G_K == false) { Edge_G_K = true; return true; } else { return false; } } if ((end.x==I.x)&&(end.y==I.y)) { if (Edge_I_K == false) { Edge_I_K = true; return true; } else { return false; } } if ((end.x == J.x)&&(end.y == J.y)) { if (Edge_J_K == false) { Edge_J_K = true; return true; } else { return false; } } if ((end.x == N.x)&&(end.y == N.y)) { if (Edge_K_N == false) { Edge_K_N = true; return true; } else { return false; } } if ((end.x == O.x)&&(end.y == O.y)) { if (Edge_K_O == false) { Edge_K_O = true; return true; } else { return false; } } } else if ((anchor.x == L.x) && (anchor.y == L.y)) { if ((end.x==A.x)&&(end.y==A.y)) { if (Edge_A_L == false) { Edge_A_L = true; return true; } else { return false; } } if ((end.x == M.x)&&(end.y == M.y)) { if (Edge_L_M == false) { Edge_L_M = true; return true; } else { return false; } } } // end else if else if ((anchor.x == M.x) && (anchor.y == M.y)) { if ((end.x == H.x)&&(end.y == H.y)) { if (Edge_H_M == false) { Edge_H_M = true; return true; } else { return false; } } if ((end.x==J.x)&&(end.y==J.y)) { if (Edge_J_M == false) { Edge_J_M = true; return true; } else { return false; } } if ((end.x == L.x)&&(end.y == L.y)) { if (Edge_L_M == false) { Edge_L_M = true; return true; } else { return false; } } if ((end.x==N.x)&&(end.y==N.y)) { if (Edge_M_N == false) { Edge_M_N= true; return true; } else { return false; } } } // end else if else if ((anchor.x == N.x) && (anchor.y == N.y)) { if ((end.x == J.x)&&(end.y == J.y)) { if (Edge_J_N == false) { Edge_J_N = true; return true; } else { return false; } } if ((end.x==K.x)&&(end.y==K.y)) { if (Edge_K_N == false) { Edge_K_N = true; return true; } else { return false; } } if ((end.x == M.x)&&(end.y == M.y)) { if (Edge_M_N == false) { Edge_M_N = true; return true; } else { return false; } } if ((end.x==O.x)&&(end.y==O.y)) { if (Edge_N_O == false) { Edge_N_O= true; return true; } else { return false; } } } // end else if else if ((anchor.x == O.x) && (anchor.y == O.y)) { if ((end.x == I.x)&&(end.y == I.y)) { if (Edge_I_O == false) { Edge_I_O = true; return true; } else { return false; } } if ((end.x==K.x)&&(end.y==K.y)) { if (Edge_K_O == false) { Edge_K_O = true; return true; } else { return false; } } if ((end.x == N.x)&&(end.y == N.y)) { if (Edge_N_O == false) { Edge_N_O = true; return true; } else { return false; } } if ((end.x==P.x)&&(end.y==P.y)) { if (Edge_O_P == false) { Edge_O_P= true; return true; } else { return false; } } } // end else if else if ((anchor.x == P.x) && (anchor.y == P.y)) { if ((end.x==E.x)&&(end.y==E.y)) { if (Edge_E_P == false) { Edge_E_P = true; return true; } else { return false; } } if ((end.x == O.x)&&(end.y == O.y)) { if (Edge_O_P == false) { Edge_O_P = true; return true; } else { return false; } } } // end else if return false; } void showMessage (String message) { outerparent.statusline.setText(message); } void addline (int x, int y) { starts[currline] = anchor; ends[currline] = new Point(x,y); currline++; repaint(); anchor = currentpoint; if (currline == MAXLINES) { String s; s = "CONGRATULATIONS!!! Puzzle Solved "; showMessage(s); } } public Dimension minimumSize() { return new Dimension(200,200); } public Dimension preferredSize() { return minimumSize(); } } class Circle2{ final Point A = new Point(27,32); final Point B = new Point(52,32); final Point C = new Point(102,32); final Point D = new Point(152,32); final Point E = new Point(177,32); final Point F = new Point(77,67); final Point G = new Point(127,67); final Point H = new Point(52,102); final Point I = new Point(152,102); final Point J = new Point(77,137); final Point K = new Point(127,137); final Point L = new Point(27,172); final Point M = new Point(52,172); final Point N = new Point(102,172); final Point O = new Point(152,172); final Point P = new Point(177,172); public Circle2() { } double r = 5.0; // is point (a,b) inside this circle? public int check(double a, double b) { if (isInside(a,b,A)) return 1; if (isInside(a,b,B)) return 2; if (isInside(a,b,C)) return 3; if (isInside(a,b,D)) return 4; if (isInside(a,b,E)) return 5; if (isInside(a,b,F)) return 6; if (isInside(a,b,G)) return 7; if (isInside(a,b,H)) return 8; if (isInside(a,b,I)) return 9; if (isInside(a,b,J)) return 10; if (isInside(a,b,K)) return 11; if (isInside(a,b,L)) return 12; if (isInside(a,b,M)) return 13; if (isInside(a,b,N)) return 14; if (isInside(a,b,O)) return 15; if (isInside(a,b,P)) return 16; return 0; } public boolean isInside(double a, double b,Point thepoint) { double dx = a - thepoint.x; double dy = b - thepoint.y; double distance = Math.sqrt(dx*dx + dy*dy); if (distance < r) return true; else return false; } }