From a3a5b4cb4770b0afd0c994c103d2fa232277ee36 Mon Sep 17 00:00:00 2001 From: Fredrik Date: Mon, 8 Mar 2021 14:24:59 +0100 Subject: [PATCH] finale --- .deps/delay.S.P | 2 - .deps/game.c.P | 6 - .deps/labwork.S.P | 2 - .deps/snake.c.P | 2 - .gitignore | 5 + data.c.o | Bin 2240 -> 2328 bytes delay.S | 3 +- delay.S.o | Bin 1392 -> 0 bytes display.c | 31 +- display.c.o | Bin 4824 -> 4556 bytes game.c | 174 +++++++++-- game.c.o | Bin 2764 -> 0 bytes main.c | 37 ++- main.c.o | Bin 1864 -> 2900 bytes outfile.elf | Bin 23856 -> 23860 bytes outfile.hex | 735 ++++++++++++++++++++++++++-------------------- snake.c.o | Bin 1044 -> 0 bytes snake.h | 22 +- vectors.S.o | Bin 15332 -> 0 bytes 19 files changed, 637 insertions(+), 382 deletions(-) delete mode 100644 .deps/delay.S.P delete mode 100644 .deps/game.c.P delete mode 100644 .deps/labwork.S.P delete mode 100644 .deps/snake.c.P create mode 100644 .gitignore delete mode 100644 delay.S.o delete mode 100644 game.c.o delete mode 100644 snake.c.o delete mode 100644 vectors.S.o diff --git a/.deps/delay.S.P b/.deps/delay.S.P deleted file mode 100644 index 8ce9a49..0000000 --- a/.deps/delay.S.P +++ /dev/null @@ -1,2 +0,0 @@ -delay.S.o: delay.S -delay.S : diff --git a/.deps/game.c.P b/.deps/game.c.P deleted file mode 100644 index 1075a1f..0000000 --- a/.deps/game.c.P +++ /dev/null @@ -1,6 +0,0 @@ -game.c.o: game.c /opt/mcb32tools/include/stdint.h \ - /opt/mcb32tools/lib/gcc/mipsel-mcb32-elf/4.9.2/include/stdint-gcc.h \ - /opt/mcb32tools/include/pic32mx.h snake.h -game.c /opt/mcb32tools/include/stdint.h : - /opt/mcb32tools/lib/gcc/mipsel-mcb32-elf/4.9.2/include/stdint-gcc.h : - /opt/mcb32tools/include/pic32mx.h snake.h : diff --git a/.deps/labwork.S.P b/.deps/labwork.S.P deleted file mode 100644 index 6887fa6..0000000 --- a/.deps/labwork.S.P +++ /dev/null @@ -1,2 +0,0 @@ -labwork.S.o: labwork.S -labwork.S : diff --git a/.deps/snake.c.P b/.deps/snake.c.P deleted file mode 100644 index 68d07b2..0000000 --- a/.deps/snake.c.P +++ /dev/null @@ -1,2 +0,0 @@ -snake.c.o: snake.c -snake.c : diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6daf9a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.c.o +*.S.o +outfile* +/.deps +.vscode diff --git a/data.c.o b/data.c.o index 9908c47eef7f5729bdab96d15092880e8153b046..8a045352afa8fd4cf40111726b0b21bb852daa88 100644 GIT binary patch delta 156 zcmX>gI74WH0^^H~ilNQUC%{GwC{XL2o@<>no1XBZhBCbx1ZOSrHxFf0LTg#kt=0|4db BBuW4P delta 66 zcmbOsbU<)|0^@{@il1sB42?&Q5VV-^Ztc$|CQJ#+7!_wLNz%F{=NVL+RK zG=4MSt;t9p{&FN(Kn9b@VZT_!Ydej;L?indo)mx&-FF`^PnzOisp7_HUo4r(4NJXLtqwc8!o2W_MZc`2FEb%D9V)Le4U z;NBf%*e{U6^~2O`GHx<%+YH6>Slk1$(KBPXLH{V~5ja(NtgtuI`|{aTM{13lo#MF< z&r{#QgB+EW`ZkOSI+h8iwYwF#C1TJV;HLJPUd;)-od8bR4O}>-Rtrwkt5oY74LGY$ z)}A|Vsk%{fE8O?XO*l;KxIxgYmbL@0HQEyrvtW`*7urm=%R3&L2@5krCNDFF%LzV? z#RQ+g%>+;59y#wnvT4>^q1PTz2!E#h0T@`P!+}#~;03*!rqsLi*J2$1cS2>a=I$b> zZh1>Q^=iF>O>f6-y+W= 4) return; @@ -81,6 +82,7 @@ void display_string(int line, char *s) { //LAB textbuffer[line][i] = ' '; } +/*(TAKEN FROM LAB) Display text*/ void display_update(void) { //LAB int i, j, k; int c; @@ -125,6 +127,8 @@ void display_image(int x, const uint8_t *data) { //LAB } } +/*This function translates the display array to oled_display array. +It converts an x and y coordinate system into a readable array for the computer.*/ void translateToImage() { int page, column, row, c, k; uint8_t powerOfTwo = 1; @@ -147,19 +151,8 @@ void translateToImage() { } } -void create_object(int xPos, int yPos, int width, int height) { - int row, column; - - for (row = 0; row < 32; row++) { - for (column = 0; column < 128; column++) { - if (row >= yPos && row <= (yPos + height) && column >= xPos && column <= (xPos + width)) { - display[row][column] = 1; - } - } - } -} - -void clear_display() { +/*This function sets all the values in the display array and oled display array into 0s*/ +void clear_display() { int row, column, i; for(row = 0; row < 32; row++) { @@ -173,12 +166,12 @@ void clear_display() { } } +/*This function calls all the necessary functions for the game to start*/ void display_start(){ - clear_display(); - snake(); - //create_object(64,16,1,1); - translateToImage(); - display_image(0, oled_display); + clear_display(); //This clear the screen everytime it loops. It will clear the last frame + game(); //Call game + translateToImage(); //Translate + display_image(0, oled_display); //And then display the frame } diff --git a/display.c.o b/display.c.o index cbc50fba3e3a66a741006c22e26531b97e92f3b2..8ac5a3180cb2a0f41b6e6b2a089584a58a889da3 100644 GIT binary patch delta 997 zcmZ9LJ!n%=6vxkdzW4HB(!3YUhi$bX(WFDcSOkl7aIDfXLv(7?AXJUgb|_Lv)e07h z7LIPE6pY~DN2QBHkl><12ZvM~3o3N8l!D##e|#rPE?j>1e?IOx@7{O6pWMtXXUv({ zyX;4YcLHwDCxe27VNvUC%U~yX#r$UQWN_6QCEDhDZtq4m6gD=-!)r$U8Uj7q`#bkP zfvBS&sJ7I07G2>*=8-Janc{Mb_P0TZfAMgchGKmg|YmsE- z2h;)Ngu3^{twVbHgIPwiMfKa@Bb#VYbrM{6{1Q_C1oT{hsDwPx!@L!Fn66cBRLe9i zxJ1)eZ%8|Bm+6uUBqWiPA{2u)(hI2$74muwR%U8c|(RO4DM$shm|VC>uiL zud8ktgT2rC^vi&x{Z)o);$R6ivt? zMKmuwO0*_KLQ9AZw}mK#AA-!|cq#>c;ik;50si1-?V%_<{L9UmR*=J9UNG$AvR5#I zeBUcrczPLr?d9yD7||GSc{!uZr@a)ran~$|I2+HKlOetc+zs(mJn!s>q$;n*v*~>t L!dcYrjLz~OEPsZ$ delta 1188 zcmZ9LPiPZS5XNU;b~k^THgDUQMw4JnYFea+9(oX|QmO|JMHC8pvyH@qN);_qP)L-D zT7(9l2NjVjJxL+e_RvF-QbjEY=Fme67J7&vC?cME5cL}~MexDqH{Z;>d9!ae@3X7B z%V|~8&ofJ|=~mHVoZeKD^tM8@SgBbQAS@g9y4XaoCZe=7u}9}AMZHmuN8wAtw=159 zs>fmyvk}wc^Tem&i%Y&Ou~0o`{QgwRB3~QP!AXu;)Yk@9*e+3D$C}yiPgoy}=S!HH ztD6GqUyqhD%AZ%Q%AEE;wto_Bm}`;PY$g!0On)Ff+Zmj+iZ)vG=*RCXAlqB|`hWU1 zG_QU<&1BI%u}h+#g75KkTlF|@j7Sk}0-XPnwJZ%T}5XGAXu-w9WQ8_r+DJZs!p z#OE@GJ95ECAh$CGI?(gt5Buu=4kp^_5grx}2rn?Pe-z~XcR;Q?E&h37mE$p@6|m2R zQR4s#kKppTK$!_WC0r1G7TOpJ=XEhXGv2hXSe3ba6duA{oCeGjbivmkZ>b7bCH__7 z-IyE4dq5{l)C;;`nf*J6?lY4_lT6HQ8sxkg5P8RGjsvY2B$mPq(oDQVFSD6wklBI{ zgt-lcn8;sbqTmK|JATlF!hvaK0{@nTDM!NQL8Mi!1k8&_#?eiPnzcw)1%l>RBv(hw z^k~iI5#4SD&1Kzg2XVT2qO(pH`Z;Qrbykgr%r~85#Jrpu519jA&UqNZ%#5X5%vDdj WQQTJ5GIza9yoML-L?2sg%lrdIeW=p_ diff --git a/game.c b/game.c index 55b6c5e..ea95449 100644 --- a/game.c +++ b/game.c @@ -1,54 +1,164 @@ /*Written by Fredrik Lundström and Michell Dib 2021 (c)*/ #include +#include +#include #include #include "snake.h" //Project header file -int score = 0; -int speed = 20; +int btns; +int speed = 1000; //Higher is slower +//We made premade apples since the time.h library would not work on the Uno32 +int apple_x[] = { + 56, + 39, + 28, + 95, + 46, + 107, + 13, + 69, + 65, + 11, + 28, + 82 +}; -int snake_length; -int snake_width = 1; -int snake_x = 64; -int snake_y = 16; +int apple_y[] = { + 10, + 29, + 20, + 9, + 15, + 3, + 21, + 27, + 11, + 17, + 8, + 12 +}; -int apple_x; -int apple_y; - -void snake(){ - snake_create(); - apple_create(); +void game(){ + snake_move(); //First we will call for the snake movements + if(snake.y[0] == apple_y[score] && snake.x[0] == apple_x[score]){ //If we collide with apple + eat_apple(); //Call eat_apple function + } + if((snake.y[0] == 32 || snake.y[0] == 0) || (snake.x[0] == 128 || snake.x[0] == 0)){ //If we collide with wall + collision(); //Call collision function + } + create_snake(); //After movements are made we create the snake - if(snake_x == apple_x && snake_y == apple_y){ - apple_eat(); + int k; + for(k = snake.length - 1; k > 0; k--){ // This for loop check if the head will collide with any coordinate of the body + if(snake.x[0] == snake.x[k] && snake.y[0] == snake.y[k]) + collision(); } + + create_apple(); //Every frame we create an apple based on the score that changes the apples coordinates to any of the premade values. delay(speed); - snake_move(); } -void snake_create(){ - snake_length = 5; - create_object(snake_x, snake_y, snake_length, snake_width); +void collision(){ + char score2[] = "X"; + score2[0] = score + '0'; //Here we make an integer to a string + + while(btns != 0b1000){ //While BTN4 is not pressed we will display the score and a game over string. + clear_display(); + display_string(1, "GAME OVER SCORE: "); + display_string(2, score2); + display_update(); + translateToImage(); + display_image(0, oled_display); + btns = getbtns(); + } + main(); //If BTN4 is pressed we jump back to main and the game will then restart. } -void snake_move(){ - if(snake_x > 128){ - snake_x = 0; - }else{ - snake_x++; + +void create_snake(){ //Here we will print out the snake + int i,j,k,x,y; + for(k = 0; k < snake.length; k++){ + for(i = 0; i < 1; i++){ //These for-loops can change the size of the snake but we decided to go with one pixel + for(j = 0; j < 1; j++){ + x = snake.x[k] + i; + y = snake.y[k] + j; + + display[y][x] = 1; + } + } + } +} + +void snake_move(){ //MOVEMENT FOR SNAKE + + btns = getbtns(); //Get buttons + + int i; + for(i = snake.length - 1; i > 0; i--){ //This for loop will change the coordinates of every part of the snake so that the body will follow the head + snake.x[i] = snake.x[i - 1]; + snake.y[i] = snake.y[i - 1]; } + + if(snake.dir == 'R'){ //RIGHT + snake.x[0] += 1; + } + if(snake.dir == 'D'){ //DOWN + snake.y[0] += 1; + } + if(snake.dir == 'U'){ //UP + snake.y[0] -= 1; + } + if(snake.dir == 'L'){ //LEFT + snake.x[0] -= 1; + } + + /*for(k = snake.length - 1; k > 0; k--){ // This for loop check if the head will collide with any coordinate of the body + if(snake.x[0] == snake.x[k] && snake.y[0] == snake.y[k]) + collision(); + }*/ + + // SO THE UNO32 REMEMBER THE DIRECTION EVEN AFTER THE BUTTON IS RELEASED + if(snake.dir != 'L'){ + if(btns == 0b0001){ //RIGHT + snake.dir = 'R'; + } + } + if(snake.dir != 'U'){ + if(btns == 0b0010){ //DOWN + snake.dir = 'D'; + } + } + if(snake.dir != 'D'){ + if(btns == 0b0100){ //UP + snake.dir = 'U'; + } + } + if(snake.dir != 'R'){ + if(btns == 0b1000){ //LEFT + snake.dir = 'L'; + } + } +} + +void create_apple(){ + //RANDOMIZE POSITION does not work :( + display[apple_y[score]][apple_x[score]] = 1; //Display apple } -void apple_create(){ - //Randomize - create_object(apple_x, apple_y, 1, 1); +void eat_apple(){ + snake.length++; //Increase length + score++; //Increase score which will also give the apple new coordinates } -void apple_eat(){ - display[apple_x][apple_y] = 0; //Clear apple pixel - apple_x = 5; - apple_y = 5; - apple_create(); - score++; +int getbtns(void){ //Get btns + int btn = (PORTD >> 5) & 0x0007; + btn = (btn << 1); + //Since the buttons was set to bits 11 through 5 we will now + //shift the bits 5 bits the right and check them with and operation + //and then see if buttons 4,3 or 2 are active. + // & them with seven since it is 0b0111 and button 1 will then always be 0 + btn = ((PORTF >> 1) & 0x1) | btn; //For some reason the first button is in the portf register + return btn; //Return the active buttons as integer (active bits will be 1) } diff --git a/game.c.o b/game.c.o deleted file mode 100644 index d3f1c09ec5afb510e08f80de07f088d4436f4df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2764 zcmb7FO>7%Q6n^%uoun<)fdJu0U`s)Dp;|>HhZGfQN%{v$Q4j)EsK{A+w~oPovNzyd zpa^bM%B2!LAdv$SJw!?mmFR&`A2@O90jWK3C=wDmh6p4Mk<9n)&N#bmOyNo6?|tvR zd2im#?D&(DbEguCglI{~u*qoke7pUKsI|DhsNaQdPaU&&uy(5a2-(d z6(*01%w7^9&RiOi;#la9+l{_m&ky5sS)1XpoVm@efto9*xiT&rhlb@Y>+Z3Z9)kGxn6OpOwUV4 z#VR#wHLs2osA)OA->MXse6PK`H+?O-rv`SI>(gRj>mSktXox9~#Q2D0V>~5?V>~U> zF+L=(#P~ir732Hmod`GOkKTLWCT+Mhqq5!eG*5=SMIVGQqxkIvOmjm%R=&``-TNZO z4f!(0P5By}cOi^7@OWSj;(A;`Sg6+c z(33Et&?vs|mHcq;9~a^GZayKw{Y#CCOn|3>d0^^Mkt5_l-oF$sEgm~b18s6VL?_6B zJQowmxZkOVMb6U>PJ4mt1_a>V^c4%`It9JXl3WAP{Lz#YW}-zhmI z`55{j;{0qP_H}`X`4@>ehyN;k=TSn^YQhxo8Pw8ZDg`ae2!^frWlUg?ToUIqj^F$9 zit9g{dE`QSebM<|goW`s&P5!#79BSU14=cuopI6j7{~g@FkV0$+<{!YCyu!}Zw`a; zTCN~&RTH4Ddj@*6-#H}6!^VDt{~jQ7zKIddH?13jouYjOrL!Lj<8ZzE!Z?majK6xl zhIYJ;xQr%1osU;NTIyYp&K_}$*LyXocsTAhex6${-%CRmv z6Uj|67a6z7T(YfgM6^Fg`j^pfL~4E!8@D}+I*E3j3FMQi5BA}s_S}cjwlbj%X+wW>|2_9C)i)^P3XC&bHVyUE}|dC>|n2{EpBAOnp;L=Bc}5(v5kZjbI0iz zztlN?BiTjEcrm86x@Z|6jcGBjW9Pv5<(Rgoi#F>P-bE#qS`ZC@8Hk{jbUV4=)ViJ1QmI;Z=A=?>HEN|bS+2R2 z83V0)=~MRu3EYR$npLN$ncMqca@)z@sjM3;SV%_sQDDmiR07o9DiClt30fXABZ47 zp**SlvGT04r@X3sO&J$%Fn&w<2j$z!ca$F}KUCgPeyn_;e5jnpd%*c;;5q-C@{sZc z<-GEg@_Wh^VAkv0Vor%_9L4UPK$(+xv| zxi#PdV?Exn##o*;FQUB)9gZuop_q=(;a8aDkGcGOJ0e*rjyiP``F delta 262 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 diff --git a/outfile.hex b/outfile.hex index 3c440a7..44a0c83 100644 --- a/outfile.hex +++ b/outfile.hex @@ -1,6 +1,6 @@ :020000040000fa :020000041d00dd -:0800f8000000009da821009dfd +:0800f8000000009d0828009d96 :020000040000fa :020000041d00dd :1001800000701a4004005a2300709a401800004280 @@ -8,259 +8,259 @@ :0401a000000000005b :020000040000fa :020000041d00dd -:10020000009d1a3ce01f5a3700005a8f0800400337 +:10020000009d1a3c40265a3700005a8f08004003d0 :1002100000000000000000000000000000000000de :020000040000fa :020000041d00dd -:10022000009d1a3ce01f5a3704005a8f0800400313 +:10022000009d1a3c40265a3704005a8f08004003ac :1002300000000000000000000000000000000000be :020000040000fa :020000041d00dd -:10024000009d1a3ce01f5a3708005a8f08004003ef +:10024000009d1a3c40265a3708005a8f0800400388 :10025000000000000000000000000000000000009e :020000040000fa :020000041d00dd -:10026000009d1a3ce01f5a370c005a8f08004003cb +:10026000009d1a3c40265a370c005a8f0800400364 :10027000000000000000000000000000000000007e :020000040000fa :020000041d00dd -:10028000009d1a3ce01f5a3710005a8f08004003a7 +:10028000009d1a3c40265a3710005a8f0800400340 :10029000000000000000000000000000000000005e :020000040000fa :020000041d00dd -:1002a000009d1a3ce01f5a3714005a8f0800400383 +:1002a000009d1a3c40265a3714005a8f080040031c :1002b000000000000000000000000000000000003e :020000040000fa :020000041d00dd -:1002c000009d1a3ce01f5a3718005a8f080040035f +:1002c000009d1a3c40265a3718005a8f08004003f8 :1002d000000000000000000000000000000000001e :020000040000fa :020000041d00dd -:1002e000009d1a3ce01f5a371c005a8f080040033b +:1002e000009d1a3c40265a371c005a8f08004003d4 :1002f00000000000000000000000000000000000fe :020000040000fa :020000041d00dd -:10030000009d1a3ce01f5a3720005a8f0800400316 +:10030000009d1a3c40265a3720005a8f08004003af :1003100000000000000000000000000000000000dd :020000040000fa :020000041d00dd -:10032000009d1a3ce01f5a3724005a8f08004003f2 +:10032000009d1a3c40265a3724005a8f080040038b :1003300000000000000000000000000000000000bd :020000040000fa :020000041d00dd -:10034000009d1a3ce01f5a3728005a8f08004003ce +:10034000009d1a3c40265a3728005a8f0800400367 :10035000000000000000000000000000000000009d :020000040000fa :020000041d00dd -:10036000009d1a3ce01f5a372c005a8f08004003aa +:10036000009d1a3c40265a372c005a8f0800400343 :10037000000000000000000000000000000000007d :020000040000fa :020000041d00dd -:10038000009d1a3ce01f5a3730005a8f0800400386 +:10038000009d1a3c40265a3730005a8f080040031f :10039000000000000000000000000000000000005d :020000040000fa :020000041d00dd -:1003a000009d1a3ce01f5a3734005a8f0800400362 +:1003a000009d1a3c40265a3734005a8f08004003fb :1003b000000000000000000000000000000000003d :020000040000fa :020000041d00dd -:1003c000009d1a3ce01f5a3738005a8f080040033e +:1003c000009d1a3c40265a3738005a8f08004003d7 :1003d000000000000000000000000000000000001d :020000040000fa :020000041d00dd -:1003e000009d1a3ce01f5a373c005a8f080040031a +:1003e000009d1a3c40265a373c005a8f08004003b3 :1003f00000000000000000000000000000000000fd :020000040000fa :020000041d00dd -:10040000009d1a3ce01f5a3740005a8f08004003f5 +:10040000009d1a3c40265a3740005a8f080040038e :1004100000000000000000000000000000000000dc :020000040000fa :020000041d00dd -:10042000009d1a3ce01f5a3744005a8f08004003d1 +:10042000009d1a3c40265a3744005a8f080040036a :1004300000000000000000000000000000000000bc :020000040000fa :020000041d00dd -:10044000009d1a3ce01f5a3748005a8f08004003ad +:10044000009d1a3c40265a3748005a8f0800400346 :10045000000000000000000000000000000000009c :020000040000fa :020000041d00dd -:10046000009d1a3ce01f5a374c005a8f0800400389 +:10046000009d1a3c40265a374c005a8f0800400322 :10047000000000000000000000000000000000007c :020000040000fa :020000041d00dd -:10048000009d1a3ce01f5a3750005a8f0800400365 +:10048000009d1a3c40265a3750005a8f08004003fe :10049000000000000000000000000000000000005c :020000040000fa :020000041d00dd -:1004a000009d1a3ce01f5a3754005a8f0800400341 +:1004a000009d1a3c40265a3754005a8f08004003da :1004b000000000000000000000000000000000003c :020000040000fa :020000041d00dd -:1004c000009d1a3ce01f5a3758005a8f080040031d +:1004c000009d1a3c40265a3758005a8f08004003b6 :1004d000000000000000000000000000000000001c :020000040000fa :020000041d00dd -:1004e000009d1a3ce01f5a375c005a8f08004003f9 +:1004e000009d1a3c40265a375c005a8f0800400392 :1004f00000000000000000000000000000000000fc :020000040000fa :020000041d00dd -:10050000009d1a3ce01f5a3760005a8f08004003d4 +:10050000009d1a3c40265a3760005a8f080040036d :1005100000000000000000000000000000000000db :020000040000fa :020000041d00dd -:10052000009d1a3ce01f5a3764005a8f08004003b0 +:10052000009d1a3c40265a3764005a8f0800400349 :1005300000000000000000000000000000000000bb :020000040000fa :020000041d00dd -:10054000009d1a3ce01f5a3768005a8f080040038c +:10054000009d1a3c40265a3768005a8f0800400325 :10055000000000000000000000000000000000009b :020000040000fa :020000041d00dd -:10056000009d1a3ce01f5a376c005a8f0800400368 +:10056000009d1a3c40265a376c005a8f0800400301 :10057000000000000000000000000000000000007b :020000040000fa :020000041d00dd -:10058000009d1a3ce01f5a3770005a8f0800400344 +:10058000009d1a3c40265a3770005a8f08004003dd :10059000000000000000000000000000000000005b :020000040000fa :020000041d00dd -:1005a000009d1a3ce01f5a3774005a8f0800400320 +:1005a000009d1a3c40265a3774005a8f08004003b9 :1005b000000000000000000000000000000000003b :020000040000fa :020000041d00dd -:1005c000009d1a3ce01f5a3778005a8f08004003fc +:1005c000009d1a3c40265a3778005a8f0800400395 :1005d000000000000000000000000000000000001b :020000040000fa :020000041d00dd -:1005e000009d1a3ce01f5a377c005a8f08004003d8 +:1005e000009d1a3c40265a377c005a8f0800400371 :1005f00000000000000000000000000000000000fb :020000040000fa :020000041d00dd -:10060000009d1a3ce01f5a3780005a8f08004003b3 +:10060000009d1a3c40265a3780005a8f080040034c :1006100000000000000000000000000000000000da :020000040000fa :020000041d00dd -:10062000009d1a3ce01f5a3784005a8f080040038f +:10062000009d1a3c40265a3784005a8f0800400328 :1006300000000000000000000000000000000000ba :020000040000fa :020000041d00dd -:10064000009d1a3ce01f5a3788005a8f080040036b +:10064000009d1a3c40265a3788005a8f0800400304 :10065000000000000000000000000000000000009a :020000040000fa :020000041d00dd -:10066000009d1a3ce01f5a378c005a8f0800400347 +:10066000009d1a3c40265a378c005a8f08004003e0 :10067000000000000000000000000000000000007a :020000040000fa :020000041d00dd -:10068000009d1a3ce01f5a3790005a8f0800400323 +:10068000009d1a3c40265a3790005a8f08004003bc :10069000000000000000000000000000000000005a :020000040000fa :020000041d00dd -:1006a000009d1a3ce01f5a3794005a8f08004003ff +:1006a000009d1a3c40265a3794005a8f0800400398 :1006b000000000000000000000000000000000003a :020000040000fa :020000041d00dd -:1006c000009d1a3ce01f5a3798005a8f08004003db +:1006c000009d1a3c40265a3798005a8f0800400374 :1006d000000000000000000000000000000000001a :020000040000fa :020000041d00dd -:1006e000009d1a3ce01f5a379c005a8f08004003b7 +:1006e000009d1a3c40265a379c005a8f0800400350 :1006f00000000000000000000000000000000000fa :020000040000fa :020000041d00dd -:10070000009d1a3ce01f5a37a0005a8f0800400392 +:10070000009d1a3c40265a37a0005a8f080040032b :1007100000000000000000000000000000000000d9 :020000040000fa :020000041d00dd -:10072000009d1a3ce01f5a37a4005a8f080040036e +:10072000009d1a3c40265a37a4005a8f0800400307 :1007300000000000000000000000000000000000b9 :020000040000fa :020000041d00dd -:10074000009d1a3ce01f5a37a8005a8f080040034a +:10074000009d1a3c40265a37a8005a8f08004003e3 :100750000000000000000000000000000000000099 :020000040000fa :020000041d00dd -:10076000009d1a3ce01f5a37ac005a8f0800400326 +:10076000009d1a3c40265a37ac005a8f08004003bf :100770000000000000000000000000000000000079 :020000040000fa :020000041d00dd -:10078000009d1a3ce01f5a37b0005a8f0800400302 +:10078000009d1a3c40265a37b0005a8f080040039b :100790000000000000000000000000000000000059 :020000040000fa :020000041d00dd -:1007a000009d1a3ce01f5a37b4005a8f08004003de +:1007a000009d1a3c40265a37b4005a8f0800400377 :1007b0000000000000000000000000000000000039 :020000040000fa :020000041d00dd -:1007c000009d1a3ce01f5a37b8005a8f08004003ba +:1007c000009d1a3c40265a37b8005a8f0800400353 :1007d0000000000000000000000000000000000019 :020000040000fa :020000041d00dd -:1007e000009d1a3ce01f5a37bc005a8f0800400396 +:1007e000009d1a3c40265a37bc005a8f080040032f :1007f00000000000000000000000000000000000f9 :020000040000fa :020000041d00dd -:10080000009d1a3ce01f5a37c0005a8f0800400371 +:10080000009d1a3c40265a37c0005a8f080040030a :1008100000000000000000000000000000000000d8 :020000040000fa :020000041d00dd -:10082000009d1a3ce01f5a37c4005a8f080040034d +:10082000009d1a3c40265a37c4005a8f08004003e6 :1008300000000000000000000000000000000000b8 :020000040000fa :020000041d00dd -:10084000009d1a3ce01f5a37c8005a8f0800400329 +:10084000009d1a3c40265a37c8005a8f08004003c2 :100850000000000000000000000000000000000098 :020000040000fa :020000041d00dd -:10086000009d1a3ce01f5a37cc005a8f0800400305 +:10086000009d1a3c40265a37cc005a8f080040039e :100870000000000000000000000000000000000078 :020000040000fa :020000041d00dd -:10088000009d1a3ce01f5a37d0005a8f08004003e1 +:10088000009d1a3c40265a37d0005a8f080040037a :100890000000000000000000000000000000000058 :020000040000fa :020000041d00dd -:1008a000009d1a3ce01f5a37d4005a8f08004003bd +:1008a000009d1a3c40265a37d4005a8f0800400356 :1008b0000000000000000000000000000000000038 :020000040000fa :020000041d00dd -:1008c000009d1a3ce01f5a37d8005a8f0800400399 +:1008c000009d1a3c40265a37d8005a8f0800400332 :1008d0000000000000000000000000000000000018 :020000040000fa :020000041d00dd -:1008e000009d1a3ce01f5a37dc005a8f0800400375 +:1008e000009d1a3c40265a37dc005a8f080040030e :1008f00000000000000000000000000000000000f8 :020000040000fa :020000041d00dd -:10090000009d1a3ce01f5a37e0005a8f0800400350 +:10090000009d1a3c40265a37e0005a8f08004003e9 :1009100000000000000000000000000000000000d7 :020000040000fa :020000041d00dd -:10092000009d1a3ce01f5a37e4005a8f080040032c +:10092000009d1a3c40265a37e4005a8f08004003c5 :1009300000000000000000000000000000000000b7 :020000040000fa :020000041d00dd -:10094000009d1a3ce01f5a37e8005a8f0800400308 +:10094000009d1a3c40265a37e8005a8f08004003a1 :100950000000000000000000000000000000000097 :020000040000fa :020000041d00dd -:10096000009d1a3ce01f5a37ec005a8f08004003e4 +:10096000009d1a3c40265a37ec005a8f080040037d :100970000000000000000000000000000000000077 :020000040000fa :020000041d00dd -:10098000009d1a3ce01f5a37f0005a8f08004003c0 +:10098000009d1a3c40265a37f0005a8f0800400359 :100990000000000000000000000000000000000057 :020000040000fa :020000041d00dd -:1009a000009d1a3ce01f5a37f4005a8f080040039c +:1009a000009d1a3c40265a37f4005a8f0800400335 :1009b0000000000000000000000000000000000037 :020000040000fa :020000041d00dd -:1009c000009d1a3ce01f5a37f8005a8f0800400378 +:1009c000009d1a3c40265a37f8005a8f0800400311 :1009d0000000000000000000000000000000000017 :020000040000fa :020000041d00dd -:1009e000009d1a3ce01f5a37fc005a8f0800400354 +:1009e000009d1a3c40265a37fc005a8f08004003ed :0409f0000000000003 :020000040000fa :020000041d00dd @@ -268,17 +268,17 @@ :020000040000fa :020000041d00dd :1010100000601a40c0045a7f050040130000000021 -:10102000009d1a3c4c1e5a27080040030000000097 -:1010300000a01d3c0040bd2700a01c3c1c009c27bc +:10102000009d1a3cac245a27080040030000000031 +:1010300000a01d3c0040bd2700a01c3c6c009c276c :101040000260094020582001801e2a7d8449497d84 :1010500002608940c000000000e0dc4102608b407b -:10106000c0000000009d083c601e082509f8000132 -:101070000000000000a0083c1c00082500a0093c5e -:10108000741229250600001000000000000000adc9 +:10106000c0000000009d083cc024082509f80001cc +:101070000000000000a0083c6c00082500a0093c0e +:10108000981329250600001000000000000000ada4 :10109000040000ad080000ad0c0000ad10000825f4 :1010a0002b080901f9ff201400000000009d083cf6 -:1010b0001026082500a0093c0800292500a00a3cac -:1010c0001c004a25050000100000000000000b8de8 +:1010b000802c082500a0093c0800292500a00a3c36 +:1010c0006c004a25050000100000000000000b8d98 :1010d00000002bad04000825040029252b082a0157 :1010e000faff20140000000000488040ffff0a249f :1010f00000588a40009d093c00002925017889405c @@ -286,9 +286,9 @@ :1011100001608a408000093c0068894000800840e6 :101120008005097d404c0900006008405800013ce2 :10113000244001012540280100608840009d083cb2 -:10114000801e082509f8000100000000006008402a +:10114000e024082509f800010000000000600840c4 :10115000bfff013cffff21342440010100608840b3 -:10116000000084300000a530009d083c9021082537 +:10116000000084300000a530009d083cf0270825d1 :0811700008000001000000006e :020000040000fa :020000041d00dd @@ -332,10 +332,10 @@ :1013d0001505400b000000001400c28f0000428081 :1013e00010004010000000001400c28f0000438075 :1013f00000a0023c1000c48f002904000000c48f2c -:101400002120a4001c10422421108200000043a0cf +:101400002120a4004811422421108200000043a0a2 :101410001400c28f010042241400c2af1205400b19 :101420000000000000a0023c1000c38f0021030058 -:101430000000c38f211883001c1042242110620079 +:101430000000c38f2118830048114224211062004c :1014400020000324000043a00000c28f01004224ba :101450000000c2af0000c28f10004228deff40141f :101460000000000021e8c0030c00be8f1000bd2763 @@ -348,12 +348,12 @@ :1014d000100004247304400f0000000088bf023c89 :1014e0005861423410000324000043ac1400c0af24 :1014f0006505400b0000000000a0023c1000c38ff7 -:10150000002103001400c38f211883001c10422403 +:10150000002103001400c38f2118830048114224d6 :1015100021106200000042801c00c2af1c00c28f7c :101520008000423003004010000000006205400bc4 :10153000000000001800c0af5e05400b0000000076 :101540001c00c28fc01802001800c28f2118620050 -:10155000009d023cf42142242110620000004290d0 +:10155000009d023c54284224211062000000429069 :10156000212040007304400f000000001800c28fcb :10157000010042241800c2af1800c28f08004228a0 :10158000efff4014000000001400c28f010042244d @@ -387,249 +387,358 @@ :101740000c00c2a30d00c0a30800c0afec05400b05 :10175000000000000000c28fc01802000800c28f05 :101760002118620000a0023cc02103000400c38fc6 -:10177000211883001c0042242110620000004290c6 +:1017700021188300e0004224211062000000429002 :1017800005004010000000000d00c3930c00c29340 :10179000251062000d00c2a30c00c293401002008d :1017a0000c00c2a30800c28f010042240800c2af8f :1017b0000800c28f08004228e6ff40140000000025 :1017c0000000c28fc01902000400c28f21186200fd -:1017d00000a0023c5c104224211062000d00c39363 +:1017d00000a0023c88114224211062000d00c39336 :1017e000000043a00400c28f010042240400c2afe5 :1017f0000400c28f80004228d0ff40140000000087 :101800000000c28f010042240000c2af0000c28f5e :1018100004004228c6ff40140000000021e8c00375 :101820001c00be8f2000bd270800e0030000000060 -:10183000f0ffbd270c00beaf21f0a0031000c4af25 -:101840001400c5af1800c6af1c00c7af0000c0af82 -:101850004406400b000000000400c0af3d06400bf2 -:10186000000000000000c38f1400c28f2a10620025 -:101870001d004014000000001400c38f1c00c28f24 -:10188000211862000000c28f2a1062001600401466 -:10189000000000000400c38f1000c28f2a106200f5 -:1018a00011004014000000001000c38f1800c28f08 -:1018b000211862000400c28f2a1062000a0040143e -:1018c0000000000000a0023c0000c38fc021030004 -:1018d0000400c38f211883001c00422421106200e1 -:1018e00001000324000043a00400c28f0100422431 -:1018f0000400c2af0400c28f80004228d9ff401408 -:10190000000000000000c28f010042240000c2afae -:101910000000c28f20004228cfff401400000000ca -:1019200021e8c0030c00be8f1000bd270800e003b3 -:1019300000000000e8ffbd271400beaf21f0a003a7 -:101940000000c0af6806400b000000000400c0affc -:101950006106400b0000000000a0023c0000c38fa5 -:10196000c02103000400c38f211883001c004224ff -:1019700021106200000040a00400c28f0100422438 -:101980000400c2af0400c28f80004228f2ff40145e -:10199000000000000000c28f010042240000c2af1e -:1019a0000000c28f20004228e8ff40140000000021 -:1019b0000800c0af7706400b0000000000a0023c0a -:1019c0005c1043240800c28f21106200000040a078 -:1019d0000800c28f010042240800c2af0800c28f75 -:1019e00000024228f5ff40140000000021e8c00377 -:1019f0001400be8f1800bd270800e003000000009f -:101a0000e8ffbd271400bfaf1000beaf21f0a00358 -:101a10004d06400f000000009506400f000000003a -:101a2000c205400f000000002120000000a0023c81 -:101a30005c1045247605400f0000000021e8c0033b -:101a40001400bf8f1000be8f1800bd270800e003f0 -:101a500000000000e8ffbd271400bfaf1000beafbc -:101a600021f0a003b806400f00000000e706400f79 -:101a70000000000000a0023c7012438c00a0023c59 -:101a80001400428c090062140000000000a0023c17 -:101a90001000438c00a0023c1800428c030062142a -:101aa00000000000fb06400f0000000000a0023c08 -:101ab0000800428c21204000ad07400f00000000cc -:101ac000d106400f0000000021e8c0031400bf8fc2 -:101ad0001000be8f1800bd270800e00300000000c2 -:101ae000e8ffbd271400bfaf1000beaf21f0a00378 -:101af00000a0023c05000324681243ac00a0023c95 -:101b00007012448c00a0023c1000458c00a0023ce6 -:101b10006812438c00a0023c0c00428c2130600013 -:101b2000213840000c06400f0000000021e8c003ef -:101b30001400bf8f1000be8f1800bd270800e003ff -:101b400000000000f8ffbd270400beaf21f0a00395 -:101b500000a0023c7012428c810042280500401413 -:101b60000000000000a0023c701240ace206400bf6 -:101b70000000000000a0023c7012428c01004324cf -:101b800000a0023c701243ac21e8c0030400be8fe9 -:101b90000800bd270800e00300000000e8ffbd27a3 -:101ba0001400bfaf1000beaf21f0a00300a0023ca4 -:101bb0001400438c00a0023c1800428c21206000dd -:101bc0002128400001000624010007240c06400fd4 -:101bd0000000000021e8c0031400bf8f1000be8f7a -:101be0001800bd270800e00300000000e8ffbd2743 -:101bf0001400bfaf1000beaf21f0a00300a0023c54 -:101c00001400448c00a0023c1800438c00a0023c4d -:101c1000c0210400211883001c004224211062000e -:101c2000000040a000a0023c05000324140043acc7 -:101c300000a0023c05000324180043ace706400f57 -:101c40000000000000a0023c6c12428c0100432402 -:101c500000a0023c6c1243ac21e8c0031400bf8f0b -:101c60001000be8f1800bd270800e0030000000030 -:101c7000f8ffbd270400beaf21f0a0030000000064 -:101c800021e8c0030400be8f0800bd270800e00360 -:101c900000000000e8ffbd271400bfaf1000beaf7a -:101ca00021f0a00380bf023c30f2423499aa033ce9 -:101cb00055666334000043ac80bf023c30f24234ce -:101cc0006655033caa996334000043ac0000000051 -:101cd00080bf023c00f042340000438c2000023cf4 -:101ce00024106200faff40140000000080bf023c94 -:101cf00004f042341800033c000043ac0000000034 -:101d000080bf023c00f042340000438c2000023cc3 -:101d100024106200faff40140000000080bf023c63 -:101d200030f24234000040ac80bf023c609042344c -:101d3000ffff0334000043ac88bf023c30614234f3 -:101d4000000040ac88bf023c04614234ff00032421 -:101d5000000043ac88bf023c10614234000040ac3c -:101d600088bf023c50614234ffff0334000043aca3 -:101d700088bf023c9061423400020324000043ac5f -:101d800088bf023c70614234000040ac88bf023c16 -:101d9000b0614234000040ac88bf023c4461423430 -:101da00070000324000043ac88bf023c84614234cd -:101db00000020324000043ac88bf023cc8604234e8 -:101dc00000010324000043ac88bf023c4861423458 -:101dd00002000324000043ac80bf023c005a42349e -:101de000000040ac80bf023c305a4234040003245f -:101df000000043ac80bf023c145a4234400003242c -:101e0000000043ac80bf023c085a42344000032427 -:101e1000000043ac80bf023c085a42342000032437 -:101e2000000043ac80bf023c085a423400800334b7 -:101e3000000043ac9304400f000000008006400ff8 -:101e4000000000008f07400b00000000f8ffbd27d6 -:101e50000400beaf21f0a0039607400b0000000075 -:101e6000f8ffbd270400beaf21f0a00321e8c003a6 -:101e70000400be8f0800bd270800e003000000003a -:101e8000f8ffbd270400beaf21f0a00321e8c00386 -:101e90000400be8f0800bd270800e003000000001a -:101ea0000f008430300082200800e00300000000b2 -:101eb00000000000fcffbd230000b3af98b713344f -:101ec00000000e2400000f24b507400b00000000a6 -:101ed000000000000d00e411000000000000000000 -:101ee000ffff8420bc07400b000000000000000042 -:101ef000f8ffd31100000000000000000100ce2117 -:101f0000bc07400b00000000000000000000b38f81 -:101f10000400bd230800e0030000000000000000f2 -:101f2000fcffbd230000b0affcffbd230000b1af3c -:101f3000fcffbd230000bfaffcffbd230000a4af2a -:101f40002080a0002088800002231000a807400ff6 -:101f50000000000000000000000022a20222100089 -:101f6000a807400f0000000000000000010022a2ae -:101f70003a000c240000000002002ca202211000f4 -:101f8000a807400f0000000000000000030022a28c -:101f900020200002a807400f000000000000000001 -:101fa000040022a200000d240000000005002da264 -:101fb0000000a48f0400bd230000bf8f0400bd23d8 -:101fc0000000b18f0400bd230000b08f0400bd23ca -:101fd0000800e00300000000000000000000000016 -:101fe000e020009de020009de020009de020009d7d -:101ff000e020009de020009de020009de020009d6d -:10200000e020009de020009de020009de020009d5c -:10201000e020009de020009de020009de020009d4c -:10202000e020009de020009de020009de020009d3c -:10203000e020009de020009de020009de020009d2c -:10204000e020009de020009de020009de020009d1c -:10205000e020009de020009de020009de020009d0c -:10206000e020009de020009de020009de020009dfc -:10207000e020009de020009de020009de020009dec -:10208000e020009de020009de020009de020009ddc -:10209000e020009de020009de020009de020009dcc -:1020a000e020009de020009de020009de020009dbc -:1020b000e020009de020009de020009de020009dac -:1020c000e020009de020009de020009de020009d9c -:1020d000e020009de020009de020009de020009d8c -:1020e000b8ffbd230000bfaf0400a1af0800a2af3e -:1020f0000c00a3af1000a4af1400a5af1800a6af4a -:102100001c00a7af2000a8af2400a9af2800aaafe9 -:102110002c00abaf3000acaf3400adaf3800aeaf89 -:102120003c00afaf4000b8af4400b9af1c07400f50 -:10213000000000004400b98f4000b88f3c00af8f12 -:102140003800ae8f3400ad8f3000ac8f2c00ab8fd9 -:102150002800aa8f2400a98f2000a88f1c00a78f19 -:102160001800a68f1400a58f1000a48f0c00a38f59 -:102170000800a28f0400a18f0000bf8f4800bd237c -:1021800018000042000000000000000000000000f5 -:10219000000084300000a5302507400f000000003b -:0821a000ffff00100000000029 -:020000040000fa -:020000041d00dd -:1021a8004c000000ffffffff0e030001ffffffffd1 -:1021b800ffffffff010002010010009d0000009dcd -:1021c80000f0010000f0019d00100000f02fc0bfda -:1021d80010000000000000a008000000ffffffff43 -:0c21e8002002009d0002009d200000006d -:020000040000fa -:020000041d00dd -:1021f40000000000000000000000000000000000db -:1022040000000000000000000000000000000000ca -:1022140000000000000000000000000000000000ba -:1022240000000000000000000000000000000000aa -:10223400000000000000000000000000000000009a -:10224400000000000000000000000000000000008a -:10225400000000000000000000000000000000007a -:10226400000000000000000000000000000000006a -:10227400000000000000000000000000000000005a -:10228400000000000000000000000000000000004a -:10229400000000000000000000000000000000003a -:1022a400000000000000000000000000000000002a -:1022b400000000000000000000000000000000001a -:1022c400000000000000000000000000000000000a -:1022d40000000000000000000000000000000000fa -:1022e40000000000000000000000000000000000ea -:1022f40000000000000000000000005e000000007c -:10230400000004030403000000247e24247e24002f -:1023140000244aff5224000000462610086462008c -:1023240000344a4a34205000000000040300000036 -:102334000000007e81000000000000817e0000009b -:10234400002a1c3e1c2a00000008083e0808000061 -:102354000000008060000000000808080808000071 -:10236400000000006000000000402010080402008b -:10237400003e4149413e00000000427f4000000011 -:10238400000062514946000000002249493600001d -:1023940000000e087f0800000000234545390000b6 -:1023a40000003e49493200000000016119070000a5 -:1023b400000036494936000000000609097e000085 -:1023c40000000066000000000000806600000000bd -:1023d400000008142241000000001414141400002a -:1023e4000000412214080000000201510906000007 -:1023f400001c225959520c0000007e09097e00007d -:1024040000007f494936000000003e41412200009f -:1024140000007f41413e000000007f494941000027 -:1024240000007f090901000000003e415132000014 -:1024340000007f08087f00000000417f4100000089 -:1024440000002040403f000000007f0814630000ab -:1024540000007f4040400000007f0204027f000033 -:10246400007f0608307f000000003e41413e00002e -:1024740000007f090906000000003e41617e400023 -:1024840000007f0909760000000026494932000057 -:102494000001017f0101000000003f40403f0000b7 -:1024a400001f2040201f0000003f4030403f00003c -:1024b4000000770808770000000304780403000094 -:1024c400000071494947000000007f4141000000bd -:1024d400000204081020400000000041417f000079 -:1024e400000402010204000000404040404040005b -:1024f40000000102040000000000304828780000b9 -:1025040000007f48483000000000304848000000c8 -:1025140000003048487f0000000030585810000088 -:1025240000007e090102000000005098987000002d -:1025340000007f08087000000000007a000000001e -:1025440000004080807a000000007f1028480000ce -:102554000000007f000000000078081008700000f0 -:10256400000078080870000000003048483000007f -:102574000000f828281000000000102828f80000a7 -:1025840000007008081000000000485454240000a3 -:102594000000083c4820000000003840207800007b -:1025a4000000384038000000003840204038000067 -:1025b4000000483030480000000018a0a078000057 -:1025c40000006454544c00000000081c2241000028 -:1025d4000000007e00000000000041221c080000f2 -:1025e4000000040204020000007844424478000021 -:020000040000fa -:020000041d00dd -:1025f80000002002010000030000000000000000ad -:082608000100000000000000c9 -:020000040000fa -:020000041d00dd -:102610001400000001000000100000004000000055 -:0426200010000000a6 +:10183000e8ffbd271400beaf21f0a0030000c0af39 +:101840002706400b000000000400c0af2006400b3c +:101850000000000000a0023c0000c38fc021030074 +:101860000400c38f21188300e0004224211062008d +:10187000000040a00400c28f010042240400c2af57 +:101880000400c28f80004228f2ff401400000000d4 +:101890000000c28f010042240000c2af0000c28fce +:1018a00020004228e8ff4014000000000800c0affc +:1018b0003606400b0000000000a0023c88114324c3 +:1018c0000800c28f21106200000040a00800c28ff3 +:1018d000010042240800c2af0800c28f0002422863 +:1018e000f5ff40140000000021e8c0031400be8f83 +:1018f0001800bd270800e00300000000e8ffbd2736 +:101900001400bfaf1000beaf21f0a0030c06400fc3 +:10191000000000005406400f00000000c205400f08 +:10192000000000002120000000a0023c8811452496 +:101930007605400f0000000021e8c0031400bf8faf +:101940001000be8f1800bd270800e0030000000053 +:10195000e0ffbd271c00bfaf1800beaf21f0a00301 +:101960003e07400f0000000000a0023c6c00428ccb +:10197000000042902120400000a0023ce010438c77 +:1019800000a0023c801803003c00422421106200a9 +:101990000000428c110082140000000000a0023cf4 +:1019a0006c0042240400428c000042902120400040 +:1019b00000a0023ce010438c00a0023c8018030011 +:1019c0000c004224211062000000428c03008214ab +:1019d000000000000708400f0000000000a0023ccb +:1019e0006c00428c0000439020000224130062101f +:1019f0000000000000a0023c6c00428c00004290fd +:101a00000e0040100000000000a0023c6c004224c8 +:101a10000400428c00004390800002240700621002 +:101a20000000000000a0023c6c0042240400428c34 +:101a3000000042900300401400000000c506400f63 +:101a400000000000fb06400f0000000000a0023c68 +:101a50006c0042240800428cffff42241000c2aff9 +:101a6000b506400b0000000000a0023c6c004224c0 +:101a70000400428c0000439000a0023c6c00422411 +:101a80000400448c1000c28f21108200000042909c +:101a90000d0062140000000000a0023c6c00428cab +:101aa0000000439000a0023c6c00448c1000c28fe8 +:101ab0002110820000004290030062140000000028 +:101ac000c506400f000000001000c28fffff422437 +:101ad0001000c2af1000c28fe3ff401c00000000e6 +:101ae000ea07400f0000000000a0023c0800428c02 +:101af000212040004509400f0000000021e8c003fc +:101b00001c00bf8f1800be8f2000bd270800e00317 +:101b100000000000e0ffbd271c00bfaf1800beaff3 +:101b200021f0a003580002241000c2a700a0023c2c +:101b3000e010428cff00423030004224ff0042306f +:101b40002014027c1000c2a3ee06400b000000002f +:101b50000c06400f0000000001000424009d023c20 +:101b6000542c4524e004400f00000000020004242f +:101b70001000c22721284000e004400f00000000b0 +:101b80001e05400f00000000c205400f00000000cd +:101b90002120000000a0023c881145247605400f5a +:101ba000000000001b08400f00000000211840004a +:101bb00000a0023c941343ac00a0023c9413438c5d +:101bc00008000224e2ff6214000000003e08400ffb +:101bd0000000000021e8c0031c00bf8f1800be8f6a +:101be0002000bd270800e00300000000e0ffbd2743 +:101bf0001c00beaf21f0a0030800c0af3207400bad +:101c0000000000000000c0af2c07400b00000000e7 +:101c10000400c0af2607400b0000000000a0023cfb +:101c20006c0042240400438c0800c28f2110620023 +:101c300000004290211840000000c28f2110620075 +:101c40000c00c2af00a0023c6c00438c0800c28fa5 +:101c50002110620000004290211840000400c28f51 +:101c6000211062001000c2af00a0023c1000c38f20 +:101c7000c02103000c00c38f21188300e000422420 +:101c80002110620001000324000043a00400c28f61 +:101c9000010042240400c2af0400c28fdfff4018dd +:101ca000000000000000c28f010042240000c2af0b +:101cb0000000c28fd6ff4018000000000800c28f4d +:101cc000010042240800c2af00a0023c6c00422484 +:101cd0000800438c0800c28f2a104300c9ff40143b +:101ce0000000000021e8c0031c00be8f2000bd27bb +:101cf0000800e00300000000e0ffbd271c00bfafac +:101d00001800beaf21f0a0031b08400f0000000028 +:101d10002118400000a0023c941343ac00a0023cf8 +:101d20006c0042240800428cffff42241000c2af26 +:101d30006907400b0000000000a0023c6c00422438 +:101d40000400438c1000c28f2110620000a0033ced +:101d50006c0063240400648c1000c38fffff6324b5 +:101d60002118830000006390000043a000a0023c03 +:101d70006c00438c1000c28f2110620000a0033c55 +:101d80006c00648c1000c38fffff63242118830054 +:101d900000006390000043a01000c28fffff4224a8 +:101da0001000c2af1000c28fe3ff401c0000000013 +:101db00000a0023c6c0042240c004380520002242c +:101dc0000b0062140000000000a0023c6c004224e2 +:101dd0000400428c00a0033c6c0063240400638c6c +:101de0000000639001006324ff006330000043a003 +:101df00000a0023c6c0042240c00438044000224fa +:101e0000090062140000000000a0023c6c00428c3b +:101e100000a0033c6c00638c00006390010063240d +:101e2000ff006330000043a000a0023c6c0042248d +:101e30000c004380550002240900621400000000d9 +:101e400000a0023c6c00428c00a0033c6c00638c40 +:101e500000006390ffff6324ff006330000043a095 +:101e600000a0023c6c0042240c0043804c00022481 +:101e70000b0062140000000000a0023c6c00422431 +:101e80000400428c00a0033c6c0063240400638cbb +:101e900000006390ffff6324ff006330000043a055 +:101ea00000a0023c6c0042240c0043804c00022441 +:101eb0000a0062100000000000a0023c9413438c52 +:101ec00001000224050062140000000000a0023c92 +:101ed0006c004224520003240c0043a000a0023cea +:101ee0006c0042240c004380550002240a0062105a +:101ef0000000000000a0023c9413438c0200022466 +:101f0000050062140000000000a0023c6c004224a6 +:101f1000440003240c0043a000a0023c6c004224b7 +:101f20000c004380440002240a00621000000000fc +:101f300000a0023c9413438c0400022405006214a8 +:101f40000000000000a0023c6c0042245500032465 +:101f50000c0043a000a0023c6c0042240c00438013 +:101f6000520002240a0062100000000000a0023c9f +:101f70009413438c08000224050062140000000042 +:101f800000a0023c6c0042244c0003240c0043a03f +:101f900021e8c0031c00bf8f1800be8f2000bd27a2 +:101fa0000800e00300000000f8ffbd270400beaffa +:101fb00021f0a00300a0023ce010438c00a0023cf2 +:101fc000801803003c004224211062000000448c71 +:101fd00000a0023ce010438c00a0023c80180300eb +:101fe0000c004224211062000000438c00a0023c3f +:101ff000c021040021188300e00042242110620067 +:1020000001000324000043a021e8c0030400be8fa8 +:102010000800bd270800e00300000000f8ffbd270e +:102020000400beaf21f0a00300a0023c6c004224db +:102030000800428c0100432400a0023c6c004224b2 +:10204000080043ac00a0023ce010428c0100432495 +:1020500000a0023ce01043ac21e8c0030400be8fa6 +:102060000800bd270800e00300000000f0ffbd27c6 +:102070000c00beaf21f0a00388bf023cd060423408 +:102080000000428c42110200070042300000c2af43 +:102090000000c28f401002000000c2af88bf023ca7 +:1020a000506142340000428c421002000100433073 +:1020b0000000c28f251062000000c2af0000c28f76 +:1020c00021e8c0030c00be8f1000bd270800e0030c +:1020d00000000000f8ffbd270400beaf21f0a00300 +:1020e0000000000021e8c0030400be8f0800bd27e7 +:1020f0000800e00300000000e8ffbd271400bfafa8 +:102100001000beaf21f0a00380bf023c30f2423489 +:1021100099aa033c55666334000043ac80bf023c7f +:1021200030f242346655033caa996334000043ac54 +:102130000000000080bf023c00f042340000438ced +:102140002000023c24106200faff4014000000004e +:1021500080bf023c04f042341800033c000043ac52 +:102160000000000080bf023c00f042340000438cbd +:102170002000023c24106200faff4014000000001e +:1021800080bf023c30f24234000040ac80bf023cd1 +:1021900060904234ffff0334000043ac88bf023c30 +:1021a00030614234000040ac88bf023c04614234dc +:1021b000ff000324000043ac88bf023c106142349e +:1021c000000040ac88bf023c50614234ffff033442 +:1021d000000043ac88bf023c9061423400020324fb +:1021e000000043ac88bf023c70614234000040ac48 +:1021f00088bf023cb0614234000040ac88bf023c62 +:102200004461423470000324000043ac88bf023ca8 +:102210008461423400020324000043ac88bf023cc6 +:10222000c860423400010324000043ac88bf023c74 +:102230004861423402000324000043ac80bf023cea +:10224000005a4234000040ac80bf023c305a423455 +:1022500004000324000043ac80bf023c145a423403 +:1022600040000324000043ac80bf023c085a4234c3 +:1022700040000324000043ac80bf023c085a4234b3 +:1022800020000324000043ac80bf023c085a4234c3 +:1022900000800334000043ac9304400f00000000b2 +:1022a00000a0023ce01040ac00a0023c00a0033cb7 +:1022b000e41063246c0043ac00a0023c6c00422498 +:1022c00000a0033c7c006324040043ac00a0023c5b +:1022d0006c00428c10000324000043a000a0023ccc +:1022e0006c0042240400428c40000324000043a000 +:1022f00000a0023c6c00428c010042241000032428 +:10230000000043a000a0023c6c0042240400428c68 +:102310000100422441000324000043a000a0023c2d +:102320006c00428c0200422410000324000043a0f1 +:1023300000a0023c6c0042240400428c02004224b3 +:1023400042000324000043a000a0023c6c00428c29 +:102350000300422410000324000043a000a0023c1c +:102360006c0042240400428c0300422443000324f6 +:10237000000043a000a0023c6c00428c04004224f8 +:1023800010000324000043a000a0023c6c00422483 +:102390000400428c0400422444000324000043a0b3 +:1023a00000a0023c6c00428c050042241000032473 +:1023b000000043a000a0023c6c0042240400428cb8 +:1023c0000500422445000324000043a000a0023c75 +:1023d0006c00428c0600422410000324000043a03d +:1023e00000a0023c6c0042240400428c06004224ff +:1023f00046000324000043a000a0023c6c00428c75 +:102400000700422410000324000043a000a0023c67 +:102410006c0042240400428c07004224470003243d +:10242000000043a000a0023c6c00428c0800422443 +:1024300010000324000043a000a0023c6c004224d2 +:102440000400428c0800422448000324000043a0fa +:1024500000a0023c6c00428c0900422410000324be +:10246000000043a000a0023c6c0042240400428c07 +:102470000900422449000324000043a000a0023cbc +:102480006c0042240a000324080043ac00a0023c74 +:102490006c0042244c0003240c0043a03f06400f74 +:1024a000000000002709400b00000000f8ffbd27d6 +:1024b0000400beaf21f0a0032e09400b0000000075 +:1024c000f8ffbd270400beaf21f0a00321e8c00340 +:1024d0000400be8f0800bd270800e00300000000d4 +:1024e000f8ffbd270400beaf21f0a00321e8c00320 +:1024f0000400be8f0800bd270800e00300000000b4 +:102500000f008430300082200800e003000000004b +:1025100000000000fcffbd230000b3af0700133c28 +:10252000f02b733600000e2400000f244e09400be0 +:1025300000000000000000000d00e4110000000099 +:1025400000000000ffff84205509400b0000000040 +:1025500000000000f8ffd3110000000000000000a0 +:102560000100ce215509400b0000000000000000d2 +:102570000000b38f0400bd230800e003000000004a +:1025800000000000fcffbd230000b0affcffbd2336 +:102590000000b1affcffbd230000bfaffcffbd23b7 +:1025a0000000a4af2080a00020888000022310003b +:1025b0004009400f0000000000000000000022a2bf +:1025c000022210004009400f00000000000000003f +:1025d000010022a23a000c240000000002002ca2fc +:1025e000022110004009400f000000000000000020 +:1025f000030022a2202000024009400f000000003a +:1026000000000000040022a200000d2400000000d1 +:1026100005002da20000a48f0400bd230000bf8f81 +:102620000400bd230000b18f0400bd230000b08f63 +:102630000400bd230800e0030000000000000000cb +:102640004027009d4027009d4027009d4027009d7a +:102650004027009d4027009d4027009d4027009d6a +:102660004027009d4027009d4027009d4027009d5a +:102670004027009d4027009d4027009d4027009d4a +:102680004027009d4027009d4027009d4027009d3a +:102690004027009d4027009d4027009d4027009d2a +:1026a0004027009d4027009d4027009d4027009d1a +:1026b0004027009d4027009d4027009d4027009d0a +:1026c0004027009d4027009d4027009d4027009dfa +:1026d0004027009d4027009d4027009d4027009dea +:1026e0004027009d4027009d4027009d4027009dda +:1026f0004027009d4027009d4027009d4027009dca +:102700004027009d4027009d4027009d4027009db9 +:102710004027009d4027009d4027009d4027009da9 +:102720004027009d4027009d4027009d4027009d99 +:102730004027009d4027009d4027009d4027009d89 +:10274000b8ffbd230000bfaf0400a1af0800a2afd7 +:102750000c00a3af1000a4af1400a5af1800a6afe3 +:102760001c00a7af2000a8af2400a9af2800aaaf83 +:102770002c00abaf3000acaf3400adaf3800aeaf23 +:102780003c00afaf4000b8af4400b9af3508400fd0 +:10279000000000004400b98f4000b88f3c00af8fac +:1027a0003800ae8f3400ad8f3000ac8f2c00ab8f73 +:1027b0002800aa8f2400a98f2000a88f1c00a78fb3 +:1027c0001800a68f1400a58f1000a48f0c00a38ff3 +:1027d0000800a28f0400a18f0000bf8f4800bd2316 +:1027e000180000420000000000000000000000008f +:1027f000000084300000a5303e08400f00000000bb +:08280000ffff001000000000c2 +:020000040000fa +:020000041d00dd +:102808004c000000ffffffff0e030001ffffffff6a +:10281800ffffffff010002010010009d0000009d66 +:1028280000f0010000f0019d00100000f02fc0bf73 +:1028380010000000000000a008000000ffffffffdc +:0c2848002002009d0002009d2000000006 +:020000040000fa +:020000041d00dd +:102854000000000000000000000000000000000074 +:102864000000000000000000000000000000000064 +:102874000000000000000000000000000000000054 +:102884000000000000000000000000000000000044 +:102894000000000000000000000000000000000034 +:1028a4000000000000000000000000000000000024 +:1028b4000000000000000000000000000000000014 +:1028c4000000000000000000000000000000000004 +:1028d40000000000000000000000000000000000f4 +:1028e40000000000000000000000000000000000e4 +:1028f40000000000000000000000000000000000d4 +:1029040000000000000000000000000000000000c3 +:1029140000000000000000000000000000000000b3 +:1029240000000000000000000000000000000000a3 +:102934000000000000000000000000000000000093 +:102944000000000000000000000000000000000083 +:1029540000000000000000000000005e0000000015 +:10296400000004030403000000247e24247e2400c9 +:1029740000244aff52240000004626100864620026 +:1029840000344a4a342050000000000403000000d0 +:102994000000007e81000000000000817e00000035 +:1029a400002a1c3e1c2a00000008083e08080000fb +:1029b400000000806000000000080808080800000b +:1029c4000000000060000000004020100804020025 +:1029d400003e4149413e00000000427f40000000ab +:1029e40000006251494600000000224949360000b7 +:1029f40000000e087f080000000023454539000050 +:102a040000003e494932000000000161190700003e +:102a1400000036494936000000000609097e00001e +:102a24000000006600000000000080660000000056 +:102a340000000814224100000000141414140000c3 +:102a440000004122140800000002015109060000a0 +:102a5400001c225959520c0000007e09097e000016 +:102a640000007f494936000000003e414122000039 +:102a740000007f41413e000000007f4949410000c1 +:102a840000007f090901000000003e4151320000ae +:102a940000007f08087f00000000417f4100000023 +:102aa40000002040403f000000007f081463000045 +:102ab40000007f4040400000007f0204027f0000cd +:102ac400007f0608307f000000003e41413e0000c8 +:102ad40000007f090906000000003e41617e4000bd +:102ae40000007f09097600000000264949320000f1 +:102af4000001017f0101000000003f40403f000051 +:102b0400001f2040201f0000003f4030403f0000d5 +:102b1400000077080877000000030478040300002d +:102b2400000071494947000000007f414100000056 +:102b3400000204081020400000000041417f000012 +:102b440000040201020400000040404040404000f4 +:102b54000000010204000000000030482878000052 +:102b640000007f4848300000000030484800000062 +:102b740000003048487f0000000030585810000022 +:102b840000007e09010200000000509898700000c7 +:102b940000007f08087000000000007a00000000b8 +:102ba40000004080807a000000007f102848000068 +:102bb4000000007f0000000000780810087000008a +:102bc4000000780808700000000030484830000019 +:102bd4000000f828281000000000102828f8000041 +:102be400000070080810000000004854542400003d +:102bf4000000083c48200000000038402078000015 +:102c04000000384038000000003840204038000000 +:102c14000000483030480000000018a0a0780000f0 +:102c240000006454544c00000000081c22410000c1 +:102c34000000007e00000000000041221c0800008b +:102c440000000402040200000078444244780000ba +:102c540047414d45204f5645522053434f52453a24 +:042c6400200000004c +:020000040000fa +:020000041d00dd +:102c68000000200201000003000000000000000036 +:082c7800010000000000000053 +:020000040000fa +:020000041d00dd +:102c8000e803000038000000270000001c000000de +:102c90005f0000002e0000006b0000000d0000002f +:102ca00045000000410000000b0000001c00000077 +:102cb000520000000a0000001d0000001400000087 +:102cc000090000000f0000000300000015000000d4 +:102cd0001b0000000b0000001100000008000000b5 +:042ce0000c000000e4 :00000001FF diff --git a/snake.c.o b/snake.c.o deleted file mode 100644 index 958f51518c5abe4ecd038f862560c6edf76cd833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044 zcmah|O-sW-5S=u!A5yV;61>Edt;iy^f(jm_+EP#{hBpzV=x+Lk%AIlEsb(ds*n^fe;!Zw|>;=T2qT z9DLV!v_va*)*^Qk0-jYm6i(hov`Y)!EimikWB9A%HMVUa3oO#@LW460ps{hijnHS} zbGhaLumc@GUA86=*YQ~#p8@g?aH-3mn8`jG$j#HqwYyNa7uMi<@i)Rc#sly@8udYA zd&Rd9`b@Ik8hkku&c6fG=HW{nv+NZv{Q#dp9^k)~`{4RHAYShS8}E^mChPqIsa{<- diff --git a/snake.h b/snake.h index 354befa..cb74341 100644 --- a/snake.h +++ b/snake.h @@ -21,8 +21,26 @@ void enable_interrupt(void); uint8_t display[32][128]; //Human readable pixel position and activation uint8_t oled_display[512]; //Computer readable pixel position and activation +uint8_t snakeX[100]; +uint8_t snakeY[100]; + +int main(void); void display_start(); void clear_display(); void translateToImage(); -void create_object(int xPos, int yPos, int width, int height); -void snake(); +void game(); +void create_snake(); +void wall_collision(); +int score; + +typedef struct Snake //Object snake +{ + uint8_t *y; + uint8_t *x; + int length; + char dir; + char next_dir; + uint8_t crash; +} Snake; + +Snake snake; diff --git a/vectors.S.o b/vectors.S.o deleted file mode 100644 index ac5482cb5afde7d8a7f6b0c7b590380c1bbc8fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15332 zcmeI2e{fXQ6~|A=@=J7p5()?miwOlQhHQ2>K+&>DC?GI`KvBWjEXf)&gd`>#fdNVo z5PzWSOw*~>AB~z8D%iEtbc$7LI%Y;&ZMBtFt42FO+R}42_wGCAUT^RJ z9q#Zr_j|v0Kli*J_wBoHvwzv@uM`y(fi6Wb3IYYtGYg<-9JIvp9p=D2aF_0SKH?EL zb?(_xfah`{cqBIp9?e|{kLAWecdi7!lba0R%}s-2xiB2hmBIINbKvpZTsV=dfRnix zJds-f-_KnExm*HH<*MPS9O5pdgNpSmwq?=FVxKJb&EjXW_}MHnvdGFJGmGpjj*-Q& zvN&cI$IfC7SpcDzk6+{Q>pcE8kKgF=TReWo48thEizxRzg2tEE$X6`1MWgP&5)Np<*a+ z+r1-`+KMsLIuy6*T5GzoJd@s)f%3XkCI#hN+uESKHC^A(bW<~wuUWZveR*nY!%dB; z`h0t1c}ra@b!aTVC0(0oZcR3&cP1;WmWb6-X|+VHmYCHNw_2*Kmibo80;^@A)e`xP zr0uLDcG?j;?}(jv#Lhforyj9$kJ!ma?CdM;>?`f;EA8wn?d&V<>?`f;EA8wn?d&V< z>?`f;qjvUDJNu}eebmlAYG)s{vya-@NA2vRcJ@&_`C|%+OV}flWq%^NUFxyT*bHwr#q=G#ke%PNDGX`5Q5JMJsQG7 zkAZTbF9KYs6-qITg{upSc;n$Zp(nsiLQjN@(39X+p{KyTLQjQZfft3o1AZ&?aQK7JBj6*UN5bEQz7vLpg6m~G-hWDj9t|^uE`pfQV_>n+7s1s+ zkA;mwkB1teC%|^0C&Dd4Pl5wNPl2OCPlay^JslnsdIsQ2xe3Kj`n3(JL0!+N3XAt`hNY!`Yv>=b$j92B}4vO?bs z4+z}`$AoT&9}2w_o)daEyd?AT}j<}Rr(V~dE zGAmjPaaU$Viy-dGtZ4DWTw3^WDYK#l4|io&w9w(M%!(E`+?83;!iKvtD_YPnmliWz z%B-wKjO#^B{w0mE!bv9E+tSH~w$@}rQ(Gq0*a*p_8ma>F?JcbhJ5sH?Z9fuptqiKs zpc)IR@t|52RObiP1wnOTP{mnaNGHO^!}%Vxvk`Ho2kmT3oZ~?|8x?1F(9Xuid0lA7 zNgdSLxHz4Ib~Y|ft%@5|r1uE)xh*Qzs92}sHWeFHY*8_z;w}~Us@S38Ar)^|@u-UT zs@SRGeJVbvVwZ~DDjrwyq>4|f*rVbp6`xVDSH(URUsUmB6<<~Hw2E)2__m7uDh{al zzKS2J__2zEDxOvGQx#X^GgpXqmUQ({9KLGkdKiI`%6WbMc!cmeIDb9lr^EmKd>Gox z|NZ|Av}w7fmw5@SKgr$^jzdjlDsH23OW;PO8$UP--<{Ddhq}{sH43*`O6%7~A2SwO zdTEGnUWfYo`c+^*%&mn!ONDrohpPGiX%=P@KZB=_-#YBWc|FJ@k9gFsdG%Q5yc!3uR(&pk zkxC!qjX|w>yRpuB9S&YQ_T%}TW<2^$LG$i1cwG+O5ra3tc=R){<~?NadL6v`4c;K* zjb}Xi13A9G{SMv`!F$Kx#Tai2!Po}4-8%jfMN3dh8?_54PF`J z;U5wgcoPg>!oeGh{rLHaF&;fT=={E5@M;{qOAKB$<1J#mg$A#~!HXNb4UBgstVc=jQ3N6SL5K(@80}+?qj@F zjQ4AU*Wuv((%_wDyfutBVDP#eJbLcp`3*4MHH>%0;PpCqpBTJB#-nFzeSR+}mgl42 z!5e}7cz&U>;QqIs@unL*diW2cuZzC^rWm{u#-lZY&acAYg&n-P2Ct0qHZk5(gO_md z78|@6<6X~qUp06&4&Jo}ubS~TGhTzi>u~VW25$r7-N<-*4PKXnx69zwFX?=J(4*UWgc4PLKK8!P~%i`xx(}!RvDHjvKr>#@o+$&l$X42ao;^3N1+BMkT{| z2T-G(Kfk{*c>NCEuMFNH#yiM(?;1R~;Ips4cMM)9;~i$avj#7Wyb|