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

Implement a 1-player version of hangman, where the human user guesses letters an

ID: 3634095 • Letter: I

Question

Implement a 1-player version of hangman, where the human user guesses letters and the computer either displays the letters, or adds an additional part of the hangman. The game must be written using the model-view-controller pattern.

Explanation / Answer

import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.Random; import java.lang.reflect.Array; public class hangman extends Applet implements ActionListener{ static final int DEAD=13; // amount of errors till loss private int errors; // amount of errors private String message; // error or victorie private String information; // information of the message private String rword; // the rword private StringBuffer gword;// the gword private Button bStart; // Button "Restart" private Button bGo; // Button "Go" private TextField tfLetter; // letter box private Font fnt; // common font public void init(){ fnt = new Font( "Monospaced", 0, 12 ); setFont(fnt); // Create textbox for guess letter tfLetter = new TextField(); // Create buttons and labels bStart = new Button("Restart"); bGo = new Button("Go"); // Add the graphical elements to the applet add(bStart); add(new Label("Guess a letter:")); add(tfLetter); add(bGo); // Buttons are events: bStart.addActionListener(this); bGo.addActionListener(this); // Start first game initGame(); } public void initGame(){ /* Setting the errors to 0 */ errors=0; /* Enter the wordslist, separated by a | here: */ String str = "computer|radio|calculator|teacher|bureau|police|geometry|president|subject|country|enviroment|classroom|animals|province|month|politics|puzzle|instrument|kitchen|language|vampire|ghost|solution|service|software|virus25|security|phonenumber|expert|website|agreement|support|compatibility|advanced|search|triathlon|immediately|encyclopedia|endurance|distance|nature|history|organization|international|championship|government|popularity|thousand|feature|wetsuit|fitness|legendary|variation|equal|approximately|segment|priority|physics|branche|science|mathematics|lightning|dispersion|accelerator|detector|terminology|design|operation|foundation|application|prediction|reference|measurement|concept|perspective|overview|position|airplane|symmetry|dimension|toxic|algebra|illustration|classic|verification|citation|unusual|resource|analysis|license|comedy|screenplay|production|release|emphasis|director|trademark|vehicle|aircraft|experiment"; String[] temp; /* delimiter */ String delimiter = "\|"; /* given string will be split by the argument delimiter provided. */ temp = str.split(delimiter); /* Setting the seed */ Random randomGenerator = new Random(); /* Generating random number */ int randomInt = randomGenerator.nextInt(temp.length); rword = new String(temp[randomInt]); char positions[] = new char[rword.length()]; for (int i=0; i 0){ // ground g.drawLine(90, baseY,200,baseY); } if (errors > 1){ // bar up g.drawLine(125,baseY,125,baseY-100); } if (errors > 2){ g.drawLine(110,baseY,125,baseY-15); } if (errors > 3){ g.drawLine(140,baseY,125,baseY-15); } if (errors > 4){ // side bar g.drawLine(125,baseY-100,175,baseY-100); } if (errors > 5){ g.drawLine(125,baseY-85,140,baseY-100); } if (errors > 6){ // rope g.drawLine(175,baseY-100,175,baseY-75); } if (errors > 7){ // body g.drawOval(170,baseY-75,10,12); } if (errors > 8){ g.drawOval(170,baseY-65,15,25); } if (errors > 9){ // arms g.drawLine(160,baseY-65,170,baseY-60); } if (errors > 10){ g.drawLine(183,baseY-60,193,baseY-65); } if (errors > 11){ // legs g.drawLine(165,baseY-30,170,baseY-45); } if (errors > 12){ g.drawLine(183,baseY-45,193,baseY-30); } // Show the messages g.drawString( message, 40, baseY+25 ); g.drawString( information, 25, baseY+45 ); g.drawString( new String (gword), 110, 60); } public void actionPerformed(ActionEvent e){ if (e.getSource() == bStart){ initGame(); } if (e.getSource() == bGo){ processTurn(); // Delete the letter input box tfLetter.setText(""); repaint(); } } private void processTurn(){ String s, t; char a; s = tfLetter.getText(); a = s.charAt(0); if (!Character.isLetter(a)){ message="Only enter letters!"; return; } if (s.length()>1){ message="One letter at a time!"; return; } // Has the letter been guessed t = new String(gword); if (t.indexOf(s) != -1){ message="Letter has already been guessed"; return; } // If the letter doesn't occur in the rword if (rword.indexOf(s) == -1){ message=""; errors++; if (errors==DEAD){ message="You lost!"; information = "Click on restart for another chance!"; } return; } // Replace dots in gword with the found letter. for (int i=0; i
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