Pages: [1]   Go Down
Author Topic: Newbie Sketch--guess my number game  (Read 1399 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#include <LiquidCrystal.h>
#define BUTTON 7  // the input pin where the button is
int rndm; //our random number
int guessPin = 0; //our analog read pin for the guess
int val; //our button reader
int wronguess=0; //our variable for the number of guesses
int highscore=100; //our highscore variable
int lowscore=0; //our lowscore variable
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the library with the numbers of the interface pins

void 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 lower
delay (1500);
   }
   if (guess<rndm){  //if our guess is lower than the random number
    lcd.setCursor(0,0);
lcd.print("      Go HIGHER     "); //print go higher
delay (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);
}
Logged

Pages: [1]   Go Up
Jump to: