From 2d75f6b5bef5baeec8ff1ac9be69e24b3f766a79 Mon Sep 17 00:00:00 2001 From: Aayush Saini <44221400+aayush1saini@users.noreply.github.com> Date: Thu, 20 Feb 2020 11:52:39 +0530 Subject: [PATCH] Add files via upload --- .../bin/objects/Apple.class | Bin 0 -> 580 bytes .../bin/objects/Snake.class | Bin 0 -> 1071 bytes .../bin/snakeGame/SnakeGame$Keyboard.class | Bin 0 -> 1184 bytes .../bin/snakeGame/SnakeGame.class | Bin 0 -> 3025 bytes .../src/objects/Apple.java | 23 +++++ .../src/objects/Snake.java | 47 +++++++++ .../src/snakeGame/SnakeGame.java | 93 ++++++++++++++++++ 7 files changed, 163 insertions(+) create mode 100644 G group Project evaluation 1/aayush saini 1710991020/bin/objects/Apple.class create mode 100644 G group Project evaluation 1/aayush saini 1710991020/bin/objects/Snake.class create mode 100644 G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame$Keyboard.class create mode 100644 G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame.class create mode 100644 G group Project evaluation 1/aayush saini 1710991020/src/objects/Apple.java create mode 100644 G group Project evaluation 1/aayush saini 1710991020/src/objects/Snake.java create mode 100644 G group Project evaluation 1/aayush saini 1710991020/src/snakeGame/SnakeGame.java diff --git a/G group Project evaluation 1/aayush saini 1710991020/bin/objects/Apple.class b/G group Project evaluation 1/aayush saini 1710991020/bin/objects/Apple.class new file mode 100644 index 0000000000000000000000000000000000000000..ee4e33c305dfd60bd8f727a18093cc223a39f546 GIT binary patch literal 580 zcmY*VNlpSm6n(`^+l&GZI1x1g7P4WdF&d4Ah(pv6T^3N0V(2E_jmPjVE{Mj32k=nF zU)312EB)*J@x5PP-yfd<>e!7Uz>u)pebMpU+VOZi6j6j2(tZBSYeQ~5)vk4tAvEIB zV#qgLix0#(ABo!CFWRT{*mfTnSi^^p43PtAN$-#$Ty8WfEsCGmU11=IqzMBlhG4nU zii06zB8r$oizecTF{GN(5?7N^TR8W;JroStrrqJg7I&obXTgxyldh`%w*je%xE^;r z(&GbClW~Q2%dM_Gy0Km9N!v28hK(rJ8ItpDFS*wz)rmg4>sCF!nHOYG3eFQ)FLt zVUBDTA+jdf1U*ZVP8xZNZ24^{V2L~$fMpubG+H5~XjUoe(_D}km0PL4qnJZ!@S>RJ b_zz)H56%%~o<U6n@^BS@*+To&6ZMan#Jz*0sh8ZzPK{Fa%S`kfJUecLyEak62exh_3n* zMS(=%WdvCf5nWb)p_~3e_afQzzO!X5>^aXl@AIDXyywifUmrdJ7)K!rO(0cYUh_-M zjj@HAx9&$_2$*Z$mN!=MYAa*&>QKO_dO=OVn%$7B8(!59`4U|ch?j!~iv)FY#Ed{& z#jmY2R|ypVj(~Pgrd4#8U^1u$%_{=Y!VG^Si|lZ{UiK5vkxn9ojDTJkS&TyxcM?go3v|u~HGgiiy6iV@d&?DHATwJpd6h-45y-feG@7fyhGhTu zYQ8|*K2NhF&GrR}XpCxoi-km)Q(9gfwa;0_LT||vN z82aCweVlvr1c{;(DRa!Bl&>Mn%)R7+l%vZ&dEI^1l4s@&)yURe2}7D4(wGZrw*H4^ zMP4AL)+l$PL+)gnvj@64IR{;w`XKQr=RApi%<(H);#3>VKEx1S(Z59jUoe92+~!Y= z3JvE(CtS6!ez^x>w)PdlF!^#{JGk6JL+o`HnM1@x-vM&zbovl+k+~{vi6b6qQ3!tX TLL{^USea}l$=k#70B3#!Zc4WN literal 0 HcmV?d00001 diff --git a/G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame$Keyboard.class b/G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame$Keyboard.class new file mode 100644 index 0000000000000000000000000000000000000000..d6d77f498f89165ec9e7be72f7467dbd519c7980 GIT binary patch literal 1184 zcma)*&2G~`6ot=?9lHr`5=#FGC51H24>YAhYyt>W0g4EyC=mXH&?Fgwo7AZsx2PLl zfG6k*cC3+73M_a4o(TbWoU{^(gV>B`#>Z#w`R@3~uW#Q0T*jJ-5Fy!hL`&WgTe4U^ znx*f`y?RHuO%pm{Zd2@vqIlyK<*szRBEP)Z6x*J335NID?xt4>Qxf(%V?=)ougcBCRFrv^fZox#1pkWN0{p4cA1x)R)vf3s6W2p3gz#yE7fv*R}8ZCiCDc6@tQ z6e@yMb{y%hw*_uQOkGPRmOsGMKSI~?Jw$sr-NRz|{b1|u zK4ODy?Es6(M0Qwg1c-HCyfiG{A2tsA+RU(44=^@ZtO9F(;CUa=BL?*tYj}c}c#3y; zhA(*TLrC?54j^!3EF;Sp!ssD~3}ef)*9%PkM4WEW1NyD3O^}Ic;{Tswkx{!F|EuL@ lm?-qw`$sDFM!s-}3&EXJ-3?*IAB$M!r@B`BFX9qHe*mF@^dJBL literal 0 HcmV?d00001 diff --git a/G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame.class b/G group Project evaluation 1/aayush saini 1710991020/bin/snakeGame/SnakeGame.class new file mode 100644 index 0000000000000000000000000000000000000000..6641e34cafda71aa3fb998ed3ca88149febe8c2b GIT binary patch literal 3025 zcmZ`*Yj+#P8Gc5RwYIz@a&9Jxf(@Y{OJG3~!o^9j<68s@actL#k^))FV|!z1SKVDZ zmzI>4w9p%r-f0_10yMoB&Pn7Ra!x<>6Ni59zu*sW>OM0o#foulOEdG%`_6lLo_WWg z{`ZrA0@#PY8;A&O_8n_Mj#?F&n`q1o!~`~-wU(^&IscsP%;laNvm9AA5Es~`kH zkdsT&333Caz;>O2?FZ74o#u$*AZDlf_?-F8#qM1E-Uh+1qB zh#wiwj~S&cTU=oGqU?=U0^tcm0 zU^{kjNFbW-nG%Q%x-&9?D0Z0GhE4-126&f`1nxt(fi8g!I?1xd)Q?)hyovkq01xym zXU47Q1Bc@M`xq>L64;4{)R7M}i*!EUGt~xx9urA)7|1p`(IF?0!J|sOSHPfp!{9L! zo3Poy9)XT8Ws|_;*r$x15ZIm0>vaDw27O@!Pny_*t;+Ig6VITN(Gd$TFmOO1wGQkL zJ})m!yOuYTKpze%Z_f(sPZ!ov?ORWH$DRQsSb_l)hcU=vS~D{|dX*ww>9q+oZP$&5 zO^jev!1QG>;+7VDYq~56V)~TAa$~`EMP;bOuVRtGoE!$W!*;pylmnO zct_$Inv(*N(|IK?nV4CX7nNw%#2i|wT9(dSFyBV9+9u8_QLO6vCzYUVqS6o)d86hU zH|nlLSg^?X^ZdGSfjTqf^+aHm7LHm~U2Ox4jeDb-gH9}g0Ou5uXcpI%BX&_w(zs>L zlhR=j)9ef!DuhBIaXPH6zIqdZ$L2#M418;CLmKhevJ$w29qQ{lCSJp3fqPlyAvtR; zmV?2v>&s(R=~=2jDdzBID&6myc)h`_ap~I^6=BrI_f7mjU1EcWOxPE->_;Ykj5mop zWr|_ytZ`Z9xFjcCfzG?ItW;fxJ+aOm9ogF^eu|$lYhD6@%=+rhd}^GbBKn1iU#d_O z^gd<#c6bFWZ;qtiyiTQv%dEf_ecYYatt&tB$W4wI11DIkxajJ}CUYm#eGV1~`>j z#`er@>@5BRyS8BW!kdk88DF`DG`BLvWP-nK$;2`qxrH1>j~A1#&~Wc9?9bf9{u-X5 zu&^SY@jP*fM_Fd+j=vjN>K$^GcTZuH_oJjL-a9%iA^ zIL`4jvh1jjunj(nw>f_gkKr$TIX`1bRRQ<0Oe|8pfNJKzWeKx{y-E-w7~<^fdiEku z_VmoBO*`UWuz#EFX8T?m@G%K1&(_{T+^BFHL2+kl*D{tq;xYs_P9@+8?K=~y-SORy z3p`!zx8tJrqh{aWEJ|vB6R*@AyvB8eT6=HfQgIot7P9dgzMW+aznkrdyxtMHQo|cr zQNs_jw;`zURt-NnktM@^zLsH6^YCYQJNn4{1LV{}mhuow^(@QNuY=qcy27vUYr1S@ zVcx-S7>K}c@w+e}aex6Su3cBK)^H_6_oZlW9nPyTVmA 0; d--) { + snakeX[d] = snakeX[d - 1]; + snakeY[d] = snakeY[d - 1]; + } + + if (direction == 0) snakeX[0]++; + if (direction == 1) snakeY[0]++; + if (direction == 2) snakeX[0]--; + if (direction == 3) snakeY[0]--; + + for (int d = length - 1; d > 0; d--) { + if ((snakeX[0] == snakeX[d]) & (snakeX[0] == snakeY[d])) length = d - 2; + } + + if (snakeX[0] > main.WIDTH) snakeX[0] = 0; + if (snakeX[0] < 0) snakeX[0] = main.WIDTH - 1; + if (snakeY[0] > main.HEIGHT - 1) snakeY[0] = 0; + if (snakeY[0] < 0) snakeY[0] = main.HEIGHT - 1; + + if (length < 2) length = 2; + } +} \ No newline at end of file diff --git a/G group Project evaluation 1/aayush saini 1710991020/src/snakeGame/SnakeGame.java b/G group Project evaluation 1/aayush saini 1710991020/src/snakeGame/SnakeGame.java new file mode 100644 index 0000000..5d1a26f --- /dev/null +++ b/G group Project evaluation 1/aayush saini 1710991020/src/snakeGame/SnakeGame.java @@ -0,0 +1,93 @@ +package snakeGame; + +import objects.Apple; +import objects.Snake; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +public class SnakeGame extends JPanel implements ActionListener { + + public static final int SCALE = 32; + public static final int WIDTH = 20; + public static final int HEIGHT = 20; + public static final int SPEED = 4; + + Apple a = new Apple((int) (Math.random() * WIDTH), (int) (Math.random() * HEIGHT)); + Snake s = new Snake(10, 10, 9, 10); + Timer t = new Timer(500/ SPEED, this); + + public SnakeGame() { + t.start(); + addKeyListener(new Keyboard()); + setFocusable(true); + } + + public void paint(Graphics g) { + g.setColor(color(10, 50, 10)); + g.fillRect(0, 0, WIDTH * SCALE, HEIGHT * SCALE); + g.setColor(color(255, 216, 0)); + + for (int xx = 0; xx <= WIDTH * SCALE; xx += SCALE) { + g.drawLine(xx, 0, xx, HEIGHT * SCALE); + } + + for (int yy = 0; yy <= HEIGHT * SCALE; yy += SCALE) { + g.drawLine(0, yy, WIDTH * SCALE, yy); + } + + for (int d = 0; d < s.length; d++) { + g.setColor(color(0, 0, 255)); + g.fillRect(s.snakeX[d] * SCALE + 1, s.snakeY[d] * SCALE + 1, SCALE - 1, SCALE - 1); + } + + g.setColor(color(255, 0, 0)); + g.fillRect(a.posX * SCALE + 1, a.posY * SCALE + 1, SCALE - 1, SCALE - 1); + } + + public Color color(int red, int green, int blue) { + return new Color(red, green, blue); + } + + public static void main(String[] args) { + JFrame f = new JFrame(); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setResizable(false); + f.setSize(WIDTH * SCALE + 7, HEIGHT * SCALE + 29); + f.setLocationRelativeTo(null); + f.add(new SnakeGame()); + f.setVisible(true); + } + + public void actionPerformed(ActionEvent e) { + s.move(); + + if ((s.snakeX[0] == a.posX) & (s.snakeY[0] == a.posY)) { + a.setRandomPosition(); + s.length++; + } + + for (int k = 1; k < s.length; k++) { + if ((s.snakeX[k] == a.posX) & (s.snakeY[k] == a.posY)) { + a.setRandomPosition(); + } + } + + repaint(); + } + + private class Keyboard extends KeyAdapter { + public void keyPressed(KeyEvent kEve) { + int key = kEve.getKeyCode(); + + if ((key == KeyEvent.VK_RIGHT) & s.direction != 2) s.direction = 0; + if ((key == KeyEvent.VK_DOWN) & s.direction != 3) s.direction = 1; + if ((key == KeyEvent.VK_LEFT) & s.direction != 0) s.direction = 2; + if ((key == KeyEvent.VK_UP) & s.direction != 1) s.direction = 3; + } + } +} \ No newline at end of file