From 2bb100260d48cd19a5a62d4698b3207f1fbcf76c Mon Sep 17 00:00:00 2001
From: Usman Irfan <usmanirfan@USERs-MacBook-Pro.local>
Date: Sun, 11 Nov 2018 17:14:28 -0500
Subject: [PATCH] Updated Length

---
 BlankProjectTemplate/src/Food.py              |   4 +-
 BlankProjectTemplate/src/Gameplay.py          |  52 ++++++++++++++----
 BlankProjectTemplate/src/Snake.py             |   5 +-
 .../src/__pycache__/Food.cpython-37.pyc       | Bin 947 -> 941 bytes
 .../src/__pycache__/Interface.cpython-37.pyc  | Bin 0 -> 2696 bytes
 .../src/__pycache__/Snake.cpython-37.pyc      | Bin 682 -> 713 bytes
 .../src/__pycache__/highscore.cpython-37.pyc  | Bin 0 -> 1891 bytes
 .../src/__pycache__/theme.cpython-37.pyc      | Bin 0 -> 1771 bytes
 8 files changed, 44 insertions(+), 17 deletions(-)
 create mode 100644 BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc
 create mode 100644 BlankProjectTemplate/src/__pycache__/highscore.cpython-37.pyc
 create mode 100644 BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc

diff --git a/BlankProjectTemplate/src/Food.py b/BlankProjectTemplate/src/Food.py
index 2e2b71f..083d18e 100644
--- a/BlankProjectTemplate/src/Food.py
+++ b/BlankProjectTemplate/src/Food.py
@@ -27,8 +27,6 @@ class Food():
     #  @param location is a list that gives the location of present food
     #  @param screenSize is the size of the screen
     def redraw_food(self, x, y, location,screenSize):
-        if( abs(x - location[0]) < 15 and abs(y - location[1]) < 15):
+        if(abs(x - location[0]) < 15 and abs(y - location[1]) < 15):
             location[0] = randint(0, screenSize - self.size)
             location[1] = randint(0, screenSize - self.size)
-            return location
-
diff --git a/BlankProjectTemplate/src/Gameplay.py b/BlankProjectTemplate/src/Gameplay.py
index 5bf14e5..e4a5af2 100644
--- a/BlankProjectTemplate/src/Gameplay.py
+++ b/BlankProjectTemplate/src/Gameplay.py
@@ -13,12 +13,20 @@ size = 20
 
 #velocity and score
 vel = 10
-score = 0
+global a
+
+a = 0
+#defining a list to keep track of snake's head
+snake_loc = []
+
+#variable to increment snake's length, initially it would be 1
+snake_length = 1
 
 #initial x and y coordinates of the snake
 x = randint(0,screenSize - size)
 y = randint(0, screenSize - size)
 
+
 speed = 40
 
 # 0 gives (- direction)
@@ -28,15 +36,18 @@ direction = 0
 axis = 0
 
 score = 0
-location = []
+
+# parameters for initializing food on the screen
+food_location = []
 food_x = randint(0,screenSize - size)
 food_y = randint(0,screenSize - size)
-location = [food_x, food_y]
+food_location = [food_x, food_y]
 
 ##initialize snake
 snake = Snake(size, 0, 20, 0)
 food = Food(size)
 
+
 #Loop through the events as long as the game is running
 run = True 
 while run:
@@ -66,6 +77,8 @@ while run:
     else:
         x += vel*snake.direct
 
+
+    
     #Boundary conditions for snake hitting window edge
     if x < 0:
         #x = 0
@@ -80,22 +93,37 @@ while run:
         #x = 500 - size
         x = 0
 
-    #consumption of food block  
-    food.redraw_food(x, y, location, screenSize)
-
-    if(abs(x - location[0]) < 15 and abs(y - location[1]) < 15):
-        score += 1
+    if(abs(x - food_location[0]) < 15 and abs(y - food_location[1]) < 15):
+        score += 10
         print(score)
-         
+        snake_length += 5
+
+
+        
     win.fill(white)
 
