ENIB 2022 : Snake Player : Différence entre versions
(→Que fait ce projet ?) |
m |
||
(2 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 9 : | Ligne 9 : | ||
* Arduino UNO | * Arduino UNO | ||
− | * | + | * 8x32 Led Matrix |
− | * | + | * Analog Joystick |
− | + | * breadboard (generic) | |
− | *breadboard (generic) | + | * Jumpers |
− | * | + | * potentiomètre |
+ | |||
==Code== | ==Code== | ||
<pre> | <pre> | ||
− | + | // Dahddammm Robotics// | |
− | </pre> | + | |
+ | #include <MD_KeySwitch.h> | ||
+ | #include <MD_MAX72xx.h> | ||
+ | #define MAX_DEVICES 5 | ||
+ | #define CLK_PIN 13 // or SCK | ||
+ | #define DATA_PIN 11 // or MOSI | ||
+ | #define CS_PIN 10 // or SS | ||
+ | #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW | ||
+ | MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE,CS_PIN, MAX_DEVICES); | ||
+ | |||
+ | const int potmeter = 3; | ||
+ | int coord[200][2]; | ||
+ | int leng = 1; | ||
+ | int prev; | ||
+ | int point[5][2] {{10,5},{3,1},{25,3},{15,7},{11,3}}; | ||
+ | |||
+ | int ch1 = 5; | ||
+ | int ch2 = 8; | ||
+ | int ch3 = 9; | ||
+ | int ch4 = 4; | ||
+ | int aa = 6; | ||
+ | int bb = 19; | ||
+ | int cc = 2; | ||
+ | int dd = 1; | ||
+ | int ee = 0; | ||
+ | int ff = 7; | ||
+ | int gg = 3; | ||
+ | int dot = 25; | ||
+ | int delay1=3; | ||
+ | |||
+ | int blue = 12; | ||
+ | int green = 18; | ||
+ | |||
+ | int screens = 1; | ||
+ | int record; | ||
+ | int points; | ||
+ | int screenpick = 0; | ||
+ | int diff = 0; | ||
+ | int speedx; | ||
+ | int supermode; | ||
+ | int doublepoints; | ||
+ | long counter; | ||
+ | |||
+ | |||
+ | void slide() | ||
+ | { | ||
+ | for(int x = 99; x > 0; x--) | ||
+ | { | ||
+ | coord[x][0] = coord[x-1][0]; | ||
+ | coord[x][1] = coord[x-1][1]; | ||
+ | } | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | int Joystick() | ||
+ | { | ||
+ | // 0 = up | ||
+ | // 1 = down | ||
+ | // 2 = right | ||
+ | // 3 = left | ||
+ | // 4 = nothing | ||
+ | // 5 = click | ||
+ | const int VRx = 0; | ||
+ | const int VRy = 1; | ||
+ | const int SW = 2; | ||
+ | if(analogRead(VRy) > 900) | ||
+ | { | ||
+ | prev = 0; | ||
+ | return 0; | ||
+ | } | ||
+ | if(analogRead(VRy) < 120) | ||
+ | { | ||
+ | prev = 1; | ||
+ | return 1; | ||
+ | } | ||
+ | if(analogRead(VRx) > 900) | ||
+ | { | ||
+ | prev = 2; | ||
+ | return 2; | ||
+ | } | ||
+ | if(analogRead(VRx) < 120) | ||
+ | { | ||
+ | prev = 3; | ||
+ | return 3; | ||
+ | } | ||
+ | if(analogRead(SW) == 0) | ||
+ | { | ||
+ | return 5; | ||
+ | } | ||
+ | return prev; | ||
+ | } | ||
+ | |||
+ | // Dahddammm Robotics// | ||
+ | |||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | mx.begin(); | ||
+ | coord[1][0] = coord[0][0] = 5; | ||
+ | coord[1][1] = coord[0][1] = 5; | ||
+ | pinMode(ch1, OUTPUT); | ||
+ | pinMode(ch2, OUTPUT); | ||
+ | pinMode(ch3, OUTPUT); | ||
+ | pinMode(ch4, OUTPUT); | ||
+ | pinMode(aa, OUTPUT); | ||
+ | pinMode(bb, OUTPUT); | ||
+ | pinMode(cc, OUTPUT); | ||
+ | pinMode(dd, OUTPUT); | ||
+ | pinMode(ee, OUTPUT); | ||
+ | pinMode(ff, OUTPUT); | ||
+ | pinMode(gg, OUTPUT); | ||
+ | pinMode(dot, OUTPUT); | ||
+ | pinMode(blue, OUTPUT); | ||
+ | pinMode(green, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void led(int x, int y) | ||
+ | { | ||
+ | mx.setPoint(y-1, x-1, 1); | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | while(screens == 1) | ||
+ | { | ||
+ | supermode = 0; | ||
+ | doublepoints = 0; | ||
+ | digitalWrite(blue,0); | ||
+ | digitalWrite(green,0); | ||
+ | mx.clear(); | ||
+ | if (points > record) | ||
+ | { | ||
+ | record = points; | ||
+ | } | ||
+ | coord[1][0] = coord[0][0] = 5; | ||
+ | coord[1][1] = coord[0][1] = 5; | ||
+ | while(screens == 1) | ||
+ | { | ||
+ | diff = analogRead(potmeter) / 100; | ||
+ | if (Joystick() == 5) | ||
+ | { | ||
+ | screens = 0; | ||
+ | speedx = (12-diff)*9; | ||
+ | screenpick = 0; | ||
+ | leng = 1; | ||
+ | points = 0; | ||
+ | } | ||
+ | if (analogRead(0) > 1000) | ||
+ | { | ||
+ | screenpick++; | ||
+ | if(screenpick > 2) screenpick = 0; | ||
+ | mx.clear(); | ||
+ | delay(1000); | ||
+ | } | ||
+ | if (analogRead(0) < 150) | ||
+ | { | ||
+ | screenpick--; | ||
+ | if(screenpick < 0) screenpick = 2; | ||
+ | mx.clear(); | ||
+ | delay(1000); | ||
+ | } | ||
+ | switch(screenpick) | ||
+ | { | ||
+ | case 0: | ||
+ | printNumber(points,0); | ||
+ | // E | ||
+ | led(30,7); | ||
+ | led(30,3); | ||
+ | led(30,4); | ||
+ | led(30,5); | ||
+ | led(30,6); | ||
+ | led(29,3); | ||
+ | led(28,3); | ||
+ | led(29,7); | ||
+ | led(28,7); | ||
+ | led(28,5); | ||
+ | led(29,5); | ||
+ | |||
+ | // N | ||
+ | led(21,3); | ||
+ | led(21,4); | ||
+ | led(21,5); | ||
+ | led(21,6); | ||
+ | led(21,7); | ||
+ | led(22,4); | ||
+ | led(23,5); | ||
+ | led(24,6); | ||
+ | led(25,3); | ||
+ | led(25,4); | ||
+ | led(25,5); | ||
+ | led(25,6); | ||
+ | led(25,7); | ||
+ | |||
+ | //I | ||
+ | led(19,3); | ||
+ | led(19,4); | ||
+ | led(19,5); | ||
+ | led(19,6); | ||
+ | led(19,7); | ||
+ | |||
+ | //B | ||
+ | |||
+ | led(14,4); | ||
+ | |||
+ | led(14,6); | ||
+ | |||
+ | |||
+ | led(15,3); | ||
+ | led(15,5); | ||
+ | led(15,7); | ||
+ | |||
+ | led(16,3); | ||
+ | led(16,5); | ||
+ | led(16,7); | ||
+ | |||
+ | led(17,3); | ||
+ | led(17,4); | ||
+ | led(17,5); | ||
+ | led(17,6); | ||
+ | led(17,7); | ||
+ | |||
+ | |||
+ | // FACE | ||
+ | led(1,3); | ||
+ | led(1,4); | ||
+ | led(1,5); | ||
+ | led(1,6); | ||
+ | |||
+ | led(2,2); | ||
+ | led(2,7); | ||
+ | |||
+ | led(3,1); | ||
+ | led(3,4); | ||
+ | led(3,6); | ||
+ | led(3,8); | ||
+ | |||
+ | led(4,1); | ||
+ | led(4,3); | ||
+ | led(4,8); | ||
+ | |||
+ | led(5,1); | ||
+ | led(5,3); | ||
+ | led(5,8); | ||
+ | |||
+ | led(6,1); | ||
+ | led(6,4); | ||
+ | led(6,6); | ||
+ | led(6,8); | ||
+ | |||
+ | led(7,2); | ||
+ | led(7,7); | ||
+ | |||
+ | led(8,3); | ||
+ | led(8,4); | ||
+ | led(8,5); | ||
+ | led(8,6); | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 1: | ||
+ | printNumber(record,0); | ||
+ | // E | ||
+ | led(30,7); | ||
+ | led(30,3); | ||
+ | led(30,4); | ||
+ | led(30,5); | ||
+ | led(30,6); | ||
+ | led(29,3); | ||
+ | led(28,3); | ||
+ | led(29,7); | ||
+ | led(28,7); | ||
+ | led(28,5); | ||
+ | led(29,5); | ||
+ | |||
+ | // N | ||
+ | led(21,3); | ||
+ | led(21,4); | ||
+ | led(21,5); | ||
+ | led(21,6); | ||
+ | led(21,7); | ||
+ | led(22,4); | ||
+ | led(23,5); | ||
+ | led(24,6); | ||
+ | led(25,3); | ||
+ | led(25,4); | ||
+ | led(25,5); | ||
+ | led(25,6); | ||
+ | led(25,7); | ||
+ | |||
+ | //I | ||
+ | led(19,3); | ||
+ | led(19,4); | ||
+ | led(19,5); | ||
+ | led(19,6); | ||
+ | led(19,7); | ||
+ | |||
+ | //B | ||
+ | |||
+ | led(14,4); | ||
+ | |||
+ | led(14,6); | ||
+ | |||
+ | |||
+ | led(15,3); | ||
+ | led(15,5); | ||
+ | led(15,7); | ||
+ | |||
+ | led(16,3); | ||
+ | led(16,5); | ||
+ | led(16,7); | ||
+ | |||
+ | led(17,3); | ||
+ | led(17,4); | ||
+ | led(17,5); | ||
+ | led(17,6); | ||
+ | led(17,7); | ||
+ | |||
+ | |||
+ | // FACE | ||
+ | led(1,3); | ||
+ | led(1,4); | ||
+ | led(1,5); | ||
+ | led(1,6); | ||
+ | |||
+ | led(2,2); | ||
+ | led(2,7); | ||
+ | |||
+ | led(3,1); | ||
+ | led(3,4); | ||
+ | led(3,6); | ||
+ | led(3,8); | ||
+ | |||
+ | led(4,1); | ||
+ | led(4,3); | ||
+ | led(4,8); | ||
+ | |||
+ | led(5,1); | ||
+ | led(5,3); | ||
+ | led(5,8); | ||
+ | |||
+ | led(6,1); | ||
+ | led(6,4); | ||
+ | led(6,6); | ||
+ | led(6,8); | ||
+ | |||
+ | led(7,2); | ||
+ | led(7,7); | ||
+ | |||
+ | led(8,3); | ||
+ | led(8,4); | ||
+ | led(8,5); | ||
+ | led(8,6); | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | printNumber(diff,0); | ||
+ | // E | ||
+ | led(30,7); | ||
+ | led(30,3); | ||
+ | led(30,4); | ||
+ | led(30,5); | ||
+ | led(30,6); | ||
+ | led(29,3); | ||
+ | led(28,3); | ||
+ | led(29,7); | ||
+ | led(28,7); | ||
+ | led(28,5); | ||
+ | led(29,5); | ||
+ | |||
+ | // N | ||
+ | led(21,3); | ||
+ | led(21,4); | ||
+ | led(21,5); | ||
+ | led(21,6); | ||
+ | led(21,7); | ||
+ | led(22,4); | ||
+ | led(23,5); | ||
+ | led(24,6); | ||
+ | led(25,3); | ||
+ | led(25,4); | ||
+ | led(25,5); | ||
+ | led(25,6); | ||
+ | led(25,7); | ||
+ | |||
+ | //I | ||
+ | led(19,3); | ||
+ | led(19,4); | ||
+ | led(19,5); | ||
+ | led(19,6); | ||
+ | led(19,7); | ||
+ | |||
+ | //B | ||
+ | |||
+ | led(14,4); | ||
+ | |||
+ | led(14,6); | ||
+ | |||
+ | |||
+ | led(15,3); | ||
+ | led(15,5); | ||
+ | led(15,7); | ||
+ | |||
+ | led(16,3); | ||
+ | led(16,5); | ||
+ | led(16,7); | ||
+ | |||
+ | led(17,3); | ||
+ | led(17,4); | ||
+ | led(17,5); | ||
+ | led(17,6); | ||
+ | led(17,7); | ||
+ | |||
+ | |||
+ | // FACE | ||
+ | led(1,3); | ||
+ | led(1,4); | ||
+ | led(1,5); | ||
+ | led(1,6); | ||
+ | |||
+ | led(2,2); | ||
+ | led(2,7); | ||
+ | |||
+ | led(3,1); | ||
+ | led(3,4); | ||
+ | led(3,6); | ||
+ | led(3,8); | ||
+ | |||
+ | led(4,1); | ||
+ | led(4,3); | ||
+ | led(4,8); | ||
+ | |||
+ | led(5,1); | ||
+ | led(5,3); | ||
+ | led(5,8); | ||
+ | |||
+ | led(6,1); | ||
+ | led(6,4); | ||
+ | led(6,6); | ||
+ | led(6,8); | ||
+ | |||
+ | led(7,2); | ||
+ | led(7,7); | ||
+ | |||
+ | led(8,3); | ||
+ | led(8,4); | ||
+ | led(8,5); | ||
+ | led(8,6); | ||
+ | |||
+ | break; | ||
+ | |||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | for (int x = 0; x < speedx; x++) | ||
+ | { | ||
+ | printNumber(points,0); | ||
+ | } | ||
+ | slide(); | ||
+ | counter++; | ||
+ | if(counter == 40) | ||
+ | { | ||
+ | supermode = 0; | ||
+ | doublepoints = 0; | ||
+ | digitalWrite(blue,0); | ||
+ | digitalWrite(green,0); | ||
+ | } | ||
+ | switch(Joystick()) | ||
+ | { | ||
+ | case 0: | ||
+ | coord[0][1] = coord[1][1]+1; //y+1 | ||
+ | break; | ||
+ | case 1: | ||
+ | coord[0][1] = coord[1][1]-1; //y-1 | ||
+ | break; | ||
+ | case 2: | ||
+ | coord[0][0] = coord[1][0]+1; //x+1 | ||
+ | break; | ||
+ | case 3: | ||
+ | coord[0][0] = coord[1][0]-1; //x-1 | ||
+ | break; | ||
+ | } | ||
+ | for (int x = 0; x < 5; x++) | ||
+ | { | ||
+ | if (coord[0][0] == point[x][0] && coord[0][1] == point[x][1]) | ||
+ | { | ||
+ | if (random(0,diff+1) == 0) | ||
+ | { | ||
+ | supermode = 1; | ||
+ | counter = 0; | ||
+ | digitalWrite(blue,1); | ||
+ | } | ||
+ | if (random(0,9) == 0) | ||
+ | { | ||
+ | doublepoints = 1; | ||
+ | counter = 0; | ||
+ | digitalWrite(green,1); | ||
+ | } | ||
+ | leng++; | ||
+ | points += 5; | ||
+ | if(doublepoints == 1) points += 5; | ||
+ | if (speedx > (10-diff)*3 + 10) | ||
+ | { | ||
+ | speedx--; | ||
+ | } | ||
+ | point[x][0] = random(1,32); | ||
+ | point[x][1] = random(1,8); | ||
+ | } | ||
+ | } | ||
+ | if (supermode == 1) | ||
+ | { | ||
+ | if(coord[0][0] == 0) | ||
+ | { | ||
+ | coord[0][0] = 32; | ||
+ | } | ||
+ | if(coord[0][0] == 33) | ||
+ | { | ||
+ | coord[0][0] = 1; | ||
+ | } | ||
+ | if(coord[0][1] == 0) | ||
+ | { | ||
+ | coord[0][1] = 8; | ||
+ | } | ||
+ | if(coord[0][1] == 9) | ||
+ | { | ||
+ | coord[0][1] = 1; | ||
+ | } | ||
+ | } | ||
+ | mx.clear(); | ||
+ | for (int x = 0; x < leng; x++) | ||
+ | { | ||
+ | led(coord[x][0],coord[x][1]); | ||
+ | } | ||
+ | for (int x = 0; x < 5; x++) | ||
+ | { | ||
+ | led(point[x][0],point[x][1]); | ||
+ | } | ||
+ | if (supermode == 0) | ||
+ | { | ||
+ | if (coord[0][0] == 0 || coord[0][0] == 33 || coord[0][1] == 0 || coord[0][1] == 9) | ||
+ | { | ||
+ | screens = 1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | for(int x = 1; x < leng; x++) | ||
+ | { | ||
+ | if (coord[0][0] == coord[x][0] && coord[0][1] == coord[x][1]) | ||
+ | { | ||
+ | screens = 1; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void printNumber(long number,int place) | ||
+ | { | ||
+ | int num1 = number / 1000; | ||
+ | int num2 = number / 100 - num1 * 10; | ||
+ | int num3 = number / 10 - num1 * 100 - num2 * 10; | ||
+ | int num4 = number - num1 * 1000- num2 * 100 - num3 * 10; | ||
+ | |||
+ | //charachter 1 | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | digitalWrite(dot,0); | ||
+ | |||
+ | digitalWrite(ch1,0); | ||
+ | digitalWrite(ch2,1); | ||
+ | digitalWrite(ch3,1); | ||
+ | digitalWrite(ch4,1); | ||
+ | |||
+ | if(place==1) | ||
+ | { | ||
+ | digitalWrite(dot,1); | ||
+ | } | ||
+ | |||
+ | switch(num1) | ||
+ | { | ||
+ | case 0: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 1: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 7: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 8: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 9: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | default: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | delay(delay1); | ||
+ | |||
+ | |||
+ | //charachter 2 | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | digitalWrite(dot,0); | ||
+ | |||
+ | digitalWrite(ch1,1); | ||
+ | digitalWrite(ch2,0); | ||
+ | digitalWrite(ch3,1); | ||
+ | digitalWrite(ch4,1); | ||
+ | |||
+ | if(place==2) | ||
+ | { | ||
+ | digitalWrite(dot,1); | ||
+ | } | ||
+ | |||
+ | switch(num2) | ||
+ | { | ||
+ | case 0: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 1: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 7: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 8: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 9: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | default: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | delay(delay1); | ||
+ | |||
+ | |||
+ | //charachter 3 | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | digitalWrite(dot,0); | ||
+ | |||
+ | digitalWrite(ch1,1); | ||
+ | digitalWrite(ch2,1); | ||
+ | digitalWrite(ch3,0); | ||
+ | digitalWrite(ch4,1); | ||
+ | |||
+ | if(place==3) | ||
+ | { | ||
+ | digitalWrite(dot,1); | ||
+ | } | ||
+ | |||
+ | switch(num3) | ||
+ | { | ||
+ | case 0: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | // Dahddammm Robotics// | ||
+ | |||
+ | |||
+ | case 1: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 7: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 8: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 9: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | default: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | delay(delay1); | ||
+ | |||
+ | |||
+ | //charachter 4 | ||
+ | digitalWrite(dot,0); | ||
+ | |||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | |||
+ | digitalWrite(ch1,1); | ||
+ | digitalWrite(ch2,1); | ||
+ | digitalWrite(ch3,1); | ||
+ | digitalWrite(ch4,0); | ||
+ | if(place==4) | ||
+ | { | ||
+ | digitalWrite(dot,1); | ||
+ | } | ||
+ | |||
+ | switch(num4) | ||
+ | { | ||
+ | case 0: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 1: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 7: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | |||
+ | case 8: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,1); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | case 9: | ||
+ | digitalWrite(aa,1); | ||
+ | digitalWrite(bb,1); | ||
+ | digitalWrite(cc,1); | ||
+ | digitalWrite(dd,1); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,1); | ||
+ | digitalWrite(gg,1); | ||
+ | break; | ||
+ | |||
+ | default: | ||
+ | digitalWrite(aa,0); | ||
+ | digitalWrite(bb,0); | ||
+ | digitalWrite(cc,0); | ||
+ | digitalWrite(dd,0); | ||
+ | digitalWrite(ee,0); | ||
+ | digitalWrite(ff,0); | ||
+ | digitalWrite(gg,0); | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | // Dahddammm Robotics// | ||
+ | |||
+ | delay(delay1); | ||
+ | }</pre> | ||
==sources == | ==sources == | ||
− | * https://create.arduino.cc/projecthub/ | + | * https://create.arduino.cc/projecthub/rishab8551/arduino-snake-game-using-arduino-and-martix-6c230c |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* https://www.instructables.com/8x8-Matrix-Snake-Game/ | * https://www.instructables.com/8x8-Matrix-Snake-Game/ | ||
Version actuelle datée du 17 janvier 2022 à 15:03
Sommaire
photo de l'équipe
Que fait ce projet ?
Le snakeGame est un genre de jeu vidéo dans lequel le joueur dirige un serpent qui grandit et constitue ainsi lui-même un obstacle.
Liste des composants
- Arduino UNO
- 8x32 Led Matrix
- Analog Joystick
- breadboard (generic)
- Jumpers
- potentiomètre
Code
// Dahddammm Robotics// #include <MD_KeySwitch.h> #include <MD_MAX72xx.h> #define MAX_DEVICES 5 #define CLK_PIN 13 // or SCK #define DATA_PIN 11 // or MOSI #define CS_PIN 10 // or SS #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE,CS_PIN, MAX_DEVICES); const int potmeter = 3; int coord[200][2]; int leng = 1; int prev; int point[5][2] {{10,5},{3,1},{25,3},{15,7},{11,3}}; int ch1 = 5; int ch2 = 8; int ch3 = 9; int ch4 = 4; int aa = 6; int bb = 19; int cc = 2; int dd = 1; int ee = 0; int ff = 7; int gg = 3; int dot = 25; int delay1=3; int blue = 12; int green = 18; int screens = 1; int record; int points; int screenpick = 0; int diff = 0; int speedx; int supermode; int doublepoints; long counter; void slide() { for(int x = 99; x > 0; x--) { coord[x][0] = coord[x-1][0]; coord[x][1] = coord[x-1][1]; } return; } int Joystick() { // 0 = up // 1 = down // 2 = right // 3 = left // 4 = nothing // 5 = click const int VRx = 0; const int VRy = 1; const int SW = 2; if(analogRead(VRy) > 900) { prev = 0; return 0; } if(analogRead(VRy) < 120) { prev = 1; return 1; } if(analogRead(VRx) > 900) { prev = 2; return 2; } if(analogRead(VRx) < 120) { prev = 3; return 3; } if(analogRead(SW) == 0) { return 5; } return prev; } // Dahddammm Robotics// void setup() { mx.begin(); coord[1][0] = coord[0][0] = 5; coord[1][1] = coord[0][1] = 5; pinMode(ch1, OUTPUT); pinMode(ch2, OUTPUT); pinMode(ch3, OUTPUT); pinMode(ch4, OUTPUT); pinMode(aa, OUTPUT); pinMode(bb, OUTPUT); pinMode(cc, OUTPUT); pinMode(dd, OUTPUT); pinMode(ee, OUTPUT); pinMode(ff, OUTPUT); pinMode(gg, OUTPUT); pinMode(dot, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void led(int x, int y) { mx.setPoint(y-1, x-1, 1); return; } void loop() { while(screens == 1) { supermode = 0; doublepoints = 0; digitalWrite(blue,0); digitalWrite(green,0); mx.clear(); if (points > record) { record = points; } coord[1][0] = coord[0][0] = 5; coord[1][1] = coord[0][1] = 5; while(screens == 1) { diff = analogRead(potmeter) / 100; if (Joystick() == 5) { screens = 0; speedx = (12-diff)*9; screenpick = 0; leng = 1; points = 0; } if (analogRead(0) > 1000) { screenpick++; if(screenpick > 2) screenpick = 0; mx.clear(); delay(1000); } if (analogRead(0) < 150) { screenpick--; if(screenpick < 0) screenpick = 2; mx.clear(); delay(1000); } switch(screenpick) { case 0: printNumber(points,0); // E led(30,7); led(30,3); led(30,4); led(30,5); led(30,6); led(29,3); led(28,3); led(29,7); led(28,7); led(28,5); led(29,5); // N led(21,3); led(21,4); led(21,5); led(21,6); led(21,7); led(22,4); led(23,5); led(24,6); led(25,3); led(25,4); led(25,5); led(25,6); led(25,7); //I led(19,3); led(19,4); led(19,5); led(19,6); led(19,7); //B led(14,4); led(14,6); led(15,3); led(15,5); led(15,7); led(16,3); led(16,5); led(16,7); led(17,3); led(17,4); led(17,5); led(17,6); led(17,7); // FACE led(1,3); led(1,4); led(1,5); led(1,6); led(2,2); led(2,7); led(3,1); led(3,4); led(3,6); led(3,8); led(4,1); led(4,3); led(4,8); led(5,1); led(5,3); led(5,8); led(6,1); led(6,4); led(6,6); led(6,8); led(7,2); led(7,7); led(8,3); led(8,4); led(8,5); led(8,6); break; case 1: printNumber(record,0); // E led(30,7); led(30,3); led(30,4); led(30,5); led(30,6); led(29,3); led(28,3); led(29,7); led(28,7); led(28,5); led(29,5); // N led(21,3); led(21,4); led(21,5); led(21,6); led(21,7); led(22,4); led(23,5); led(24,6); led(25,3); led(25,4); led(25,5); led(25,6); led(25,7); //I led(19,3); led(19,4); led(19,5); led(19,6); led(19,7); //B led(14,4); led(14,6); led(15,3); led(15,5); led(15,7); led(16,3); led(16,5); led(16,7); led(17,3); led(17,4); led(17,5); led(17,6); led(17,7); // FACE led(1,3); led(1,4); led(1,5); led(1,6); led(2,2); led(2,7); led(3,1); led(3,4); led(3,6); led(3,8); led(4,1); led(4,3); led(4,8); led(5,1); led(5,3); led(5,8); led(6,1); led(6,4); led(6,6); led(6,8); led(7,2); led(7,7); led(8,3); led(8,4); led(8,5); led(8,6); break; case 2: printNumber(diff,0); // E led(30,7); led(30,3); led(30,4); led(30,5); led(30,6); led(29,3); led(28,3); led(29,7); led(28,7); led(28,5); led(29,5); // N led(21,3); led(21,4); led(21,5); led(21,6); led(21,7); led(22,4); led(23,5); led(24,6); led(25,3); led(25,4); led(25,5); led(25,6); led(25,7); //I led(19,3); led(19,4); led(19,5); led(19,6); led(19,7); //B led(14,4); led(14,6); led(15,3); led(15,5); led(15,7); led(16,3); led(16,5); led(16,7); led(17,3); led(17,4); led(17,5); led(17,6); led(17,7); // FACE led(1,3); led(1,4); led(1,5); led(1,6); led(2,2); led(2,7); led(3,1); led(3,4); led(3,6); led(3,8); led(4,1); led(4,3); led(4,8); led(5,1); led(5,3); led(5,8); led(6,1); led(6,4); led(6,6); led(6,8); led(7,2); led(7,7); led(8,3); led(8,4); led(8,5); led(8,6); break; } } } for (int x = 0; x < speedx; x++) { printNumber(points,0); } slide(); counter++; if(counter == 40) { supermode = 0; doublepoints = 0; digitalWrite(blue,0); digitalWrite(green,0); } switch(Joystick()) { case 0: coord[0][1] = coord[1][1]+1; //y+1 break; case 1: coord[0][1] = coord[1][1]-1; //y-1 break; case 2: coord[0][0] = coord[1][0]+1; //x+1 break; case 3: coord[0][0] = coord[1][0]-1; //x-1 break; } for (int x = 0; x < 5; x++) { if (coord[0][0] == point[x][0] && coord[0][1] == point[x][1]) { if (random(0,diff+1) == 0) { supermode = 1; counter = 0; digitalWrite(blue,1); } if (random(0,9) == 0) { doublepoints = 1; counter = 0; digitalWrite(green,1); } leng++; points += 5; if(doublepoints == 1) points += 5; if (speedx > (10-diff)*3 + 10) { speedx--; } point[x][0] = random(1,32); point[x][1] = random(1,8); } } if (supermode == 1) { if(coord[0][0] == 0) { coord[0][0] = 32; } if(coord[0][0] == 33) { coord[0][0] = 1; } if(coord[0][1] == 0) { coord[0][1] = 8; } if(coord[0][1] == 9) { coord[0][1] = 1; } } mx.clear(); for (int x = 0; x < leng; x++) { led(coord[x][0],coord[x][1]); } for (int x = 0; x < 5; x++) { led(point[x][0],point[x][1]); } if (supermode == 0) { if (coord[0][0] == 0 || coord[0][0] == 33 || coord[0][1] == 0 || coord[0][1] == 9) { screens = 1; } } for(int x = 1; x < leng; x++) { if (coord[0][0] == coord[x][0] && coord[0][1] == coord[x][1]) { screens = 1; } } } void printNumber(long number,int place) { int num1 = number / 1000; int num2 = number / 100 - num1 * 10; int num3 = number / 10 - num1 * 100 - num2 * 10; int num4 = number - num1 * 1000- num2 * 100 - num3 * 10; //charachter 1 digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); digitalWrite(ch1,0); digitalWrite(ch2,1); digitalWrite(ch3,1); digitalWrite(ch4,1); if(place==1) { digitalWrite(dot,1); } switch(num1) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 2 digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); digitalWrite(ch1,1); digitalWrite(ch2,0); digitalWrite(ch3,1); digitalWrite(ch4,1); if(place==2) { digitalWrite(dot,1); } switch(num2) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 3 digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); digitalWrite(ch1,1); digitalWrite(ch2,1); digitalWrite(ch3,0); digitalWrite(ch4,1); if(place==3) { digitalWrite(dot,1); } switch(num3) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; // Dahddammm Robotics// case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 4 digitalWrite(dot,0); digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(ch1,1); digitalWrite(ch2,1); digitalWrite(ch3,1); digitalWrite(ch4,0); if(place==4) { digitalWrite(dot,1); } switch(num4) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } // Dahddammm Robotics// delay(delay1); }
sources
- https://create.arduino.cc/projecthub/rishab8551/arduino-snake-game-using-arduino-and-martix-6c230c
- https://www.instructables.com/8x8-Matrix-Snake-Game/
Catégories
Jeu