Components and supplies
Nextion NX3224T024 - Generic 2.4'' TFT Intelligent LCD Touch Display
Arduino UNO
Apps and platforms
Arduino IDE
Project description
Code
TICTACDUINO
arduino
1//============================================== 2//======= CODIGO X MAURICIO BARUCH CHAVEZ ====== 3//============================================== 4//============ INCLUDES ======================= 5#include "TFTLCD.h" 6#include "TouchScreen.h" 7//============================================== 8//======= configuracion ======================== 9//============================================== 10#define YP A2 11#define XM A1 12#define YM 6 13#define XP 7 14//============================================== 15#define TS_MINX 150 16#define TS_MINY 120 17#define TS_MAXX 920 18#define TS_MAXY 940 19//============================================== 20#define MINPRESSURE 10 21#define MAXPRESSURE 1000 22//============ COLORES ========================= 23#define BLACK 0x0000 24#define BLUE 0x001F 25#define RED 0xF800 26#define GREEN 0x07E0 27#define CYAN 0x07FF 28#define MAGENTA 0xF81F 29#define YELLOW 0xFFE0 30#define WHITE 0xFFFF 31#define MARINO 0x000F /* 0, 0, 128 */ 32#define VERDE_O 0x03E0 /* 0, 128, 0 */ 33#define AZUL_O 0x03EF /* 0, 128, 128 */ 34#define Maroon 0x7800 /* 128, 0, 0 */ 35#define MORADO 0x780F /* 128, 0, 128 */ 36#define Olive 0x7BE0 /* 128, 128, 0 */ 37#define GRISCLARO 0xC618 /* 192, 192, 192 */ 38#define GRIS 0x7BEF /* 128, 128, 128 */ 39#define NARANJA 0xFD20 /* 255, 165, 0 */ 40#define VERDE_AM 0xAFE5 /* 173, 255, 47 */ 41#define ROSA 0xF81F 42//============ OBJETOS ======================= 43TouchScreen ts = TouchScreen(XP, YP, XM, YM, 600); 44//============================================== 45#define LCD_CS A3 46#define LCD_CD A2 47#define LCD_WR A1 48#define LCD_RD A0 49#define LCD_RESET A4 50TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); 51 52//============================================== 53 54//======================================= 55int currentcolor; 56int x, y; 57int turno = 0; 58int RESET = 0; 59int game = 0; 60int mensaje = 0; 61int mensaje2 = 0; 62int tablero = 0; 63int juego = 0; 64 65//======================================= 66int L11 = 0, L12 = 0, L13 = 0; 67int L21 = 0, L22 = 0, L23 = 0; 68int L31 = 0, L32 = 0, L33 = 0; 69//======================================= 70#define LIN1 55 71#define LIN2 120 72#define LIN3 185 73#define UNO 130 74#define DOS 196 75#define TRES 265 76#define DIAM 24 77#define BOTON 66 78#define TEXTCOLOR WHITE 79#define colorP1 GREEN 80#define colorP2 VERDE_O 81//============================================== 82//============ SUB_RUTINAS VOID ================ 83//============================================== 84void softReset(){ 85//asm volatile (" jmp 100"); 86turno = 0; 87RESET = 0; 88game = 0; 89mensaje = 0; 90mensaje2 = 0; 91tablero = 0; 92juego = 0; 93//======================================= 94L11 = 0, L12 = 0, L13 = 0; 95L21 = 0, L22 = 0, L23 = 0; 96L31 = 0, L32 = 0, L33 = 0; 97 98 tft.fillRoundRect(86,10,230,228,14,BLACK); 99 tft.drawRoundRect(86,10,224,218,14,VERDE_O); 100 tft.drawString(95,40,"<- 2 PLAYER",WHITE,2); 101 tft.drawString(95,110,"<- 1 PLAYER",WHITE,2); 102RESET=0; 103 104 loop(); 105} 106//== 1 ========================================= 107void turno2() 108{ 109 if (juego==2){ 110 if (turno == 1){delay(10);turno = 0; 111 112 tft.drawString(25,180,"TURNO",VERDE_O,1); 113 tft.drawString(20,200,"AZUL",VERDE_O,1); 114 delay(300); 115 tft.drawString(25,180,"TURNO",WHITE,1); 116 tft.drawString(20,200,"ARDUINO",WHITE,1);} 117 118 else if (turno == 0){delay(10); turno = 1; 119 tft.drawString(25,180,"TURNO",VERDE_O,1); 120 tft.drawString(20,200,"ARDUINO",VERDE_O,1); 121 delay(300); 122 tft.drawString(25,180,"TURNO",WHITE,1); 123 tft.drawString(20,200,"AZUL",WHITE,1);} 124 125 } 126if (juego==1){ 127 128 if (turno == 0){delay(10);turno = 1; 129 130 tft.drawString(15,180,"TURNO",VERDE_O,1); 131 tft.drawString(15,200,"AZUL",VERDE_O,1); 132 delay(300); 133 tft.drawString(15,180,"TURNO",WHITE,1); 134 tft.drawString(15,200,"ROJO",WHITE,1);} 135 136 else if (turno == 1){delay(10); turno = 0; 137 tft.drawString(15,180,"TURNO",VERDE_O,1); 138 tft.drawString(15,200,"ROJO",VERDE_O,1); 139 delay(300); 140 tft.drawString(15,180,"TURNO",WHITE,1); 141 tft.drawString(15,200,"AZUL",WHITE,1);} 142} 143} 144//== 2 ========================================= 145void ganaRojo () 146{ 147delay(4000); 148tft.drawHorizontalLine(98,88,200,BLACK); 149tft.drawHorizontalLine(98,154,200,BLACK); 150tft.drawVerticalLine(164,18,200,BLACK); 151tft.drawVerticalLine(230,18,200,BLACK); 152tft.fillRoundRect(86,10,224,218,14,BLACK); 153tft.drawRoundRect(86,10,224,218,14,VERDE_O); 154tft.drawString(120,50," GANA",WHITE,3); 155tft.drawString(120,100,"ARDUINO",WHITE,3); 156L11 = 1; 157L12 = 1; 158L13 = 1; 159L21 = 1; 160L22 = 1; 161L23 = 1; 162L31 = 1; 163L32 = 1; 164L33 = 1; 165delay(3000); 166RESET=1; 167softReset(); 168} 169//== 3 ========================================= 170void ganaVerde () { 171delay(4000); 172tft.drawHorizontalLine(98,88,200,BLACK); 173tft.drawHorizontalLine(98,154,200,BLACK); 174tft.drawVerticalLine(164,18,200,BLACK); 175tft.drawVerticalLine(230,18,200,BLACK); 176tft.fillRoundRect(86,10,224,218,14,BLACK); 177tft.drawRoundRect(86,10,224,218,14,VERDE_O); 178tft.drawString(120,50," GANA",WHITE,3); 179tft.drawString(120,100,"PLAYER 2",WHITE,3); 180L11 = 1; 181L12 = 1; 182L13 = 1; 183L21 = 1; 184L22 = 1; 185L23 = 1; 186L31 = 1; 187L32 = 1; 188L33 = 1; 189delay(3000); 190RESET=1; 191softReset(); 192} 193//== 3 ========================================= 194//== 4 ========================================= 195//=========RUTINA DIBUJA ARDUINO=============== 196 197void ARDU11(){ tft.fillCircle(UNO,LIN1,DIAM,VERDE_O); L11=4; turno2(); 198tft.drawString(UNO-17,LIN1-4,"- +",WHITE,2); 199tft.drawCircle(UNO-11,LIN1+2,11,WHITE); 200tft.drawCircle(UNO-11,LIN1+2,10,WHITE); 201tft.drawCircle(UNO+11,LIN1+2,11,WHITE); 202tft.drawCircle(UNO+11,LIN1+2,10,WHITE); 203 204} 205void ARDU12(){ tft.fillCircle(DOS,LIN1,DIAM,VERDE_O); L12=4; turno2(); 206tft.drawString(DOS-17,LIN1-4,"- +",WHITE,2); 207tft.drawCircle(DOS-11,LIN1+2,11,WHITE); 208tft.drawCircle(DOS-11,LIN1+2,10,WHITE); 209tft.drawCircle(DOS+11,LIN1+2,11,WHITE); 210tft.drawCircle(DOS+11,LIN1+2,10,WHITE); 211 212} 213 214void ARDU13(){ tft.fillCircle(TRES,LIN1,DIAM,VERDE_O); L13=4; turno2(); 215tft.drawString(TRES-17,LIN1-4,"- +",WHITE,2); 216tft.drawCircle(TRES-11,LIN1+2,11,WHITE); 217tft.drawCircle(TRES-11,LIN1+2,10,WHITE); 218tft.drawCircle(TRES+11,LIN1+2,11,WHITE); 219tft.drawCircle(TRES+11,LIN1+2,10,WHITE); 220} 221 222void ARDU21(){ tft.fillCircle(UNO,LIN2,DIAM,VERDE_O); L21=4; turno2(); 223tft.drawString(UNO-17,LIN2-4,"- +",WHITE,2); 224tft.drawCircle(UNO-11,LIN2+2,11,WHITE); 225tft.drawCircle(UNO-11,LIN2+2,10,WHITE); 226tft.drawCircle(UNO+11,LIN2+2,11,WHITE); 227tft.drawCircle(UNO+11,LIN2+2,10,WHITE); 228} 229void ARDU22(){ tft.fillCircle(DOS,LIN2,DIAM,VERDE_O); L22=4; turno2(); 230tft.drawString(DOS-17,LIN2-4,"- +",WHITE,2); 231tft.drawCircle(DOS-11,LIN2+2,11,WHITE); 232tft.drawCircle(DOS-11,LIN2+2,10,WHITE); 233tft.drawCircle(DOS+11,LIN2+2,11,WHITE); 234tft.drawCircle(DOS+11,LIN2+2,10,WHITE); 235} 236void ARDU23(){ tft.fillCircle(TRES,LIN2,DIAM,VERDE_O);L23=4; turno2(); 237tft.drawString(TRES-17,LIN2-4,"- +",WHITE,2); 238tft.drawCircle(TRES-11,LIN2+2,11,WHITE); 239tft.drawCircle(TRES-11,LIN2+2,10,WHITE); 240tft.drawCircle(TRES+11,LIN2+2,11,WHITE); 241tft.drawCircle(TRES+11,LIN2+2,10,WHITE); 242} 243 244void ARDU31(){ tft.fillCircle(UNO,LIN3,DIAM,VERDE_O); L31=4; turno2(); 245tft.drawString(UNO-17,LIN3-4,"- +",WHITE,2); 246tft.drawCircle(UNO-11,LIN3+2,11,WHITE); 247tft.drawCircle(UNO-11,LIN3+2,10,WHITE); 248tft.drawCircle(UNO+11,LIN3+2,11,WHITE); 249tft.drawCircle(UNO+11,LIN3+2,10,WHITE); 250} 251 252 253void ARDU32(){ tft.fillCircle(DOS,LIN3,DIAM,VERDE_O); L32=4; turno2(); 254tft.drawString(DOS-17,LIN3-4,"- +",WHITE,2); 255tft.drawCircle(DOS-11,LIN3+2,11,WHITE); 256tft.drawCircle(DOS-11,LIN3+2,10,WHITE); 257tft.drawCircle(DOS+11,LIN3+2,11,WHITE); 258tft.drawCircle(DOS+11,LIN3+2,10,WHITE); } 259 260void ARDU33(){tft.fillCircle(TRES,LIN3,DIAM,VERDE_O); L33=4; turno2(); 261tft.drawString(TRES-17,LIN3-4,"- +",WHITE,2); 262tft.drawCircle(TRES-11,LIN3+2,11,WHITE); 263tft.drawCircle(TRES-11,LIN3+2,10,WHITE); 264tft.drawCircle(TRES+11,LIN3+2,11,WHITE); 265tft.drawCircle(TRES+11,LIN3+2,10,WHITE); 266} 267 268//== 5 ====RUTINA DIBUJA CIRCULOS=============== 269 270void RL11(){ tft.fillCircle(UNO,LIN1,DIAM,RED); L11=4; turno2();} 271void RL12(){ tft.fillCircle(DOS,LIN1,DIAM,RED); L12=4; turno2();} 272void RL13(){ tft.fillCircle(TRES,LIN1,DIAM,RED); L13=4; turno2();} 273 274void RL21(){ tft.fillCircle(UNO,LIN2,DIAM,RED); L21=4; turno2();} 275void RL22(){ tft.fillCircle(DOS,LIN2,DIAM,RED); L22=4; turno2();} 276void RL23(){ tft.fillCircle(TRES,LIN2,DIAM,RED);L23=4; turno2();} 277 278void RL31(){ tft.fillCircle(UNO,LIN3,DIAM,RED); L31=4; turno2();} 279void RL32(){ tft.fillCircle(DOS,LIN3,DIAM,RED); L32=4; turno2();} 280void RL33(){tft.fillCircle(TRES,LIN3,DIAM,RED); L33=4; turno2();} 281//--------------------------------------------------------------------------- 282void VL11(){ tft.fillCircle(UNO,LIN1,DIAM,BLUE); L11=3; turno2();} 283void VL12(){ tft.fillCircle(DOS,LIN1,DIAM,BLUE); L12=3; turno2();} 284void VL13(){ tft.fillCircle(TRES,LIN1,DIAM,BLUE); L13=3; turno2();} 285 286void VL21(){ tft.fillCircle(UNO,LIN2,DIAM,BLUE); L21=3; turno2();} 287void VL22(){ tft.fillCircle(DOS,LIN2,DIAM,BLUE); L22=3; turno2();} 288void VL23(){ tft.fillCircle(TRES,LIN2,DIAM,BLUE);L23=3; turno2();} 289 290void VL31(){ tft.fillCircle(UNO,LIN3,DIAM,BLUE); L31=3; turno2();} 291void VL32(){ tft.fillCircle(DOS,LIN3,DIAM,BLUE); L32=3; turno2();} 292void VL33(){tft.fillCircle(TRES,LIN3,DIAM,BLUE); L33=3; turno2();} 293 294//== 6 ============ SELECTOR ============================= 295void selector(){ 296 297if (x > 10 && x < 66 && y > 10 && y < 66) //H 298{game=1;mensaje=1;} 299 300if (x > 76 && x < 142 && y > 10 && y < 66) //H 301{ game=1;mensaje=2;} 302 303//if (x > 152 && x < 218 && y > 10 && y < 66) //H 304//{ tft.drawString(200,100,"H1",YELLOW,5);} 305 306 } 307void juego1(){ 308//========================================================================================= 309//========== BOTONERIA OK ================================================================= 310//========================================================================================= 311 312 313if (turno== 1){ 314 315 if (x > 0 && x < 88 && y > 98 && y < 164) // BOTON 11 //OK 316 { if (L11 == 0) {RL11(); tft.drawString(UNO-10,LIN1-5,"P2",TEXTCOLOR,2);} } 317 318 else if (x > 0 && x < 88 && y > 164 && y < 230) // BOTON 11 //OK 319 { if (L12 == 0) {RL12(); tft.drawString(DOS-10,LIN1-5,"P2",TEXTCOLOR,2);}} 320 321 else if (x > 0 && x < 88 && y > 230 && y < 296) // BOTON 11 //OK 322 { if (L13 == 0) {RL13(); tft.drawString(TRES-10,LIN1-5,"P2",TEXTCOLOR,2);}} 323//----------------------------------------------------------------------------------------- 324 325 else if (x > 88 && x < 154 && y > 98 && y < 164) // BOTON 11 //OK 326 { if (L21 == 0) {RL21(); tft.drawString(UNO-10,LIN2-5,"P2",TEXTCOLOR,2);}} 327 328 else if (x > 88 && x < 154 && y > 164 && y < 230) // BOTON 11 //OK 329 { if (L22 == 0) {RL22(); tft.drawString(DOS-10,LIN2-5,"P2",TEXTCOLOR,2);}} 330 331 else if (x > 88 && x < 154 && y > 230 && y < 296) // BOTON 11 //OK 332 { if (L23 == 0) {RL23(); tft.drawString(TRES-10,LIN2-5,"P2",TEXTCOLOR,2);}} 333 334//----------------------------------------------------------------------------------------- 335 336 else if (x > 154 && x < 220 && y > 98 && y < 164) // BOTON 11 //OK 337 { if (L31 == 0) {RL31(); tft.drawString(UNO-10,LIN3-5,"P2",TEXTCOLOR,2);}} 338 339 else if (x > 154 && x < 220 && y > 164 && y < 230) // BOTON 11 //OK 340 { if (L32 == 0) {RL32(); tft.drawString(DOS-10,LIN3-5,"P2",TEXTCOLOR,2);}} 341 342 else if (x > 154 && x < 220 && y > 230 && y < 296) // BOTON 11 //OK 343 { if (L33 == 0) {RL33(); tft.drawString(TRES-10,LIN3-5,"P2",TEXTCOLOR,2);}} 344} 345 346//========================================================================================= 347//========== BOTONERIA OK ================================================================= 348//========================================================================================= 349if (turno== 0){ 350 351 if (x > 0 && x < 88 && y > 98 && y < 164) // BOTON 11 //OK 352 { if (L11 == 0) {VL11(); tft.drawString(UNO-10,LIN1-5,"P1",TEXTCOLOR,2);}} 353 354 else if (x > 0 && x < 88 && y > 164 && y < 230) // BOTON 11 //OK 355 { if (L12 == 0) {VL12(); tft.drawString(DOS-10,LIN1-5,"P1",TEXTCOLOR,2);}} 356 357 else if (x > 0 && x < 88 && y > 230 && y < 296) // BOTON 11 //OK 358 { if (L13 == 0) {VL13(); tft.drawString(TRES-10,LIN1-5,"P1",TEXTCOLOR,2);}} 359//----------------------------------------------------------------------------------------- 360 361 else if (x > 88 && x < 154 && y > 98 && y < 164) // BOTON 11 //OK 362 { if (L21 == 0) {VL21(); tft.drawString(UNO-10,LIN2-5,"P1",TEXTCOLOR,2);}} 363 364 else if (x > 88 && x < 154 && y > 164 && y < 230) // BOTON 11 //OK 365 { if (L22 == 0) {VL22(); tft.drawString(DOS-10,LIN2-5,"P1",TEXTCOLOR,2);}} 366 367 else if (x > 88 && x < 154 && y > 230 && y < 296) // BOTON 11 //OK 368 { if (L23 == 0) {VL23(); tft.drawString(TRES-10,LIN2-5,"P1",TEXTCOLOR,2);}} 369 370//----------------------------------------------------------------------------------------- 371 372 else if (x > 154 && x < 220 && y > 98 && y < 164) // BOTON 11 //OK 373 { if (L31 == 0) {VL31(); tft.drawString(UNO-10,LIN3-5,"P1",TEXTCOLOR,2);}} 374 375 else if (x > 154 && x < 220 && y > 164 && y < 230) // BOTON 11 //OK 376 { if (L32 == 0) {VL32(); tft.drawString(DOS-10,LIN3-5,"P1",TEXTCOLOR,2);}} 377 378 else if (x > 154 && x < 220 && y > 230 && y < 296) // BOTON 11 //OK 379 { if (L33 == 0) {VL33(); tft.drawString(TRES-10,LIN3-5,"P1",TEXTCOLOR,2);}} 380} 381 } 382void borrar(){ 383 384 tft.fillRoundRect(86,10,230,228,14,BLACK); 385 tft.drawRoundRect(86,10,224,218,14,VERDE_O); 386 tft.drawString(95,40,"<- 2 PLAYER",WHITE,2); 387 tft.drawString(95,110,"<- 1 PLAYER",WHITE,2); 388RESET=0; 389 } 390void gato(){ 391tft.fillRoundRect(86,10,230,228,14,BLACK); 392tft.drawRoundRect(86,10,224,218,14,VERDE_O); 393tft.drawString(100,100,"!!GATOOO!!",YELLOW,3); 394} 395void gana(){ 396 397//===================== LINEA 1 ================================== 398if (L11+L12+L13 == 12){ 399//tft.fillRect(95,50,200,6,YELLOW); 400 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 401 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 402 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 403 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 404 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 405 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 406 ganaRojo();} 407 408else if (L11+L12+L13 == 9){ 409 //tft.fillRect(96,50,200,4,YELLOW); 410 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 411 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 412 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 413 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 414 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 415 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 416 ganaVerde();} 417//====================== LINEA 2 ================================= 418else if (L21+L22+L23 == 12){ 419 //tft.fillRect(95,120,200,4,BLUE); 420 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 421 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 422 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 423 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 424 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 425 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 426 ganaRojo();} 427else if (L21+L22+L23 == 9){ 428 //tft.fillRect(95,120,200,4,YELLOW); 429 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 430 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 431 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 432 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 433 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 434 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 435 ganaVerde();} 436//======================= LINEA 3 ================================= 437else if (L31+L32+L33 == 12){ 438 //tft.fillRect(95,190,200,4,YELLOW); 439 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 440 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 441 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 442 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 443 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 444 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 445 ganaRojo();} 446else if (L31+L32+L33 == 9){ 447 //tft.fillRect(95,190,200,4,YELLOW); 448 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 449 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 450 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 451 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 452 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 453 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 454 ganaVerde();} 455 456//=======================HORIZONTAL 1================================ 457 458else if (L11+L21+L31 == 12){ 459 //tft.fillRect(125,20,4,200,MAGENTA); 460 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 461 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 462 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 463 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 464 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 465 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 466 ganaRojo();} 467else if (L11+L21+L31 == 9){ 468 //tft.fillRect(125,20,4,200,MAGENTA); 469 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 470 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 471 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 472 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 473 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 474 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 475 ganaVerde();} 476 //=======================HORIZONTAL 2================================ 477 else if (L12+L22+L32 == 12){ 478 //tft.fillRect(120,20,4,200,YELLOW); 479 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 480 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 481 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 482 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 483 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 484 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 485 ganaRojo();} 486 else if (L12+L22+L32 == 9){ 487 //tft.fillRect(195,20,4,200,YELLOW); 488 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 489 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 490 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 491 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 492 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 493 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 494 ganaVerde();} 495//=======================HORIZONTAL 3================================ 496 else if (L13+L23+L33 == 12){ 497 //tft.fillRect(265,20,200,4,YELLOW); 498 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 499 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 500 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 501 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 502 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 503 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 504 ganaRojo();} 505 else if (L13+L23+L33 == 9){ 506 //tft.fillRect(265,20,4,200,YELLOW); 507 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 508 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 509 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 510 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 511 tft.fillCircle(DOS, LIN2, DIAM, BLACK); 512 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 513 ganaVerde();} 514//=======================X 2================================ 515 516//----------------------------- 517else if (L11+L22+L33 == 12){ 518 //tft.drawLine(10,100,20,100,YELLOW); 519 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 520 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 521 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 522 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 523 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 524 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 525 ganaRojo();} 526 else if (L11+L22+L33 == 9){ 527 //tft.drawLine(10,100,20,100,YELLOW); 528 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 529 tft.fillCircle(TRES, LIN1, DIAM, BLACK); 530 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 531 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 532 tft.fillCircle(UNO, LIN3, DIAM, BLACK); 533 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 534 ganaVerde();} 535 536else if (L31+L22+L13 == 12){ 537 //tft.drawLine(10,100,20,100,YELLOW); 538 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 539 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 540 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 541 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 542 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 543 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 544 ganaRojo();} 545else if (L31+L22+L13 == 9){ 546 // L a l a 547 //tft.drawVerticalLine(125,190,200,RED); 548 tft.fillCircle(DOS, LIN1, DIAM, BLACK); 549 tft.fillCircle(UNO, LIN1, DIAM, BLACK); 550 tft.fillCircle(UNO, LIN2, DIAM, BLACK); 551 tft.fillCircle(TRES, LIN2, DIAM, BLACK); 552 tft.fillCircle(TRES, LIN3, DIAM, BLACK); 553 tft.fillCircle(DOS, LIN3, DIAM, BLACK); 554 ganaVerde();} 555//====================================== 556 557if (L11+L12+L13+L21+L22+L23+L31+L32+L33>31) {delay(500); gato(); delay(5000); softReset();} 558 559 } 560 void mensajes(){ 561 tft.drawString(95,40,"<- 2 PLAYER",BLACK,2); 562 tft.drawString(95,110,"<- 1 PLAYER",BLACK,2); 563 564 tft.drawString(120,50,"JUGADOR 1",WHITE,3); 565 tft.drawString(120,100," VS",WHITE,3); 566 tft.drawString(120,150,"JUGADOR 2",WHITE,3); 567 delay(4000); 568 tft.drawString(120,50,"JUGADOR 1",BLACK,3); 569 tft.drawString(120,100," VS",BLACK,3); 570 tft.drawString(120,150,"JUGADOR 2",BLACK,3); 571 delay(1000); 572 game=1;mensaje=0;tablero=1;juego=1; 573 } 574 void mensajes2(){ 575 tft.drawString(95,40,"<- 2 PLAYER",BLACK,2); 576 tft.drawString(95,110,"<- 1 PLAYER",BLACK,2); 577 578 tft.drawString(140,50,"JUGADOR",WHITE,3); 579 tft.drawString(140,100," VS",WHITE,3); 580 tft.drawString(140,150,"ARDUINO",WHITE,3); 581 delay(4000); 582 tft.drawString(140,50,"JUGADOR 1",BLACK,3); 583 tft.drawString(140,100," VS",BLACK,3); 584 tft.drawString(140,150,"ARDUINO",BLACK,3); 585 delay(1000); 586 game=1;mensaje=0;tablero=1;juego=2; 587 } 588void tablero1(){ 589 delay(1000); 590tft.drawHorizontalLine(98,88,200,WHITE); 591tft.drawHorizontalLine(98,154,200,WHITE); 592tft.drawVerticalLine(164,18,200,WHITE); 593tft.drawVerticalLine(230,18,200,WHITE); 594game=1;mensaje=0;tablero=0; 595 596 } 597 void juego2(){ 598 //========================================================================================= 599//========== BOTONERIA OK ================================================================= 600//========================================================================================= 601tablero=0; 602if (turno==1){ 603 604 if (x > 0 && x < 88 && y > 98 && y < 164) // BOTON 11 //OK 605 { if (L11 == 0) {VL11();} tft.drawString(UNO-10,LIN1-5,"P2",TEXTCOLOR,2);} 606 607 else if (x > 0 && x < 88 && y > 164 && y < 230) // BOTON 11 //OK 608 { if (L12 == 0) {VL12();} tft.drawString(DOS-10,LIN1-5,"P2",TEXTCOLOR,2);} 609 610 else if (x > 0 && x < 88 && y > 230 && y < 296) // BOTON 11 //OK 611 { if (L13 == 0) {VL13();} tft.drawString(TRES-10,LIN1-5,"P2",TEXTCOLOR,2);} 612//----------------------------------------------------------------------------------------- 613 614 else if (x > 88 && x < 154 && y > 98 && y < 164) // BOTON 11 //OK 615 { if (L21 == 0) {VL21();} tft.drawString(UNO-10,LIN2-5,"P2",TEXTCOLOR,2);} 616 617 else if (x > 88 && x < 154 && y > 164 && y < 230) // BOTON 11 //OK 618 { if (L22 == 0) {VL22();} tft.drawString(DOS-10,LIN2-5,"P2",TEXTCOLOR,2);} 619 620 else if (x > 88 && x < 154 && y > 230 && y < 296) // BOTON 11 //OK 621 { if (L23 == 0) {VL23();} tft.drawString(TRES-10,LIN2-5,"P2",TEXTCOLOR,2);} 622 623//----------------------------------------------------------------------------------------- 624 625 else if (x > 154 && x < 220 && y > 98 && y < 164) // BOTON 11 //OK 626 { if (L31 == 0) {VL31();} tft.drawString(UNO-10,LIN3-5,"P2",TEXTCOLOR,2);} 627 628 else if (x > 154 && x < 220 && y > 164 && y < 230) // BOTON 11 //OK 629 { if (L32 == 0) {VL32();} tft.drawString(DOS-10,LIN3-5,"P2",TEXTCOLOR,2);} 630 631 else if (x > 154 && x < 220 && y > 230 && y < 296) // BOTON 11 //OK 632 { if (L33 == 0) {VL33();} tft.drawString(TRES-10,LIN3-5,"P2",TEXTCOLOR,2);} 633} 634 } 635void inteligencia(){ 636 637if (turno==0){ 638 639 if (L12 == 3 && L22 == 3 ){if (L32==0) {ARDU32();}} 640 if (L22 == 3 && L23 == 3 ){if (L21==0) {ARDU21();}} 641//----------------------------------- 642 643 if (L11 == 4 && L13 == 4 ){if (L12==0) {ARDU12();}} 644 645 if (L13 == 4 && L33 == 4 ){if (L23==0) {ARDU23();}} 646 647 if (L33 == 4 && L31 == 4 ){if (L32==0) {ARDU32();}} 648 649 if (L31 == 4 && L11 == 4 ){if (L21==0) {ARDU21();}} 650 651 if (L11 == 4 && L33 == 4 ){if (L22==0) {ARDU22();}} 652 653 if (L31 == 4 && L13 == 4 ){if (L22==0) {ARDU22();}} 654 655//------------------------------------ 656 657 658 if (L13 == 3 && L33 == 3 ){if (L23==0) {ARDU23();}} 659 660 if (L33 == 3 && L31 == 3 ){if (L32==0) {ARDU32();}} 661 662 if (L31 == 3 && L11 == 3 ){if (L21==0) {ARDU21();}} 663 664 if (L11 == 3 && L33 == 3 ){if (L22==0) {ARDU22();}} 665 666 if (L31 == 3 && L13 == 3 ){if (L22==0) {ARDU22();}} 667 668 669 670 671 672//----------------------------------- 673 674 if (turno+L11 == 0){ARDU11();} 675else if (turno+L13 == 0){ARDU13();} 676else if (turno+L33 == 0){ARDU33();} 677else if (turno+L31 == 0){ARDU31();} 678 679else if (turno+L21 == 0){ARDU21();} 680else if (turno+L22 == 0){ARDU22();} 681else if (turno+L32 == 0){ARDU32();} 682else if (turno+L23 == 0){ARDU23();} 683else if (turno+L12 == 0){ARDU12();} 684 685 686//----------------------------------- 687else if (turno+L11 == 0){ARDU11();} 688else if (turno+L12 == 0){ARDU12();} 689else if (turno+L13 == 0){ARDU13();} 690//----------------------------------- 691else if (turno+L21 == 0){ARDU21();} 692else if (turno+L22 == 0){ARDU22();} 693else if (turno+L23 == 0){ARDU23();} 694//----------------------------------- 695else if (turno+L31 == 0){ARDU31();} 696else if (turno+L32 == 0){ARDU32();} 697else if (turno+L33 == 0){ARDU33();} 698//----------------------------------- 699} 700 } 701//============================================== 702//================== SETUP ===================== 703//============================================== 704 705void setup() 706{ 707 Serial.begin(9600); 708 tft.reset(); 709 tft.initDisplay(); 710 tft.setRotation(1); 711 tft.fillScreen(BLACK); 712 tft.drawRoundRect(0,0,320,240,14,VERDE_O); 713//-------------------------------------- 714tft.fillRoundRect(10,162,BOTON,BOTON,12,VERDE_O); 715tft.fillRoundRect(10,86,BOTON,BOTON,12,VERDE_O); 716tft.fillRoundRect(10,10,BOTON,BOTON,12,VERDE_O); 717//-------------------------------------- 718tft.drawRoundRect(10,162,BOTON,BOTON,13,GRISCLARO ); 719tft.drawRoundRect(10,86,BOTON,BOTON,13,GRISCLARO); 720tft.drawRoundRect(10,10,BOTON,BOTON,13,GRISCLARO); 721//-------------------------------------- 722tft.drawRoundRect(86,10,224,218,14,VERDE_O); 723//-------------------------------------- 724//tft.drawHorizontalLine(98,88,200,GRIS ); 725//tft.drawHorizontalLine(98,154,200,GRIS_O ); 726//tft.drawVerticalLine(164,18,200,GRIS ); 727//tft.drawVerticalLine(230,18,200,GRIS ); 728 729 730 tft.drawString(35,25,"2",TEXTCOLOR,3); 731 tft.drawString(25,55,"PLAYER",TEXTCOLOR,1); 732 733 tft.drawString(35,101,"1",TEXTCOLOR,3); 734 tft.drawString(25,131,"PLAYER",TEXTCOLOR,1); 735 736 tft.drawString(95,30,"GATO, TIC TAC TOE",VERDE_O,2); 737 tft.drawString(95,60,"CODIGO DE MAURICIO BARUCH CHAVEZ",VERDE_O,1); 738 tft.drawString(95,80,"PARA ARDUINO UNO",VERDE_O,1); 739 tft.drawString(95,100,"TFT DRIVER 7783",VERDE_O,1); 740 tft.drawString(95,120," ",VERDE_O,1); 741 tft.drawString(95,140," ",VERDE_O,1); 742 tft.drawString(95,160,"mbaru2k@hotmail.com",VERDE_O,1); 743 tft.drawString(95,180,"MEXICO 19 DE SEPTIEMBRE 2017",VERDE_O,1); 744 delay(5000); 745 tft.drawString(95,30,"GATO, TIC TAC TOE",BLACK,2); 746 tft.drawString(95,60,"CODIGO DE MAURICIO BARUCH CHAVEZ",BLACK,1); 747 tft.drawString(95,80,"PARA ARDUINO UNO",BLACK,1); 748 tft.drawString(95,100,"TFT DRIVER 7783",BLACK,1); 749 tft.drawString(95,120," ",BLACK,1); 750 tft.drawString(95,140," ",BLACK,1); 751 tft.drawString(95,160,"mbaru2k@hotmail.com",BLACK,1); 752 tft.drawString(95,180,"MEXICO 19 DE SEPTIEMBRE 2017",BLACK,1); 753 754 tft.drawString(95,40,"<- 2 PLAYER",WHITE,2); 755 tft.drawString(95,110,"<- 1 PLAYER",WHITE,2); 756 757 758 759} 760//============================================== 761//================== LOOP ====================== 762//============================================== 763void loop() 764{ 765 Point p = ts.getPoint(); 766 pinMode(XM, OUTPUT); 767 pinMode(YP, OUTPUT); 768 if (p.z > MINPRESSURE && p.z < MAXPRESSURE) 769 { 770 x = map(p.x, TS_MAXX,TS_MINX, 0, 240); 771 y = map(p.y, TS_MINY,TS_MAXY, 0, 320); 772 } 773 if (turno == 0) {currentcolor = RED;} 774 if (turno == 1){currentcolor = GREEN;} 775 776 if (game==0){selector();} 777 if (mensaje ==1){mensajes();} 778 if (mensaje ==2){mensajes2();} 779 if (tablero ==1){tablero1();} 780 if (juego ==1){tft.drawRoundRect(10,10,BOTON,BOTON,13,WHITE);juego1();} 781 if (juego ==2){tft.drawRoundRect(10,10,BOTON,BOTON,13,WHITE);juego2();inteligencia();} 782 783 784gana(); 785} 786//============================================== 787//================== FIN ======================= 788//============================================== 789
Comments
Only logged in users can leave comments
BARUCH2K
0 Followers
•0 Projects
Table of contents
Intro
3
0