Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

ANY HELP PLEASEEEEEEEEEEEEEEEEEEEE and if possible try to answer in proper text

ID: 3604760 • Letter: A

Question

ANY HELP PLEASEEEEEEEEEEEEEEEEEEEE and if possible try to answer in proper text so that it's easy to copy and run it as it's a long code..pleaseeeeeee

write a program that simulates the childhood arcade game, Wac-A-Mole, using the Java Swing GUI. program may be a JApplet or you can use the JFrame-based GUI.

There should be an image too like a monkey or something. I am really stuck on the timer thing

Please help and if it's in applet it will be really helpful to understand for my remaining practice programs....thanks :)

program should use multiple layout managers to provide a label that presents information to the user (including the final score) at the top, a 5x5 grid of buttons for the playing area in the center, and a “play again” button at the bottom that is enabled only when the game is over.

program should use a random generator to randomly select which button will display the mole icon. Each time the correct button is selected 5 points are earned.

program should use timers to control when to change the Mole’s position on the playing area every 2 seconds, unless the correct button is clicked in which the Mole’s position is changed immediately and the timer is restarted, and the overall game timer which limits each game to 30 seconds. These timers, and the buttons, should trigger listener events that are handled appropriately by listener method(s) you define.

Once the game finishes, all buttons should be blank (no icon) and the total points should be displayed in the label.

Explanation / Answer

import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.Timer; // not java.util.Timer import java.text.NumberFormat; import java.net.*; /** * An applet that counts down from a specified time. When it reaches 00:00, * it optionally plays a sound and optionally moves the browser to a new page. * Place the mouse over the applet to pause the count; move it off to resume. * This class demonstrates most applet methods and features. **/ public class Countdown extends JApplet implements ActionListener, MouseListener { long remaining; // How many milliseconds remain in the countdown. long lastUpdate; // When count was last updated JLabel label; // Displays the count Timer timer; // Updates the count every second NumberFormat format; // Format minutes:seconds with leading zeros Image image; // Image to display along with the time AudioClip sound; // Sound to play when we reach 00:00 // Called when the applet is first loaded public void init() { // Figure out how long to count for by reading the "minutes" parameter // defined in a tag inside the tag. Convert to ms. String minutes = getParameter("minutes"); if (minutes != null) remaining = Integer.parseInt(minutes) * 60000; else remaining = 600000; // 10 minutes by default // Create a JLabel to display remaining time, and set some properties. label = new JLabel(); label.setHorizontalAlignment(SwingConstants.CENTER ); label.setOpaque(true); // So label draws the background color // Read some parameters for this JLabel object String font = getParameter("font"); String foreground = getParameter("foreground"); String background = getParameter("background"); String imageURL = getParameter("image"); // Set label properties based on those parameters if (font != null) label.setFont(Font.decode(font)); if (foreground != null) label.setForeground(Color.decode(foreground)); if (background != null) label.setBackground(Color.decode(background)); if (imageURL != null) { // Load the image, and save it so we can release it later image = getImage(getDocumentBase(), imageURL); // Now display the image in the JLabel. label.setIcon(new ImageIcon(image)); } // Now add the label to the applet. Like JFrame and JDialog, JApplet // has a content pane that you add children to getContentPane().add(label, BorderLayout.CENTER); // Get an optional AudioClip to play when the count expires String soundURL = getParameter("sound"); if (soundURL != null) sound=getAudioClip(getDocumentBase(), soundURL); // Obtain a NumberFormat object to convert number of minutes and // seconds to strings. Set it up to produce a leading 0 if necessary format = NumberFormat.getNumberInstance(); format.setMinimumIntegerDigits(2); // pad with 0 if necessary // Specify a MouseListener to handle mouse events in the applet. // Note that the applet implements this interface itself addMouseListener(this); // Create a timer to call the actionPerformed() method immediately, // and then every 1000 milliseconds. Note we don't start the timer yet. timer = new Timer(1000, this); timer.setInitialDelay(0); // First timer is immediate. } // Free up any resources we hold; called when the applet is done public void destroy() { if (image != null) image.flush(); } // The browser calls this to start the applet running // The resume() method is defined below. public void start() { resume(); } // Start displaying updates // The browser calls this to stop the applet. It may be restarted later. // The pause() method is defined below public void stop() { pause(); } // Stop displaying updates // Return information about the applet public String getAppletInfo() { return "Countdown applet Copyright (c) 2003 by David Flanagan"; } // Return information about the applet parameters public String[][] getParameterInfo() { return parameterInfo; } // This is the parameter information. One array of strings for each // parameter. The elements are parameter name, type, and description. static String[][] parameterInfo = { {"minutes", "number", "time, in minutes, to countdown from"}, {"font", "font", "optional font for the time display"}, {"foreground", "color", "optional foreground color for the time"}, {"background", "color", "optional background color"}, {"image", "image URL", "optional image to display next to countdown"}, {"sound", "sound URL", "optional sound to play when we reach 00:00"}, {"newpage", "document URL", "URL to load when timer expires"}, }; // Start or resume the countdown void resume() { // Restore the time we're counting down from and restart the timer. lastUpdate = System.currentTimeMillis(); timer.start(); // Start the timer } // Pause the countdown void pause() { // Subtract elapsed time from the remaining time and stop timing long now = System.currentTimeMillis(); remaining -= (now - lastUpdate); timer.stop(); // Stop the timer } // Update the displayed time. This method is called from actionPerformed() // which is itself invoked by the timer. void updateDisplay() { long now = System.currentTimeMillis(); // current time in ms long elapsed = now - lastUpdate; // ms elapsed since last update remaining -= elapsed; // adjust remaining time lastUpdate = now; // remember this update time // Convert remaining milliseconds to mm:ss format and display if (remaining < 0) remaining = 0; int minutes = (int)(remaining/60000); int seconds = (int)((remaining)/1000); label.setText(format.format(minutes) + ":" + format.format(seconds)); // If we've completed the countdown beep and display new page if (remaining == 0) { // Stop updating now. timer.stop(); // If we have an alarm sound clip, play it now. if (sound != null) sound.play(); // If there is a newpage URL specified, make the browser // load that page now. String newpage = getParameter("newpage"); if (newpage != null) { try { URL url = new URL(getDocumentBase(), newpage); getAppletContext().showDocument(url); } catch(MalformedURLException ex) { showStatus(ex.toString()); } } } } // This method implements the ActionListener interface. // It is invoked once a second by the Timer object // and updates the JLabel to display minutes and seconds remaining. public void actionPerformed(ActionEvent e) { updateDisplay(); } // The methods below implement the MouseListener interface. We use // two of them to pause the countdown when the mouse hovers over the timer. // Note that we also display a message in the statusline public void mouseEntered(MouseEvent e) { pause(); // pause countdown showStatus("Paused"); // display statusline message } public void mouseExited(MouseEvent e) { resume(); // resume countdown showStatus(""); // clear statusline } // These MouseListener methods are unused. public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} }
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote