#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int btn1 = 6, btn2 = 5, btn3 = 4, bt1Val, bt2Val, bt3Val;
long randNumber, btThresh = 300;
long lastBt1 = millis(), lastBt2 = millis(), lastBt3 = millis();
const int led1 = 11, led2 = 10, led3 = 12;
int playerScore = 0, arduinoScore = 0;
int mode = 0, counter = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(btn1, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Rock,Paper,");
lcd.setCursor(4, 1);
lcd.print("Scissors!");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randomSeed(analogRead(0));
delay(500);
}
void loop() {
pinMode(btn1, INPUT);
pinMode(btn2, INPUT);
pinMode(btn3, INPUT);
bt1Val = digitalRead(btn1);
Serial.println("VALUe");
Serial.println(bt1Val);
bt2Val = digitalRead(btn2);
bt3Val = digitalRead(btn3);
int playerGuess;
if (mode == 0) {
if (bt1Val) {
if (millis() - lastBt1 > btThresh) {
playerGuess = 1;
randNumber = random(1, 4);
lastBt1 = millis();
mode = 1;
pinMode(btn1, OUTPUT);
digitalWrite(6, LOW);
}
}
else if (bt2Val) {
if (millis() - lastBt2 > btThresh) {
playerGuess = 2;
randNumber = random(1, 4);
lastBt2 = millis();
mode = 1;
bt2Val = false;
}
}
else if (bt3Val) {
if (millis() - lastBt3 > btThresh) {
playerGuess = 3;
randNumber = random(1, 4);
lastBt3 = millis();
mode = 1;
bt3Val = false;
}
}
}
if (mode == 1) {
if (randNumber == playerGuess) {
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Its A Tie!");
lcd.setCursor(0, 1);
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
mode = 0;
}
else if (playerGuess == 1 && randNumber == 3) { //ROCK BLUNTS SCISSORS _ PLAYER WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Rock Blunts ");
lcd.setCursor(2, 1);
lcd.print("Scissors");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
playerScore = playerScore + 1;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
playerScore = playerScore + 1;
counter = counter + 1;
mode = 0;
}
else if ( playerGuess == 1 && randNumber == 2) { //PAPER COVERS ROCK _ COMPUTER WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Paper Covers ");
lcd.setCursor(3, 1);
lcd.print("Rock");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
arduinoScore = arduinoScore++;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
counter = counter + 1;
mode = 0;
}
else if (playerGuess == 2 && randNumber == 1) { // PAPER COVERS ROCK _ PLAYER WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Paper Covers ");
lcd.setCursor(3, 1);
lcd.print("Rock");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
playerScore = playerScore + 1;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
mode = 0;
}
else if (playerGuess == 2 && randNumber == 3) { //SCISSORS CURS PAPER_ COMPUTER WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Scissors Cuts ");
lcd.setCursor(3, 1);
lcd.print("Paper");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
arduinoScore = arduinoScore++;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
counter = counter + 1;
mode = 0;
}
else if (playerGuess == 3 && randNumber == 1) { // ROCK BLUNTS SCCISSORS _ COMPUTER WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Rock Blunts ");
lcd.setCursor(2, 1);
lcd.print("Scissors");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
arduinoScore = arduinoScore++;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
counter = counter + 1;
mode = 0;
}
else if (playerGuess == 3 && randNumber == 2) { // SCISSORS CUTS PAPAER_ PLAYERS WINS
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Scissors Cuts ");
lcd.setCursor(2, 1);
lcd.print("Paper");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
playerScore = playerScore + 1;
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
randNumber = 0;
playerGuess = 1234;
counter = counter + 1;
mode = 0;
}
}
if (counter == 2) {
mode = 3;
}
if (mode == 3) {
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("You Win!");
playerScore = 0;
counter = 0;
randNumber = 12345;
playerGuess = 99999;
delay(3000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(6, 1);
lcd.print("NOW!");
delay(750);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Throw Down");
lcd.setCursor(0, 1);
lcd.print(String("Me: ") + String(playerScore) + String(" NOW! ") + String( "A: " ) + String (arduinoScore));
delay(500);
mode = 0;
}
delay(50);
}