#include <GyverMAX7219.h>
#include <TM1637TinyDisplay.h>
#include <TM1637.h>
TM1637 tm1637(4, 5);
byte LETTER[15][8]={
{0x12,0x12,0x14,0x1c,0x3e,0x49,0x1e,0x1c},
{0x14,0x14,0x14,0x1c,0x3e,0x49,0x1e,0x1c},
{0x12,0x12,0x14,0x5d,0x3e,0x08,0x1e,0x1c},
{0x14,0x14,0x14,0x5d,0x3e,0x08,0x1e,0x1c},
{0x80,0x80,0xe0,0xa0,0x00,0x00,0x00,0x00},
{0xe0,0xe0,0xe0,0xa0,0xa0,0x00,0x00,0x00},
{0xe0,0xe0,0xe0,0x40,0x40,0x00,0x00,0x00},
{0x7e,0x81,0x81,0x8f,0x80,0x83,0x81,0x7e},
{0xe7,0x42,0x42,0x7e,0x42,0x42,0x24,0x18},
{0xe7,0x42,0x42,0x5a,0x5a,0x66,0x42,0xe7},
{0xff,0x41,0x40,0x40,0x7e,0x40,0x41,0xff},
{0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x3c},
{0x18,0x18,0x24,0x24,0x24,0x42,0x42,0xe7},
{0xff,0x41,0x40,0x40,0x7e,0x40,0x41,0xff},
{0xe6,0x44,0x48,0x50,0x78,0x44,0x44,0xfc},
};
byte vys[3]={4,6,6};
byte x;
byte D;
byte y;
byte jump;
byte C;
byte z1;
byte z2;
byte z3;
byte z4;
byte count;
MAX7219 <8, 2, 12> mtrx;
void setup() {
tm1637.init();
tm1637.setBrightness(5);
pinMode(2, INPUT);
pinMode(3, INPUT);
x = 0;
y = 0;
D = 0;
jump = 0;
C = 0;
z1 = 60;
z2 = 4;
z3 = 0;
count = 0;
mtrx.begin();
mtrx.setBright(15);
mtrx.setRotation(2);
mtrx.dot(0, 31); // Координаты строка, столбец^7
mtrx.update(); // показать
}
void DRAW(byte x, byte y,byte s)
{
for (byte i=0;i<8;i++)
{
byte K=LETTER[s][i];
for(byte j=0;j<8;j++)
{
if(K&128)
mtrx.dot(x+j, y+i);
K=K<<1;
}
}
mtrx.update();
}
void loop() {
if (!digitalRead(2)){
C = 0;
count = 255;
z1=250;
tm1637.display(0000);
}
if (C==0){
if(!digitalRead(3)) DRAW(x,y,(D>>2)%2);
else DRAW(x,y,(D>>2)%2+2);
if (jump==0)
if(!digitalRead(3)) jump = 22;
if(jump>14) y++;
if((jump>0)&&(jump<9)) y--;
if(jump!=0) jump--;
D++;
if (z1==250)
{
z1 = 60;
z2=rand()%3+4;
z4=vys[z2-4];
count++;
}
if (count < 3) {
z1--;
DRAW((z1),z3,z2);
}
if ((3<=count)&&(count< 6)) {
if(D&1) z1-=2;
else z1-=1;
DRAW((z1),z3,z2);
}
if (count >= 6) {
z1-=2;
DRAW((z1),z3,z2);
}
delay(50);
mtrx.clear();
}
if ((z1<=6) && (y<=z4))
{
C = 1;
DRAW(0,8,7);
DRAW(16,8,8);
DRAW(32,8,9);
DRAW(48,8,10);
DRAW(0,0,11);
DRAW(16,0,12);
DRAW(32,0,13);
DRAW(48,0,14);
}
tm1637.display(count);
}