+    #consumption of food block
+    food.redraw_food(x, y, food_location, screenSize)
+
+
+
+    snake_head = []
+    snake_head.append(x)
+    snake_head.append(y)
+
+    snake_loc.append(snake_head)
+    
     #Draw food item
-    food.draw_food(location)
+    food.draw_food(food_location)
+
+    
+    if (len(snake_loc)) > snake_length:
+        del snake_loc[0]
     
-    #food.update_score(x,y,location, score)
+    #food.update_score(x,y,food_location, score)
     
     #Draw snake
-    snake.draw(x,y)
+    snake.draw(snake_loc)
 
     #update display
     pygame.display.update()
diff --git a/BlankProjectTemplate/src/Snake.py b/BlankProjectTemplate/src/Snake.py
index 85cfd02..ec161f7 100644
--- a/BlankProjectTemplate/src/Snake.py
+++ b/BlankProjectTemplate/src/Snake.py
@@ -23,8 +23,9 @@ class Snake():
     ## @brief Draw method uses pygame to draw the snake object
     #  @param x The x-coordinate where the block should be drawn 
     #  @param y The y-coordinate where the block should be drawn
-    def draw(self,x,y):
-        pygame.draw.rect(win, red , (x,y, self.size, self.size))
+    def draw(self,snake_loc):
+        for x,y in snake_loc:
+            pygame.draw.rect(win, red , [x,y, self.size, self.size])
   
 
 
diff --git a/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc
index 94d697adc16cf576c9da39ab7670614a7ab91a37..58e5c5cbf5aad9d7103d199b4693b97052885858 100644
GIT binary patch
delta 70
zcmdnYzLuTWiI<m)0SL^OzlhG;$g9Z27&2L(NlY}LgrSD1hB<{<l0kx@nK6Yao1rLR
Xauk!s<Tj=>b~ca}Mvci|nf3tyFqRM;

delta 76
zcmZ3>zL}lZiI<m)0SKyOpG8mJ$g9Z27%^F&NlY}PgrSD1hB<{<l0kx@nK6Yao1rLV
daukyWa}9Iw<VL1+P7aVZMh!-h$?uu=0RV>E5a<8^

