Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
- int ButtonUP = 8;
- int ButtonDOWN = 9;
- byte igrok[8] = {
- B10000,
- B11000,
- B10100,
- B10001,
- B10001,
- B10100,
- B11000,
- B10000,
- };
- byte stena[8] = {
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- };
- byte life[8] = {
- B00000,
- B01010,
- B10101,
- B10001,
- B01010,
- B00100,
- B00000,
- B00000,
- };
- int stena1_1 = -1;
- int stena2_1 = -1;
- int stena1_2 = -1;
- int stena2_2 = -1;
- boolean peremesch = false;
- byte j = 0;
- byte count = 0;
- byte lives = 3;
- int record = 0;
- const int buzzer_pin = 11;
- void setup() {
- pinMode (ButtonUP, INPUT);
- pinMode (ButtonDOWN, INPUT);
- pinMode(buzzer_pin, OUTPUT);
- lcd.begin(16, 2);
- lcd.createChar(0, igrok);
- lcd.createChar(1, stena);
- lcd.createChar(2, life);
- randomSeed(analogRead(0));
- zagruzka();
- }
- void zagruzka() {
- lcd.setCursor(0,0);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(" ");
- for (int i=0; i<16; i++) {
- lcd.setCursor(i,0);
- lcd.write(1);
- lcd.setCursor(i,1);
- lcd.write(1);
- delay(300);
- }
- lcd.setCursor(0,0);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(" ");
- }
- void peremeschenie() {
- if (digitalRead(ButtonUP) == HIGH)
- {
- peremesch = false;
- }
- if (digitalRead(ButtonDOWN) == HIGH)
- {
- peremesch = true;
- }
- }
- void obnovlenie() {
- lcd.setCursor(0,0);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(" ");
- lcd.setCursor(14,1);
- lcd.print(lives);
- lcd.setCursor(15,1);
- lcd.write(2);
- if (peremesch == false)
- {
- lcd.setCursor(0,0);
- lcd.write(j);
- }
- else
- {
- lcd.setCursor(0,1);
- lcd.write(j);
- }
- if (stena1_1 <= 16 && stena1_1 >= 0)
- {
- lcd.setCursor(stena1_1,0);
- lcd.write(1);
- }
- if(stena2_1 <= 13 && stena2_1 >= 0)
- {
- lcd.setCursor(stena2_1,1);
- lcd.write(1);
- }
- if (stena1_2 <= 16 && stena1_2 >= 0)
- {
- lcd.setCursor(stena1_2,0);
- lcd.write(1);
- }
- if(stena2_2 <= 13 && stena2_2 >= 0)
- {
- lcd.setCursor(stena2_2,1);
- lcd.write(1);
- }
- }
- void steny() {
- if(stena1_1 == -1)
- {
- stena1_1 = round(random(16, 32));
- }
- if(stena2_1 == -1)
- {
- stena2_1 = round(random(stena1_1 + 2, 32));
- }
- if(stena1_2 == -1)
- {
- do {
- stena1_2 = round(random(stena1_1 + 3, 48));
- } while(stena1_2 == stena2_1);
- }
- if(stena2_2 == -1)
- {
- do {
- stena2_2 = round(random(stena2_1 + 3, 48));
- } while(stena2_2 == stena1_2);
- }
- if(stena1_1 == stena2_1)
- {
- stena2_1 += 2;
- }
- if(stena1_1 == stena2_2)
- {
- stena2_2 += 2;
- }
- }
- void proverka() {
- if ((peremesch == false && (stena1_1 == 0 || stena1_2 == 0)) || (peremesch == true && (stena2_1 == 0 || stena2_2 == 0)))
- {
- lives -= 1;
- if (lives >= 1)
- {
- for (int i=0; i<4; i++)
- {
- lcd.setCursor(0,0);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(" ");
- delay(300);
- lcd.setCursor(3,0);
- lcd.print("-1 LIFE!");
- delay(400);
- }
- delay(400);
- }
- else
- {
- stena1_1 = 0;
- stena1_2 = 0;
- stena2_1 = 0;
- stena2_2 = 0;
- for (int i=0; i<4; i++)
- {
- lcd.setCursor(0,0);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(" ");
- delay(300);
- lcd.setCursor(3,0);
- lcd.print("GAME OVER!");
- lcd.setCursor(0,1);
- lcd.print(record);
- lcd.setCursor(5,1);
- lcd.print("m");
- delay(500);
- }
- delay(700);
- lives = 3;
- record = 0;
- }
- }
- }
- void loop() {
- obnovlenie();
- steny();
- proverka();
- peremeschenie();
- stena1_1 -= 1;
- stena1_2 -= 1;
- stena2_1 -= 1;
- stena2_2 -= 1;
- record += 1;
- if(record <= 100)
- {
- delay(60);
- peremeschenie();
- delay(60);
- peremeschenie();
- delay(60);
- peremeschenie();
- delay(60);
- peremeschenie();
- delay(60);
- peremeschenie();
- delay(60);
- peremeschenie();
- }
- else if(record > 100 && record <= 200)
- {
- delay(40);
- peremeschenie();
- delay(50);
- peremeschenie();
- delay(50);
- peremeschenie();
- delay(50);
- peremeschenie();
- delay(50);
- peremeschenie();
- delay(40);
- peremeschenie();
- }
- else if(record > 200 && record <= 400)
- {
- delay(40);
- peremeschenie();
- delay(40);
- peremeschenie();
- delay(40);
- peremeschenie();
- delay(40);
- peremeschenie();
- delay(40);
- peremeschenie();
- delay(40);
- peremeschenie();
- }
- else
- {
- delay(30);
- peremeschenie();
- delay(30);
- peremeschenie();
- delay(30);
- peremeschenie();
- delay(30);
- peremeschenie();
- delay(30);
- peremeschenie();
- delay(30);
- peremeschenie();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment