Предлагаю на суд свой мини проект. Нужна библиотека LCD5110_Graph.h Код (Text): /* Maxim Shishk-OFF */ #include <LCD5110_Graph.h> LCD5110 myGLCD(8,9,10,11,12); extern unsigned char SmallFont[]; extern unsigned char TinyFont[]; int endgame = 10; int zx[300] = {26, 25, 24, 23, 22}; int zy[300] = {20, 20, 20, 20, 20}; int len=5; int navi=4; int x,y,mx,my; long pM = 0; long per = 75; void setup() { myGLCD.InitLCD(); myGLCD.setFont(SmallFont); for (int u=5; u <= 300-1; u++) {zx[u]=-1;zy[u]=-1;} mx=random(84); my=random(44);mx=random(84); my=random(44); } void loop() { int b0=analogRead(A0); int b1=analogRead(A1); if ((b0 < 400)and(navi!=4)) {navi=3;} if ((b0 > 600)and(navi!=3)) {navi=4;} if ((b1 < 400)and(navi!=1)) {navi=2;} if ((b1 > 600)and(navi!=2)) {navi=1;} if (zx[0] < 0) {endgame=0;} if (zx[0] > 83) {endgame=0;} if (zy[0] < 0) {endgame=0;} if (zy[0] > 49) {endgame=0;} unsigned long cM = millis(); if(cM - pM > per) {pM = cM; myGLCD.clrScr(); for (int i=1; i < len; i++) { myGLCD.drawRect(zx[i], zy[i], zx[i]+1, zy[i]+1); } // рисуем все элементы x=zx[0]; y=zy[0]; for (int t=len; t > 0; t--) { zx[t]=zx[t-1]; zy[t]=zy[t-1]; } switch (navi) {case 1: y--; break; case 2: y++; break; case 3: x--; break; case 4: x++; break; } zx[0]=x; zy[0]=y; myGLCD.drawRect(zx[0], zy[0], zx[0]+1, zy[0]+1); myGLCD.drawRect(mx, my, mx+1, my+1); if (((x==mx)or(x+1==mx)or(x-1==mx)) and ((y==my)or(y+1==my)or(y-1==my))) {len=len+10; per=per-5; mx=random(84); my=random(44);} myGLCD.update(); } if (endgame == 0) {myGLCD.clrScr(); myGLCD.print("you lost ", CENTER, 12); myGLCD.print("score", 15, 22);myGLCD.printNumI(len*2, 50, 22); myGLCD.update();delay(8000);} }
Отлично! Но за такое оформление кода нас в универе линейкой по рукам лупили безжалостно. Вы паскаль любите? Зачем "and" и "or" вместо "&&" и "||"?
Это мне знакомо. В школе паскаль учил, потом первое время в С++ дефайнил фигурные скобки на begin/end, ну и and/or само собой тоже. В универе быстро отучили. Старайтесь все же писать без изысков, привыкаешь к этому быстро и ни у кого не возникает вопросов. И не надо клеить несколько строк кода в одну, получается совсем нечитабельно. Лучше группируйте по помощи пустых строк. Хорошо читаемый код всегда лучше понимается и проще отлаживается. Попробуйте в Arduino IDE нажать Ctrl+T и она сама правильно отформатирует код. И обязательно пишите комментарии к коду. Это и для себя полезно делать, и уж тем более для тех, кто будет его читать.
Спасибо учту про форматирование. Но наверно только для выкладывания сюда кода. Так как сам программист и мне уже давно так привычней )
Отличный проект! Собрал с дочкой 11 лет за пол часа все сразу заработало, разве что потратили немного времени на поиск библиотеки нашли здесь: http://www.rinkydinkelectronics.com/library.php?id=48