Go Down

### Topic: Newbie Sketch--guess my number game (Read 2995 times)previous topic - next topic

#### Sparkinman

##### Jan 18, 2011, 02:43 am
Just a quick thanks to some of the code I've learned from all of you sifting through the forums.  I've had a little background in code and electronics for awhile now, but nothing is as much fun or quick as Arduino!
Figured I'd share my first sketch, a quick guess my number game played on a 20X4 LCD screen, using a pot as the input method (tried buttons but found them too tedious)..hope someone finds anything in value from it!  Any suggestions on how to clean up the code would be appreciated as well!
Code: [Select]
`#include <LiquidCrystal.h>#define BUTTON 7  // the input pin where the button isint rndm; //our random numberint guessPin = 0; //our analog read pin for the guessint val; //our button readerint wronguess=0; //our variable for the number of guessesint highscore=100; //our highscore variableint lowscore=0; //our lowscore variableLiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the library with the numbers of the interface pinsvoid setup() {    lcd.begin(20, 4); // set up the LCD's number of columns and rows..remember rows start at 0  pinMode(BUTTON, INPUT); //define our button as an input   numbergen(); //call numbergen for first random number   }void loop() {  int guess = (analogRead(guessPin)/10); //here our analog pins read from 0-1023 we only need                                         //a value of 0-100 so (1023/100)=10 if (guess > 100) guess=100; //This tells ensures it will never go over 100   val = digitalRead(BUTTON); // read input value and store it  lcd.setCursor(0,0); //set cursor spot on the top left    lcd.print("  Guess My Number!  "); //give a title to the game    lcd.setCursor(0, 1); //line 1 row 0 lcd.print("Number of Guesses"); //number of guesses  lcd.setCursor(18,1); // move cursor to line 1 row 18 lcd.print(wronguess); //print the number of wrong guesses lcd.setCursor (0,3); //line 3 row 0 lcd.print ("Best"); //print "best" lcd.setCursor(5,3); // move cursor to line 3 row 5 lcd.print(highscore); //print the value of our highscore lcd.setCursor (9,3); //line 3 row 9 lcd.print("Worst"); //print "worst" lcd.setCursor(15,3); //line 3 row 15 lcd.print(lowscore); //print the value of our worst game  lcd.setCursor(0,2); //line 2 row 0  lcd.print ("Your Guess:"); //print "your guess"  lcd.setCursor(12,2); //print our current guess    if (guess<10){    //this if basically puts a 0 in front of single numbers so                    // screen doesn't hold numbers when going from 2 digits to 3 digits    lcd.print("0");  lcd.print(guess);}  else {    lcd.print(guess); //if it's 10 or greater just print the number  }    if (val==HIGH) {   //if our button goes high (pressed) execute the following     if (guess==rndm) { //if our guess matches the random number     lcd.setCursor(0,0);     lcd.print("     You got it!    "); //change the heading to a win      if (wronguess<highscore) { //we're still in the if for winning, so update                                  // the high score if it's better than the existing       highscore=(wronguess+1);     }         if (wronguess>lowscore) {//we're still in the if for winning, so update                                  // the low score if it's better than the existing       lowscore=(wronguess+1);     }         delay (3000);     lcd.clear(); //clear the lcd after 3 seconds               wronguess=0; //reset our guess number     numbergen(); //call for another random number and repeat   }     else {     if (guess>rndm){ //if our guess is greater than the random number    lcd.setCursor(0,0);lcd.print("      Go LOWER      "); //print go lowerdelay (1500);   }   if (guess<rndm){  //if our guess is lower than the random number    lcd.setCursor(0,0);lcd.print("      Go HIGHER     "); //print go higherdelay (1500);   }   wronguess=wronguess+1; //count our number of guesses   } }}void numbergen () { //our random number generator in it's simplest form   //the numbers aren't so random using this function,    // first number is always 7, and I forget the rest. As shown in other texts    //uncommenting out the next line helps    //randomSeed(analogRead(1)); //which reads the noise on an empty pin to create a "true random"    rndm=random(100);}`

Go Up