Problem rozwiązany!
Co sądzicie o moim nowym kodzie?
KOD:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <PCF8574.h>
PCF8574 Expander1;
PCF8574 Expander2;
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
int StanP1[8], StanP2[8];
int intCzasDoStartu = 5;
int PlayerWin = 0;
int intRandom;
int intSprawdz;
int PktP[2];
int P1B[8] = {0, 1, 2, 3, 4, 5, 6, 7},
P2B[8] = {0, 1, 2, 3, 4, 5, 6, 7};
int const LpScens = 2;
String strScena[LpScens] = {
"Nacisnij guzik:",
"Punkt dla gracza"
};
int Losowanie(){
int randome = random(8);
lcd.clear();
lcd.print("Losowanie.");
delay(100);
lcd.print(".");
delay(200);
lcd.print(".");
delay(300);
lcd.print(".");
delay(440);
lcd.print(".");
delay(550);
lcd.print(".");
delay(2000);
return randome;
}
void LcdPrint(int NoScene, int Argum){
lcd.clear();
switch(NoScene){
case 0:
lcd.print(strScena[0]);
lcd.setCursor(0, 1);
lcd.print("P1:");
lcd.print(PktP[0]);
lcd.setCursor(7, 1);
lcd.print(Argum);
lcd.setCursor(11, 1);
lcd.print("P2:");
lcd.print(PktP[1]);
break;
case 1:
lcd.print(strScena[1]);
lcd.setCursor(0,1);
lcd.print("P1:");
lcd.print(PktP[0]);
lcd.setCursor(7, 1);
lcd.print(Argum + 1);
lcd.setCursor(11, 1);
lcd.print("P2:");
lcd.print(PktP[1]);
delay(1500);
break;
}
}
int Sprawdz(){
switch(intRandom){
case 0:
if(StanP1[0] == LOW)PlayerWin = 1;
if(StanP2[0] == LOW)PlayerWin = 2;
break;
case 1:
if(StanP1[1] == LOW)PlayerWin = 1;
if(StanP2[1] == LOW)PlayerWin = 2;
break;
case 2:
if(StanP1[2] == LOW)PlayerWin = 1;
if(StanP2[2] == LOW)PlayerWin = 2;
break;
case 3:
if(StanP1[3] == LOW)PlayerWin = 1;
if(StanP2[3] == LOW)PlayerWin = 2;
break;
case 4:
if(StanP1[4] == LOW)PlayerWin = 1;
if(StanP2[4] == LOW)PlayerWin = 2;
break;
case 5:
if(StanP1[5] == LOW)PlayerWin = 1;
if(StanP2[5] == LOW)PlayerWin = 2;
break;
case 6:
if(StanP1[6] == LOW)PlayerWin = 1;
if(StanP2[6] == LOW)PlayerWin = 2;
break;
case 7:
if(StanP1[7] == LOW)PlayerWin = 1;
if(StanP2[7] == LOW)PlayerWin = 2;
break;
}
return PlayerWin;
}
void setup() {
Expander1.begin(0x20);
Expander2.begin(0x24);
for(int i = 0; i < 8; i ++){
Expander1.pinMode(P1B[i], INPUT_PULLUP);
}
for(int i = 0; i < 8; i ++){
Expander2.pinMode(P2B[i], INPUT_PULLUP);
}
lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.print("Witaj w gierce!");
lcd.setCursor(0,1);
for(int i = intCzasDoStartu; i > 0; i--){
lcd.setCursor(11,1);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("Start za ");
lcd.print(i);
lcd.print("s");
delay(1000);
}
randomSeed(analogRead(0));
}
void loop() {
PlayerWin = 0;
intRandom = Losowanie();
LcdPrint(0, intRandom + 1);
while(PlayerWin == 0){
for(int i = 0; i < 8; i++){StanP1[i] = Expander1.digitalRead(P1B[i]);}
for(int i = 0; i < 8; i++){StanP2[i] = Expander2.digitalRead(P2B[i]);}
intSprawdz = Sprawdz();
if(intSprawdz == 1){
PlayerWin = 1;
PktP[0]++;
LcdPrint(1, 0);
}else if(intSprawdz == 2){
PlayerWin = 2;
PktP[1]++;
LcdPrint(1, 1);
}
}
}