Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(8,9,4,5,6,7);
- void setup() {
- lcd.begin(16,2);
- pinMode(13,OUTPUT); //czerwona (gracz 1)
- pinMode(12,OUTPUT); //niebieska (gracz 2)
- }
- bool tura, stop;
- int j, ana, wybor = 1, kostka, wynik_1, wynik_2, ilosc_tur = 3, diff_1, diff_2, cel;
- //analog
- int v1 = 75, v2 = 200, v3 = 400 , v4 = 600, v5 = 800, d1 = 13, d2 = 12;
- void loop() {
- //menu
- lcd.clear();
- ana = analogRead(A0);
- lcd.setCursor(0,0);
- lcd.print("Wybierz gre");
- lcd.setCursor(0,1);
- if (wybor == 1){
- lcd.print("Wyrzuc wiecej");
- }
- else if (wybor == 2) {
- lcd.print("Traf blizej");
- }
- else{
- lcd.print("Parzyste vs nie");
- }
- if (ana < v1) {
- //right
- //zmienia gre
- wybor++;
- if (wybor == 4){
- wybor = 1;
- }
- }
- else if (ana > v1 && ana < v2){
- //up
- //zmienia ilosc tur
- ilosc_tur++;
- if (ilosc_tur > 10){
- ilosc_tur = 10;
- }
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Tury");
- lcd.setCursor(0,1);
- lcd.print(ilosc_tur);
- delay(300);
- }
- else if (ana > v2 && ana < v3){
- //down
- //zmienia ilosc tur
- ilosc_tur--;
- if (ilosc_tur < 1){
- ilosc_tur = 1;
- }
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Tury");
- lcd.setCursor(0,1);
- lcd.print(ilosc_tur);
- delay(300);
- }
- else if (ana > v3 && ana < v4){
- //left
- //zmienia gre
- wybor--;
- if (wybor == 0){
- wybor = 3;
- }
- }
- else if (ana > v4 && ana < v5){
- //select
- //potwierdza wybor
- if (wybor == 1){
- delay(200);
- gra_1();
- }
- else if (wybor == 2) {
- delay(200);
- gra_2();
- }
- else{
- delay(200);
- gra_3();
- }
- }
- delay(200);
- }
- //wyrzuc wiecej
- void gra_1(){
- wynik_1 = 0;
- wynik_2 = 0;
- tura = true;
- j = ilosc_tur * 2;
- for (int i = 0; i < j; i++){
- //gra
- lcd.setCursor(0,0);
- if (tura == true){
- //tura gracza 1
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- lcd.clear();
- lcd.print("Gracz 1");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_1);
- }
- else{
- //tura gracza 2
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- lcd.clear();
- lcd.print("Gracz 2");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_2);
- }
- stop = false;
- while (stop != true){
- //rzut kostka
- kostka = random (1,7);
- lcd.setCursor(2,1);
- lcd.print(kostka);
- ana = analogRead(A0);
- if (ana > v4 && ana < v5){
- //select
- stop = true;
- }
- delay(100);
- }
- if (tura == true){
- wynik_1 = wynik_1 + kostka;
- tura = false;
- }
- else{
- wynik_2 = wynik_2 + kostka;
- tura = true;
- }
- delay(2000);
- }
- //wyniki
- digitalWrite(d2,LOW);
- digitalWrite(d1,LOW);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Gracz 1: ");
- lcd.print(wynik_1);
- lcd.setCursor(0,1);
- lcd.print("Gracz 2: ");
- lcd.print(wynik_2);
- delay(3000);
- lcd.clear();
- lcd.setCursor(0,0);
- if (wynik_1 == wynik_2){
- lcd.print("Remis");
- digitalWrite(d2,HIGH);
- digitalWrite(d1,HIGH);
- }
- else if(wynik_1 > wynik_2){
- lcd.print("Gracz 1 wygral");
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- }
- else{
- lcd.print("Gracz 2 wygral");
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- }
- delay(4000);
- digitalWrite(d2,LOW);
- digitalWrite(d1,LOW);
- }
- //traf blizej
- void gra_2(){
- wynik_1 = 0;
- wynik_2 = 0;
- tura = true;
- cel = random(ilosc_tur, ilosc_tur*6);
- j = ilosc_tur * 2;
- for (int i = 0; i < j; i++){
- //gra
- lcd.setCursor(0,0);
- if (tura == true){
- //tura gracza 1
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- lcd.clear();
- lcd.print("Gracz 1");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_1);
- lcd.setCursor(9,1);
- lcd.print("Cel: ");
- lcd.print(cel);
- }
- else{
- //tura gracza 2
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- lcd.clear();
- lcd.print("Gracz 2");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_2);
- lcd.setCursor(9,1);
- lcd.print("Cel: ");
- lcd.print(cel);
- }
- stop = false;
- while (stop != true){
- //rzut kostka
- kostka = random (1,7);
- lcd.setCursor(2,1);
- lcd.print(kostka);
- ana = analogRead(A0);
- if (ana > v4 && ana < v5){
- //select
- stop = true;
- }
- delay(100);
- }
- if (tura == true){
- wynik_1 = wynik_1 + kostka;
- tura = false;
- }
- else{
- wynik_2 = wynik_2 + kostka;
- tura = true;
- }
- delay(2000);
- }
- //wyniki
- //gracz 1
- diff_1 = wynik_1 - cel;
- if (diff_1 < 0){
- diff_1 = -diff_1;
- }
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Gracz 1: ");
- lcd.print(wynik_1);
- lcd.setCursor(0,1);
- lcd.print("Roznica: ");
- lcd.print(diff_1);
- delay(3000);
- //gracz 2
- diff_2 = wynik_2 - cel;
- if (diff_2 < 0){
- diff_2 = -diff_2;
- }
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Gracz 2: ");
- lcd.print(wynik_2);
- lcd.setCursor(0,1);
- lcd.print("Roznica: ");
- lcd.print(diff_2);
- delay(3000);
- lcd.clear();
- lcd.setCursor(0,0);
- if (diff_1 == diff_2){
- lcd.print("Remis");
- digitalWrite(d2,HIGH);
- digitalWrite(d1,HIGH);
- }
- else if(diff_1 < diff_2){
- lcd.print("Gracz 1 wygral");
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- }
- else{
- lcd.print("Gracz 2 wygral");
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- }
- delay(4000);
- digitalWrite(d2,LOW);
- digitalWrite(d1,LOW);
- }
- //parzyste vs nie
- void gra_3(){
- wynik_1 = 0;
- wynik_2 = 0;
- tura = true;
- j = ilosc_tur * 2;
- for (int i = 0; i < j; i++){
- //gra
- lcd.setCursor(0,0);
- if (tura == true){
- //tura gracza 1
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- lcd.clear();
- lcd.print("Gracz 1");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_1);
- lcd.setCursor(9,1);
- lcd.print("(1 3 5)");
- }
- else{
- //tura gracza 2
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- lcd.clear();
- lcd.print("Gracz 2");
- lcd.setCursor(12,0);
- lcd.print("P.");
- lcd.print(wynik_2);
- lcd.setCursor(9,1);
- lcd.print("(2 4 6)");
- }
- stop = false;
- while (stop != true){
- //rzut kostka
- kostka = random (1,7);
- lcd.setCursor(2,1);
- lcd.print(kostka);
- ana = analogRead(A0);
- if (ana > v4 && ana < v5){
- //select
- stop = true;
- }
- delay(100);
- }
- //gracz 1 musi trafiac nieparzyste
- if (tura == true){
- if (kostka % 2 == 1){
- wynik_1++;
- }
- tura = false;
- }
- //gracz 2 musi trafiac parzyste
- else{
- if (kostka % 2 == 0){
- wynik_2++;
- }
- tura = true;
- }
- delay(2000);
- }
- //wyniki
- digitalWrite(d2,LOW);
- digitalWrite(d1,LOW);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Gracz 1: ");
- lcd.print(wynik_1);
- lcd.setCursor(0,1);
- lcd.print("Gracz 2: ");
- lcd.print(wynik_2);
- delay(3000);
- lcd.clear();
- lcd.setCursor(0,0);
- if (wynik_1 == wynik_2){
- lcd.print("Remis");
- digitalWrite(d2,HIGH);
- digitalWrite(d1,HIGH);
- }
- else if(wynik_1 > wynik_2){
- lcd.print("Gracz 1 wygral");
- digitalWrite(d2,LOW);
- digitalWrite(d1,HIGH);
- }
- else{
- lcd.print("Gracz 2 wygral");
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- }
- delay(4000);
- digitalWrite(d2,LOW);
- digitalWrite(d1,LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement