Tic Tac Toe Arduino (3 / 3 steg)
Steg 3: kod
int computerArray [10] = {2,3,4,5,6,7,8,9,10}.
TypeDef fasttexttypen {
ÖPPNA,
CLOSED_C,
CLOSED_P
}
BoxState;
int vända = 0;
int switchArray [10] = {
11,12,13,14,15,16,17,18,19}.
int switchArray2 [10] = {
2,3,4,5,6,7,8,9,10}.
void setup() {
int i;
int e;
Serial.BEGIN(9600);
randomSeed(analogRead(0));
för (jag = 0; jag < 9; jag + = 1) {
pinMode (switchArray [i], ingång);
}
för (e = 0; e < 9; e += 1) {
pinMode (switchArray2 [e], utgång);
}
}
BoxState ruta 1 = öppna;
BoxState box2 = öppna;
BoxState box3 = öppna;
BoxState box4 = öppen;
BoxState box5 = öppen;
BoxState box6 = öppen;
BoxState box7 = öppen;
BoxState box8 = öppen;
BoxState box9 = öppen;
int spel = 1;
int matris1 [9] = {13,19,16,13,12,11,13,11}.
int matris2 [9] = {12,14,17,19,14,15,14,14}.
int Array3 [9] = {11,15,18,16,17,18,18,16}.
void checkGame() {
int q;
för (q = 0; q < 8; q + = 1) {
IF(digitalRead(Array1[q]) == hög & & digitalRead(Array2[q]) & & digitalRead(Array3[q])) {
spel = 2;
}
}
}
void checkComputerWin() {
om (vända %2 == 1) {
om (ruta 1 == CLOSED_C & & box2 == CLOSED_C & & box3 == öppen) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
spel = 0;
vända + = 1;
}
annars om (ruta 1 == CLOSED_C & & box3 == CLOSED_C & & box2 == öppen) {
box2 = CLOSED_C;
digitalWrite(8,HIGH);
spel = 0;
vända + = 1;
}
annars om (box3 == CLOSED_C & & box2 == CLOSED_C & & ruta 1 == öppen) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
spel = 0;
vända + = 1;
}
annat if (box4 == CLOSED_C & & box5 == CLOSED_C & & box6 == öppen) {
box6 = CLOSED_C;
digitalWrite(4,HIGH);
spel = 0;
vända + = 1;
}
annat if (box5 == CLOSED_C & & box6 == CLOSED_C & & box4 == öppen) {
box4 = CLOSED_C;
digitalWrite(6,HIGH);
spel = 0;
vända + = 1;
}
annat if (box4 == CLOSED_C & & box6 == CLOSED_C & & box5 == öppen) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
spel = 0;
vända + = 1;
}
annat if (box7 == CLOSED_C & & box8 == CLOSED_C & & box9 == öppen) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
spel = 0;
vända + = 1;
}
annat if (box8 == CLOSED_C & & box9 == CLOSED_C & & box7 == öppen) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
spel = 0;
vända + = 1;
}
annat if (box7 == CLOSED_C & & box9 == CLOSED_C & & box8 == öppen) {
box8 = CLOSED_C;
digitalWrite(2,HIGH);
spel = 0;
vända + = 1;
}
annars om (ruta 1 == CLOSED_C & & box4 == CLOSED_C & & box7 == öppen) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
spel = 0;
vända + = 1;
}
annars om (ruta 1 == CLOSED_C & & box7 == CLOSED_C & & box4 == öppen) {
box4 = CLOSED_C;
digitalWrite(6,HIGH);
spel = 0;
vända + = 1;
}
annat if (box4 == CLOSED_C & & box7 == CLOSED_C & & ruta 1 == öppen) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
spel = 0;
vända + = 1;
}
annat if (box5 == CLOSED_C & & box2 == CLOSED_C & & box8 == öppen) {
box8 = CLOSED_C;
digitalWrite(2,HIGH);
spel = 0;
vända + = 1;
}
annat if (box8 == CLOSED_C & & box2 == CLOSED_C & & box5 == öppen) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
spel = 0;
vända + = 1;
}
annat if (box5 == CLOSED_C & & box8 == CLOSED_C & & box2 == öppen) {
box2 = CLOSED_C;
digitalWrite(8,HIGH);
spel = 0;
vända + = 1;
}
annars om (box3 == CLOSED_C & & box6 == CLOSED_C & & box9 == öppen) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
spel = 0;
vända + = 1;
}
annat if (box6 == CLOSED_C & & box9 == CLOSED_C & & box3 == öppen) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
spel = 0;
vända + = 1;
}
annars om (box3 == CLOSED_C & & box9 == CLOSED_C & & box6 == öppen) {
box6 = CLOSED_C;
digitalWrite(4,HIGH);
spel = 0;
vända + = 1;
}
annars om (ruta 1 == CLOSED_C & & box5 == CLOSED_C & & box9 == öppen) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
spel = 0;
vända + = 1;
}
annat if (box5 == CLOSED_C & & box9 == CLOSED_C & & ruta 1 == öppen) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
spel = 0;
vända + = 1;
}
annat if (box9 == CLOSED_C & & ruta 1 == CLOSED_C & & box5 == öppen) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
spel = 0;
vända + = 1;
}
annars om (box3 == CLOSED_C & & box5 == CLOSED_C & & box7 == öppen) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
spel = 0;
vända + = 1;
}
annat if (box7 == CLOSED_C & & box5 == CLOSED_C & & box3 == öppen) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
spel = 0;
vända + = 1;
}
annars om (box3 == CLOSED_C & & box7 == CLOSED_C & & box5 == öppen) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
spel = 0;
vända + = 1;
}
}
}
void checkPlayerWin() {
om (ruta 1 == CLOSED_P & & box2 == CLOSED_P & & box3 == öppna & & tur %2 == 1) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
vända + = 1;
}
om (ruta 1 == CLOSED_P & & box3 == CLOSED_P & & box2 == öppna & & tur %2 == 1) {
box2 = CLOSED_C;
digitalWrite(8,HIGH);
vända + = 1;
}
om (box3 == CLOSED_P & & box2 == CLOSED_P & & ruta 1 == Öppna & & tur %2 == 1) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
vända + = 1;
}
om (box4 == CLOSED_P & & box5 == CLOSED_P & & box6 == öppna & & tur %2 == 1) {
box6 = CLOSED_C;
digitalWrite(4,HIGH);
vända + = 1;
}
om (box5 == CLOSED_P & & box6 == CLOSED_P & & box4 == öppna & & tur %2 == 1) {
box4 = CLOSED_C;
digitalWrite(6,HIGH);
vända + = 1;
}
om (box4 == CLOSED_P & & box6 == CLOSED_P & & box5 == öppna & & tur %2 == 1) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
vända + = 1;
}
om (box7 == CLOSED_P & & box8 == CLOSED_P & & box9 == öppna & & tur %2 == 1) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
vända + = 1;
}
om (box8 == CLOSED_P & & box9 == CLOSED_P & & box7 == öppna & & tur %2 == 1) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
vända + = 1;
}
om (box7 == CLOSED_P & & box9 == CLOSED_P & & box8 == öppna & & tur %2 == 1) {
box8 = CLOSED_C;
digitalWrite(2,HIGH);
vända + = 1;
}
om (ruta 1 == CLOSED_P & & box4 == CLOSED_P & & box7 == öppna & & tur %2 == 1) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
vända + = 1;
}
om (ruta 1 == CLOSED_P & & box7 == CLOSED_P & & box4 == öppna & & tur %2 == 1) {
box4 = CLOSED_C;
digitalWrite(6,HIGH);
vända + = 1;
}
om (box4 == CLOSED_P & & box7 == CLOSED_P & & ruta 1 == Öppna & & tur %2 == 1) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
vända + = 1;
}
om (box5 == CLOSED_P & & box2 == CLOSED_P & & box8 == öppna & & tur %2 == 1) {
box8 = CLOSED_C;
digitalWrite(2,HIGH);
vända + = 1;
}
om (box8 == CLOSED_P & & box2 == CLOSED_P & & box4 == öppna & & tur %2 == 1) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
vända + = 1;
}
om (box5 == CLOSED_P & & box8 == CLOSED_P & & box2 == öppna & & tur %2 == 1) {
box2 = CLOSED_C;
digitalWrite(8,HIGH);
vända + = 1;
}
om (box3 == CLOSED_P & & box6 == CLOSED_P & & box9 == öppna & & tur %2 == 1) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
vända + = 1;
}
om (box6 == CLOSED_P & & box9 == CLOSED_P & & box3 == öppna & & tur %2 == 1) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
vända + = 1;
}
om (box3 == CLOSED_P & & box9 == CLOSED_P & & box6 == öppna & & tur %2 == 1) {
box6 = CLOSED_C;
digitalWrite(4,HIGH);
vända + = 1;
}
om (ruta 1 == CLOSED_P & & box5 == CLOSED_P & & box9 == öppna & & tur %2 == 1) {
box9 = CLOSED_C;
digitalWrite(10,HIGH);
vända + = 1;
}
om (box5 == CLOSED_P & & box9 == CLOSED_P & & ruta 1 == Öppna & & tur %2 == 1) {
ruta 1 = CLOSED_C;
digitalWrite(9,HIGH);
vända + = 1;
}
om (box9 == CLOSED_P & & ruta 1 == CLOSED_P & & box5 == öppna & & tur %2 == 1) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
vända + = 1;
}
om (box3 == CLOSED_P & & box5 == CLOSED_P & & box7 == öppna & & tur %2 == 1) {
box7 = CLOSED_C;
digitalWrite(3,HIGH);
vända + = 1;
}
om (box7 == CLOSED_P & & box5 == CLOSED_P & & box3 == öppna & & tur %2 == 1) {
box3 = CLOSED_C;
digitalWrite(7,HIGH);
vända + = 1;
}
om (box3 == CLOSED_P & & box7 == CLOSED_P & & box5 == öppna & & tur %2 == 1) {
box5 = CLOSED_C;
digitalWrite(5,HIGH);
vända + = 1;
}
}
void playRandom() {
int sprang = random(0,90);
om (sprang < = 10 & & ruta 1 == Öppna & & tur %2 == 1) {
ruta 1 = CLOSED_C;
vända + = 1;
digitalWrite(9,HIGH);
}
om (sprang < = 20 & & sprang > 10 & & box2 == öppna & & tur %2 == 1) {
box2 = CLOSED_C;
vända + = 1;
digitalWrite(8,HIGH);
}
om (sprang < = 30 & & sprang > 20 & & box3 == öppna & & tur %2 == 1) {
box3 = CLOSED_C;
vända + = 1;
digitalWrite(7,HIGH);
}
om (sprang < = 40 & & sprang > 30 & & box4 == öppna & & tur %2 == 1) {
box4 = CLOSED_C;
vända + = 1;
digitalWrite(6,HIGH);
}
om (sprang < = 50 & & sprang > 40 & & box5 == öppna & & tur %2 == 1) {
box5 = CLOSED_C;
vända + = 1;
digitalWrite(5,HIGH);
}
om (sprang < = 60 & & sprang > 50 & & box6 == öppna & & tur %2 == 1) {
box6 = CLOSED_C;
vända + = 1;
digitalWrite(4,HIGH);
}
om (sprang < = 70 & & sprang > 60 & & box7 == öppna & & tur %2 == 1) {
box7 = CLOSED_C;
vända + = 1;
digitalWrite(3,HIGH);
}
om (sprang < = 80 & & sprang > 70 & & box8 == öppna & & tur %2 == 1) {
box8 = CLOSED_C;
vända + = 1;
digitalWrite(2,HIGH);
}
om (sprang < = 90 & & sprang > 80 & & box9 == öppna & & tur %2 == 1) {
box9 = CLOSED_C;
vända + = 1;
digitalWrite(10,HIGH);
}
}
void loop() {
om (vända %2 == 0) {
IF(digitalRead(19) == hög & & box4 == öppen) {
box4 = CLOSED_P;
vända + = 1;
}
om (digitalRead (11) == hög & & box3 == öppen) {
box3 = CLOSED_P;
vända + = 1;
}
om (digitalRead (12) == hög & & box2 == öppen) {
box2 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(13) == hög & & ruta 1 == öppen) {
ruta 1 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(14) == hög & & box5 == öppen) {
box5 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(15) == hög & & box6 == öppen) {
box6 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(16) == hög & & box7 == öppen) {
box7 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(17) == hög & & box8 == öppen) {
box8 = CLOSED_P;
vända + = 1;
}
IF(digitalRead(18) == hög & & box9 == öppen) {
box9 = CLOSED_P;
vända + = 1;
}
}
om (vända %2 == 1) {
checkComputerWin();
checkPlayerWin();
playRandom();
}
checkGame();
om (spel == 0 || spel == 2) {
Delay(2000);
int t;
för (t = 0; t < 9; t += 1) {
digitalWrite(computerArray[t],HIGH);
}
}
}