diff --git a/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8024b5fc9b0da06f33208b6773a090949e27b5bd
GIT binary patch
literal 2696
zcmZ{mO>7%Q6vuaVcGv5Vq)D5Gw3HCqQtGzEg-WGDsHADrG@^tyNeeQfmb<fYwz1dl
z?3yN#b0Iw<(KABGmMR1YfrL15<ir_?%Wy$L0(`GH^aB4kcJtu|ujcLBd2inQ=I!h}
zPxket4E!>W{(AqHLBsfi9-jO-lnJ!x3WP8OD;xRFo#mN+HuI*w^E{t6gemxaL+}kV
zZwX7-_l>;mJHlBu<t5+VFc>1t8`(q~(TrJ-<ddHXWdbca3gH_R9g&$Z5rYdZEZh-M
zI22PP5XDt|`o@gM;7>makVLzP79E3#jRvOMFhAM5&SKVJO|xZeFlM}q1zb1gjQ4Oy
z7;{!JndQo=*8EUe{)+D@OZr8THC0;H!^NQNhsBDoxC|G+G9=CM_;T(><jW{mk1EA5
zkc-7Icgc^I<7zDz`Da#&XL6I}Vz_)wR`2*;yx>=A<znpTBI)I3!q~?E&mXU?szi5!
zJp^q*7%aoq(pcAc*W&4380hYx>GcgmiH$p0Q^RPmhS}gP3(2MRuvsj|sjZfX*%GpN
zkCx-bSxY76>w0Eod)0DPDr*k?%DxwfcuB9TBWOD)=XO1gtKk9Y5vA5(YbnC&bbCZX
zzXY0%rm0Rr=~98IWv)97r^)FpfRC>m4ZCT9*J_zvR&#bCYs(CVDQmGB#vojcE|cO&
zKNLO?Z<m8On^0Eluf!@zPV@0<*;lSsgEe0c&~U7%Duqf!ofXO<boMMsj-ZcrSES)t
zKdv>G)<m&qvyO5L1$xtkf=U$%m8z(hNzW7tck9J+$0E}dcpnK0w`~gA7m`vZDP5%K
zd0g8~xoO?Ex!+wFsp+Ks&M9e4*3w@Gc04N~Rrr!{L1WnaxS*NzMF|@k7tXr%fUi7k
zKuU#_n@uhfEw*k`iiInZB3a@sY<Ae}rqeRk9jzsxCA7aQQrezurbJp~1aENB*RWd-
zUQK_)5%vM>IBqO6`Gwd6`A>)q7G4ztunlh7eiC~(ZKva8Gu^Norsx*~xOfS?v@IJ6
ziY5ke3OtH4clw(BwAOH>>yP<%`lCN3_K6{}UkoE3!zC`B>5`3XCwsu;C2?Sx;r^+n
zo7+i;enEVj_E$FvM|RG*MF`*TcV+Aup&1WqMp`Q|KHFtH)Wi6<cn%DvJl|y;-JU`8
zyW;t6_ASOkVs!T`V$9858GA-(#xc!^EQ%Mvc(}_ryo1q{AB!WJ;ZMzYQylGK{6@UE
z&3?9%N4y)o9})YgI3`|t`h8<}TJfIdfPUYj-BI10-8)Lt9tUlfqS8JWC%UvJchGYA
zx;O<IE<e+>w|Z!~%xl^w_VYcoCqeu2|Iq%3FL97)<Gsy&yHfXz*3{#gIwwwdc=h)+
zM5FJXqhf<Y`IXuB&-mcmKadb4{)LcKyB4x$ForWAxQ%n8{VUmigIG&m_2X#lTDiEo
zmYScv@YdAW^o6&lRI*YHt5FU0BWudT<b93AM-V{+@!F5+kpc&|AeB4mmx3_FQJVIu
zmB5RNVN{9Q$H|KhsjS)lnw<OL9DGaSOK_-+E>jg>1gKje{EjTzM++A|!2{}h1fkpu
z;=^L-`Jz3lLk6eF^pM0^6358>0}^CtzXqqZzAH1+SEl9{#^x`+GdI;fq6f-xV$trO
zlY0V*X$R<2*7X}R3t6sHwk1HO{b)pXf47nZVSq{^f(S)-Rk@KL(_xNch*DlwcBNX6
ze3dAnyH<@<S}W3zB44O9IeW!g98^PnW_M0`I`5SoFZn2`&H~*c<><#qC6|KIQsh-7
zCa4qx{Drt%$NW56jp*M5RHt4Oltou1%kYg$5?Gd&t|-c7t#OIzIf_0kRJmP^Nq{M>
zdF8-c-d1kt-N}m(C(xoiguz^v>RjByJ;Mg{Q-%%kbLNPdVHtCT9W*DP_dl)k2{wv~
zm@-G%!LE*Ycp5VGJX9TNeT70cp%X2qFsGa(@g@npf)0^<jx=2lw*>Jj_l-_fJx>)l
PqOJip!28GCDVO~RW72rb

literal 0
HcmV?d00001

diff --git a/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc
index f5fd95f0b33cb1498f06e45af003482d739bb8db..8342bed9a4701190192b5bd777870b2deb9b75e6 100644
GIT binary patch
delta 173
zcmZ3*dXkmbiI<m)0SLI3yoeUs$Xm!*&jjKE0Sgdw0<kj?7aIYI3Y{887lv4s7^YgL
zTILdlEXD;)CCnu(HB2?kH4Is-Ae_#!keQL8kS&}cg&~+hlhIF;?G{@>WqM+6>MfR(
zqQvqjmZH?;l3UE>nR!vnMX4!8Y(SGWS&BG-)Gf~9yhOI_)cBnI<jKz%<=H__U|{5%
I%*C_-0P4pk!vFvP

delta 168
zcmX@fx{8(8iI<m)0SGSreHy)eBX1#NJu`?41R$CNh@FABSOG|sFk~?<U@BoQVX0xP
zVX9%sVg=zemW9lW3@Hr344RC7nrye&3M$hRb5n1zq!cBV-(o3BO)j~`T%MU1#axt{
sQp5%{N0Ye-WbQ4-id&48MVvq;gaEmth?f^gN&#^(6Odq-tjV+h06mE#<^TWy

diff --git a/BlankProjectTemplate/src/__pycache__/highscore.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/highscore.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e9dbae58b8cf5bae123abef0101d34290a44d4d4
GIT binary patch
literal 1891
zcmZ8iOK)366rP#;@bx2)=Gn9~icp0xDm5YqA%v>7L;)6!fCN=CLe}j)6X!Pez0S;-
z+R^nYS+MMiwX=jJzk(GDma|1F@}3nNIA@&Z(Xr;6bLY(C%y%AsJTp^a*lPd${r#gV
zV}H@d>*k^G5WD^m0T}QOYfeYr<nCKE#TN_&c&7}!6Vdd*hv1Yoec-#S9!_u{+ervt
zH-W-K?D{T(WOPnb00)7)Jiz^KcK{)d0hI8R$d<oM+XuTzu4EG8E@~z00rt<a>w5@>
zJ?CRl@Isu4QCNgyuRwzf@5~#qA{hGxEBrIT(R@5o?CjM88}^3nxGSx{pJ&FFc87YK
zgiy&0q_Y0APHO5U>l-;RwoHq5&9EbF<izw?+91h0xuPLgU`x8M_Txk<AMN>tsaYKU
z-EMrRrP7VQ?#5Y)`mC`f^`Xgo4J|hZ@n++3C(aJPR{3+8m_6C;bz&nMS|yDGe6^-m
z-|r1ogoiC)*Ny=`i@)R93tsM%jS1aLjYeAL$XP+*oE%2<ASM1e4Sc8WDRQ#)LB%hu
zj|7{#k5rsL1Oozf-{PzdUZh|S+?%E_N4oG?-<UkRgR&;iGJZUNY1CAC;eIlUx-;uz
z6byO@#EBTOHXHH5dcn5X4=W>4h%rB7Bd;KjdS{%oqot?J;P(lImA7*|bIFZC=WvBq
z`*}}hHqb_;JsZY7`~vHB;{oczG}})*vKe-Vom3m^chXE+9>4jXnf){adVu5oZM0F>
z5E!p;AA3ZsuU<az+UlKpXropu!;osVY^Bxe=FsnuTx+$C`f+Efah_Dmc&J(@peVTl
zM5`hy$>Gk~Q6;KIft$NVB`t7N{=|t&q740tgo0>e(7)t^4E-*~9#YAj<f9}|3dSKI
zts~FLCGd%26OGFdm<o>7Gj_sP8H7-x(;#YlP)0|DZdI-D+$`P#6{tcDX4*aoiYj-;
zEX=_?Cf|+e4yY7p(;9l-V~1S*1`CL<GF+W~09Dj2Ug-XSr3>9sfj6%)SUeQ!m6;jO
z((Ca2tG6%13arA-YqzhR-+t@-_T{U$zvSv8xP8cR{LxwP09LMAfb)Cs))oEwr4_UX
zS)Oxt%#Uxlk+@tS>1gHYw6xsWnfymCM4w=tN$=q}`5EP=D`GCJj^`+Xq&6F_rhU3$
zt4ZEX6CG!|t0xo{li%I;3DxGw5<!z-n_xh23*or@Bu=x9Co=2Xz@%NNCu=xe7pjhf
zdXLuqNkFztVuBGtO7K3xZ3OFo)5kg|6cu^3Nz=a)oFdd0&&xxarC0*Gd0$IgYD?4V
z<=R%AprqCkiyx#KOV`jw8r2y3(pE`I;+{$K%!RKDed}R{PD7uPz?Q$tjC6I=`dxgF
z^^edVTs73zmje{Teh;uFVj6o2Z;G55WI)A9NheJXZTX@iyqQdo@fP}r(C;EJ%;9M+
zS9nd-#5-c0FY!-!jYm#;h#4NCtY}v~aL-p;D62;Vl$cI+<r0^`t{O(4O;i2>{WEDQ
KbvM1)yZ-|flgrHj

literal 0
HcmV?d00001

diff --git a/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8de1b8ce4e1ef6118e11db4678fb52a3b892c41e
GIT binary patch
literal 1771
zcmZux&2Jk;6rb5IuRmhaq@+nD5CREdsnk+?AP0n^v}$h=Btd{VnC;HQ+1lQ9XVz+L
zttCWyh8_@S`v`vnCr<ncXs#TPuN9|W;P+;o5UTEK-n@Np-rL`s_p!gWR%3V?fB*IM
z4RC+b$Hn7<*~8NBf(Rz~fOX29clbjl9N|7=!aa97j^IbE<t=fJ9mGU09tX@Gmc9id
zS%(Wor-k#3bzI>J54$IP5n%U4MTFP`QH8gf364+YQ0kb&lpgX`#kz;3-v`NA0aWMC
z4;wR{^McQv1v}@QeF2o8u|xJHc6f3Q3|B4Jc-cs%#*=3<HlC7^XgQ{?#_35ikZClO
z##QOb&rH!jUhcO)*HY>BSP!E#Q72K_zAtq@&qi%6@18|>+xvqk?SHDW$1={3<#05J
za@p1@Zs!F1_Gn@%E9W5r_COeK@M*IQ>-I_+TLpBq2Us?|EigHIjF1Xe@WLtFg~!Wq
z_yJ-GMw1>v_JoR_QZ#Yi@=WDu45YC%ew+<5WxPYkjsG+e`Kb-7B$RR!JR0YDmTrL8
zbhC_4*H*|%O-x|usbKk778vDm1q`qj&MYW`xl4HfM0dstf9?UYw{TW)orB|+uNp8j
z-bt3`06EbQhzXQTg#^k+gCuWNjF-!^+*Ik%Q9c<+6IwQzO0`br2r5&;RCF1nx(?wh
zQK@an-onxrJa6Ki)>mPX`^(~_+ortOpngP&<!sIu450apJ?CfN7NF{TgzC&);Vk%!
z3e2OD6@JfMpv<82=fQ%_9LrU}x%PZ00;{jiYgE#rDr)rhTv0FhB7kLe4i3KXLfU{&
zPptJk(WERxTN7`Hb#V>)rfA~CMrkJ+g(I3fC>59Wx%ySOpf6I`q<4e|-R7n458+?x
zwhH*!VPdoIs2A|w5Z71u2nGIN|KYy|#hVtzmcR=XH&!V8t0-_w55#t#WB<+~+5JBf
z$WI8%rGEQAG$gx%hwgffa`0rGS{SXngW_?L-;kc<7Rd5<WNi5pk(VIT#=X-l)AAjg
z;OVv1*H_tCl_KNk2`0$$L$de=q~$E{U{mj1kfk7wCQPStD0|~Uq)a`|hDofWR1fv?
z1E^s25w_(oMCk0a{t(TFj-Q~-JKp_B^_TzHgUKfJij0!y;9AX9<tJ%^$`^?yBNJ+w
zcZZok|6=$Ij6clATAE4^;!&ne-7-pQErqGm;W!%QNtP<=R9oa~lejvF3C1IV*@OOf
zF;fsT%^wq5pX9A(xp<Jo{a4z>1oo^Q@R~p~9&(S@Fs9Z)u{$@NxA{%J3rWp#d+4Z|
zb2%zX`vY`u*zM8~?RHJAOR<dy#5cO#C*x>PYAoCmIQ6O8B|_8o3ZdC#qjbUO5G3@&
hT38Q#D{Z;ug}Qp8%gcC;y$L@q0enKqveRwd`4=D>sU-ja

literal 0
HcmV?d00001

-- 
GitLab