INTERACTIVE LCD display 16x2 with buttons, not working as hoped.... not working

INTERACTIVE LCD display 16x2 with buttons, not working as hoped, i looked online on this subject and couldn’t find much on the subject. here is the code, just making it for a family member. NOT URGENT so if you have the time to look over my code and see what could be the problem that would be great!

#include <LiquidCrystal.h>
LiquidCrystal LCD(10, 9, 5, 4, 3, 2);  
const int b1 = 7;
const int b2 = 12;
  int r1 = 0;
  int r2 = 0;
 void setup() {
   pinMode(b1, INPUT);
   pinMode(b2, INPUT);
Serial.begin(9600);
LCD.begin(16,2);
LCD.clear();
LCD.setCursor(0,0); 
LCD.print("Hello welcome to");  
LCD.setCursor(0,1);
LCD.print("THE SURVEY!!!!!");
delay(2000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Button 1(left)");
LCD.setCursor(0,1);
LCD.print("that is Yes/true");
delay(5000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Button 2(Right)");
LCD.setCursor(0,1);
LCD.print("that is No/false");
delay(5000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Remeber hold the");
LCD.setCursor(0,1);
LCD.print("button until ");
delay(2000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("said OK then");
LCD.setCursor(0,1);
LCD.print("let go ");
delay(2000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("also only press");
LCD.setCursor(0,1);
LCD.print("ONE BUTTON!");
delay(2000);
  int r1 = digitalRead(b1);
  int r2 = digitalRead(b2);
  LCD.clear();
LCD.setCursor(0,0);
LCD.print("Does amanda say");
LCD.setCursor(0,1);
LCD.print("baggock? yes/no");
delay(4000);
if(r1 == HIGH){
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Good Job");
}if(r2 == HIGH){
  LCD.clear();
LCD.setCursor(0,0);
LCD.print("Awwww");
 }
 }
void loop(){
    LCD.clear();
LCD.setCursor(0,0);
LCD.print("Thanks");
delay(200);
}

I know it might not make sense the text but, im trying to figure out the logic.

Maybe if you explained what "doesn't work" or better, explain what you expected it to do and what it is doing instead :P

@smerkousdavid

very confusing. Which INTERACTIVE LCD display 16x2 you are using. There is no logic in program itself.

 int r1 = digitalRead(b1);
  int r2 = digitalRead(b2);

what is use of the function in setup??? Without declaring input or output?? You should give proper explination what you are trying to accomplish here>>

DigitalReads are very fast. So fast that unless a person has started pushing the button before you call digitalRead, you will not get a reading. You are calling it only once, and long before you even ask the user to push the button and allow the user to move the finger towards the button. By the time you print out the "Does amanda say" part, digitalRead is long finished. You need to make continuous calls to digitalRead in order to catch the moment when the button is pressed.

Sorry guys i forgot to say what was wrong with it, what i wanted to do is make a LCD more interactive, like a survey and the arduino waits for two buttons, one for yes two for no. The problem is that when i reach to those button parts, it just skips them and goes to the next LCD.print, with acknowledging there was a input, i tried Serial.println() to see if the buttons for some reason were pressed but, they weren't?

Thanks Shpaget i will try that