java - loop function to clear field -
trying create high-low game loop function count amount of tries , allow user keep re-entering until random number generated matches entered value user, output messages if it's low or high doesn't loop function or clear field allow guess
here's have far;
/** * simple guessing game program. * * program thinks of random number between 1 , 100 * , asks user guess number. * appropriate message displayed depending upon right * or wrong answer. * */ import javax.swing.*; // jpanel, jlabel, etc import java.awt.event.*; // actionlistener, actionevent import java.awt.*; // color import java.util.*; // random class class hilo8 implements actionlistener { // define object references jframe myframe; jpanel mypanel; jbutton startbutton, makeguessbutton, submitbutton, playagainbutton, exitbutton; jlabel message1label, message2label, message3label; jtextfield inputnumbertxtfield; random randomgenerator; int randomnumber; // constructor method hilo8() { // set frame myframe = new jframe("guess number game"); // set panel object. use absolute positioning. mypanel = new jpanel(); mypanel.setlayout (null); // create random generator object randomgenerator = new random(); // push button used start game off. startbutton = new jbutton ("press start game..."); startbutton.setbounds (10, 30, 400, 30); mypanel.add (startbutton); // label object (initially no string) // used let user know // program thinking of number message1label = new jlabel (); message1label.setbounds (10,80,500,20); mypanel.add (message1label); makeguessbutton = new jbutton ("click make guess.. "); makeguessbutton.setbounds (10, 140, 400, 30); mypanel.add (makeguessbutton); // label object used prompt // user enter number message2label = new jlabel ("what number? "); message2label.setbounds (10, 200, 500, 20); mypanel.add (message2label); // textfield object user types in // number. default value of 1 provided inputnumbertxtfield = new jtextfield ("1"); inputnumbertxtfield.setbounds (220, 200, 30, 20); mypanel.add (inputnumbertxtfield); // after user types in number (guess), // he/she must press button continue submitbutton = new jbutton ("submit guess"); submitbutton.setbounds (300, 200, 150, 30); mypanel.add (submitbutton); // object (initially empty) let // user know whether guess or right // or wrong message3label = new jlabel(); message3label.setbounds (10, 250, 500, 20); mypanel.add (message3label); // push button allows user // exit application. exitbutton = new jbutton ("exit game"); exitbutton.setbounds (250, 300, 100, 30); mypanel.add ( exitbutton ); // following components made // invisible message2label.setvisible ( false ); makeguessbutton.setvisible (false); inputnumbertxtfield.setvisible (false); submitbutton.setvisible (false); exitbutton.setvisible ( false ); // register push button objects // actionevent startbutton.addactionlistener (this); makeguessbutton.addactionlistener (this); submitbutton.addactionlistener (this); exitbutton.addactionlistener (this); // add panel frame myframe.add (mypanel); // size frame , make visible myframe.setbounds(50,100,500,450); myframe.setvisible(true); } // implement actionperformed method public void actionperformed(actionevent event) { // local variables string str; int number; int numberoftries = 0; // did user press start button if ( event.getsource() == startbutton) { // disable startbutton startbutton.setenabled ( false ); // tell user program thinking of // number message1label.settext ("thinking of number between 1 - 100"); // generate random number between 1 100 // nextint (100) generates random no. // between 0 9, add 1 on scale randomnumber = randomgenerator.nextint(100) + 1; numberoftries++; // make makeguess button visible makeguessbutton.setvisible ( true ); } else // check see if it's makeguessbutton if ( event.getsource() == makeguessbutton ) { // disable makeguessbutton makeguessbutton.setenabled ( false ); // elements asking user // make guess , submit answer // made visible message2label.setvisible ( true ); inputnumbertxtfield.setvisible ( true ); submitbutton.setvisible ( true ); // make sure cursor in textfield inputnumbertxtfield.requestfocus(); } else // check see if it's submit button if ( event.getsource() == submitbutton ) { // read contents off textfield str = inputnumbertxtfield.gettext(); // convert integer number number = integer.valueof ( str ); // disable textfield , submitbutton inputnumbertxtfield.setenabled ( false ); submitbutton.setenabled ( false ); // check see if user guessed correctly if ( number == randomnumber ) { // guessed correctly message3label.settext ("well done. you've guessed correctly" + " it's taken " + numberoftries + " tries"); } else if ( number < randomnumber ) // otherwise, got wrong! { message3label.settext ("your guess low" + " it's taken " + numberoftries + " tries"); } else if ( number > randomnumber ) // otherwise, got wrong! { message3label.settext ("your guess high" + " it's taken " + numberoftries + " tries"); } // make exitbutton // visible exitbutton.setvisible ( true ); } else // exitbutton pressed if ( event.getsource() == exitbutton ) { system.exit (0); // exit application } } // main() method - program class execution // starts public static void main() { hilo8 start = new hilo8(); } }
i edited code bit left comments in /* */ can differentiate them own. check if how wanted code work you. friendly advice though when you're making application uses jframe setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close) friend.
/** * simple guessing game program. * * program thinks of random number between 1 , 100 * , asks user guess number. * appropriate message displayed depending upon right * or wrong answer. * */ import javax.swing.*; // jpanel, jlabel, etc import java.awt.event.*; // actionlistener, actionevent import java.awt.*; // color import java.util.*; // random class class hilo8 { // define object references jframe myframe; jpanel mypanel; jbutton startbutton, makeguessbutton, submitbutton, playagainbutton, exitbutton; jlabel message1label, message2label, message3label; jtextfield inputnumbertxtfield; random randomgenerator; int randomnumber; /* * variables moved local global */ string str; int number; int numberoftries = 0; // constructor method hilo8() { // set frame myframe = new jframe("guess number game"); // set panel object. use absolute positioning. mypanel = new jpanel(); mypanel.setlayout (null); // create random generator object randomgenerator = new random(); // push button used start game off. startbutton = new jbutton ("press start game..."); startbutton.setbounds (10, 30, 400, 30); mypanel.add (startbutton); // label object (initially no string) // used let user know // program thinking of number message1label = new jlabel (); message1label.setbounds (10,80,500,20); mypanel.add (message1label); makeguessbutton = new jbutton ("click make guess.. "); makeguessbutton.setbounds (10, 140, 400, 30); mypanel.add (makeguessbutton); // label object used prompt // user enter number message2label = new jlabel ("what number? "); message2label.setbounds (10, 200, 500, 20); mypanel.add (message2label); // textfield object user types in // number. default value of 1 provided inputnumbertxtfield = new jtextfield ("1"); inputnumbertxtfield.setbounds (220, 200, 30, 20); mypanel.add (inputnumbertxtfield); // after user types in number (guess), // he/she must press button continue submitbutton = new jbutton ("submit guess"); submitbutton.setbounds (300, 200, 150, 30); mypanel.add (submitbutton); // object (initially empty) let // user know whether guess or right // or wrong message3label = new jlabel(); message3label.setbounds (10, 250, 500, 20); mypanel.add (message3label); // push button allows user // exit application. exitbutton = new jbutton ("exit game"); exitbutton.setbounds (250, 300, 100, 30); mypanel.add ( exitbutton ); // following components made // invisible message2label.setvisible ( false ); makeguessbutton.setvisible (false); inputnumbertxtfield.setvisible (false); submitbutton.setvisible (false); exitbutton.setvisible ( false ); // register push button objects // actionevent /* * actionlistener startbutton */ startbutton.addactionlistener (new actionlistener() { @override public void actionperformed(actionevent e) { // disable startbutton startbutton.setenabled ( false ); // tell user program thinking of // number message1label.settext ("thinking of number between 1 - 100"); // generate random number between 1 100 // nextint (100) generates random no. // between 0 9, add 1 on scale randomnumber = randomgenerator.nextint(100) + 1; /* * removed since logically should increasing 'tries' when submitbutton pushed */ //numberoftries++; // make makeguess button visible makeguessbutton.setvisible ( true ); } }); /* * actionlisterner makeguessbutton */ makeguessbutton.addactionlistener (new actionlistener() { @override public void actionperformed(actionevent e) { // disable makeguessbutton makeguessbutton.setenabled ( false ); // elements asking user // make guess , submit answer // made visible message2label.setvisible ( true ); inputnumbertxtfield.setvisible ( true ); submitbutton.setvisible ( true ); // make sure cursor in textfield inputnumbertxtfield.requestfocus(); } }); /* * action listener submitbutton */ submitbutton.addactionlistener (new actionlistener() { @override public void actionperformed(actionevent e) { // read contents off textfield str = inputnumbertxtfield.gettext(); // convert integer number number = integer.valueof ( str ); /* * increase number of 'tries' */ numberoftries++; // disable textfield , submitbutton /* inputnumbertxtfield.setenabled ( false ); * submitbutton.setenabled ( false ); * keep textfield , button enabled until user guesses * otherwise user wont able make guess */ // check see if user guessed correctly if ( number == randomnumber ) { // guessed correctly message3label.settext ("well done. you've guessed correctly" + " it's taken " + numberoftries + " tries"); /* * disable textfield , button */ inputnumbertxtfield.setenabled(false); submitbutton.setenabled(false); } else if ( number < randomnumber ) // otherwise, got wrong! { message3label.settext ("your guess low" + " it's taken " + numberoftries + " tries"); } else if ( number > randomnumber ) // otherwise, got wrong! { message3label.settext ("your guess high" + " it's taken " + numberoftries + " tries"); } // make exitbutton // visible exitbutton.setvisible ( true ); } }); /* * actionlistener exitbutton */ exitbutton.addactionlistener (new actionlistener() { @override public void actionperformed(actionevent e) { system.exit(0); } }); // add panel frame myframe.add (mypanel); // size frame , make visible myframe.setbounds(50,100,500,450); myframe.setvisible(true); myframe.setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); } // main() method - program class execution // starts public static void main(string[] args) { hilo8 start = new hilo8(); } }
Comments
Post a Comment