From 3faa7cf311a3a2186953685bb4cd3d727ad1663e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=97=E3=81=AE=E3=81=B3?= <44221117+AayushBhatt98@users.noreply.github.com> Date: Thu, 20 Feb 2020 11:57:10 +0530 Subject: [PATCH] Add files via upload --- .../bin/objects/Apple.class | Bin 0 -> 580 bytes .../bin/objects/Snake.class | Bin 0 -> 955 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 | 44 ++++++++ .../src/snakegame/SnakeGame.java | 94 ++++++++++++++++++ 7 files changed, 161 insertions(+) create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Apple.class create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Snake.class create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/bin/snakegame/SnakeGame$Keyboard.class create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/bin/snakegame/SnakeGame.class create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Apple.java create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Snake.java create mode 100644 G group Project evaluation 1/Aayush Bhatt 1710991017/src/snakegame/SnakeGame.java diff --git a/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Apple.class b/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Apple.class new file mode 100644 index 0000000000000000000000000000000000000000..1683282cd7163b5b1320b88f082d28c2eb27fad0 GIT binary patch literal 580 zcmY*V%TB^T6g>k4q?Ym!Py`=DO^}6b*lCPLqaorWYKSZcoZu+5q^*92|KfsZT=)Tg zl=04#1ns1E&V8P9=lkdL3qTWF2}BrDZtqd_1HW-N9uGwV21DkNzwpM8JA=lhPBIuH zE**wK+jsbr81Rv3+$eNPXqVDs*S}+6tq^t@;(OAO!9GK*)@p5cD1PML3lmY;7EGiW zqP6W#5)4@j3Ct<9U?GV)hICsx;^KMK6W%TF4FyB4?e_Vw!#%0|Y0wBBq_3*~Z9r<` ze!#te^n`%aWPK4_bLZY2UAevtr0bZdU^Rgi279*cIS(EztYMv6JzcJ49>))w^kVce zm^bdT*B2*J$ujku?Wh5$QZh;<>W?9=i)k-?(^hmxR6FL$TI6-fSGDQ-J5u%X1etne zg4~-f%#+Q*AZw9L(X-feGAK}FJ#0e}i{#M&EYWzTQHhYES*B=6b4FrRu2la(Igjeo ft74krKZLd(oF~cxjVx+1D{P*UF>KJN2sVEKwmD*s literal 0 HcmV?d00001 diff --git a/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Snake.class b/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/objects/Snake.class new file mode 100644 index 0000000000000000000000000000000000000000..0eb24744b964f94dfa6e16787a0b5cedfca69c9d GIT binary patch literal 955 zcmY*X+iDY06kR8C(p)-eC&{F7nzptzwn+-9N?+6>SV1Yo_Ms9Kedsh9l4*01BrWy5 z{~(Bhh~R@yf<+PO2dE$6cZgWmIg?Ty$lhzOvu2;Y*W}xuFDC$2P>3KTkm&C0dbL4+ zd8^~@c@anfYu7z+ms@V9vAn4d1!UXxI|7+XU#S{y+Y9vfh;9nR>VA(+{4Ovf!0412t8J`t{xGr`W=68OCVBM=TofmhCAK57l(nQi3CytMxj`ZLBKWyZJSKjO;mdN*|Fm za+^$!F{M&gPU}i$|3+T;$|JqgkSmMsq}J(>2T!NuFO~AH9XBu!BYAhYyt>W0g4(>Q6T&Yp-D0-Zc?Xm+@fxH z0iK{M*s(@RDX`!HcqRngaiU5n4q`K&86Tgy=ey${zrKA3a20C?LWE@35iPkTc4V=t zX7_lO-jE0Nj&Pd>bi&-W*cV0d#w*Hw>3BtcdAligJ?Ro6-fO#?UL{Ob0(?p=xNbYP zcat!i4OHZ61bw~JlqLwLEQAq>Lc_QP12KY@Rf2fMcI1P-ow{@%iF#WSCMunVXxD^m ztMy=0SH%z(f(|-~#5F}*@?g`I-L7nM{%mD9-yIdSl&eKCjadUTgqaZ{3v-xf%Pr|K z7Zt=Wx@;ne1q0^@X9B=jIFA&8xY~H7Q{R>iuiM98GI0TE0~ZP7f4#7DgqnO%!(@M!t-C{AO7R}31HeFt*bQJwI$@EKD#l8NOHF!YbmwR{iJ9?tf#7=Az4 zdV7f2U|T!FVlt5(7Docax-VWD79S29hkb2kSgQvZM_8-^YkuH)AJAh4^#p5pidT4s zcX*C3c;Q1x^@9!|aAYha%NWAwA%_fO%d^)@O#VciZqY;ft*i}@fobCZpJL{y-Oc~i nax)AR`t1E975hlOaEwdAom1TnVZ|SdSmmd>R{SsG3POJXy>9gY literal 0 HcmV?d00001 diff --git a/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/snakegame/SnakeGame.class b/G group Project evaluation 1/Aayush Bhatt 1710991017/bin/snakegame/SnakeGame.class new file mode 100644 index 0000000000000000000000000000000000000000..76aec1d7f028b16b37d6c9524edfacc14d4d5472 GIT binary patch literal 3025 zcmZ`*`*$0~75+w&wT`?=th`JT1sg&eMIsR-At^WsF@6dZVr=6?36HGhvAwahtM0Cy zN86N^v`}b)zDwIsl2SrT%j29x=8$vviJyQ!fd7KuIh?xR%u2ChT+7;>xpVK_d%y3_ z9ewuSk3Rvh5APd@2(0%VYgSHM6`31Vqd|@g#01uzvF5FFIsdHfOy?dQwj5bD5Es~{ zkXkdyP$335H9z;>O2?FZ74ocTy%0#TFBr&|x6O0B`e=z@6wa&?&G+Ct0?b`cW&GF>x2} z=7yf-Ou7}lVPE{nJ_gIb1h(S4YRetWBAw6g9A5>2ohI6mG>~m_qC-v~gI!8}w}3(Q zhQWO%)?vMYJp##ZWs|`D*r$vh5ZIp1>vaDw2i;)=2TW|hMrHY+iHFd^=*Wc^7&s`9 zT7mX^9+T%MT+5qGpc{vkw}%Dxrwc2ncCRG7WzPT-grLX7Bj_cV*5o9&UMi8!^zsCn zmg~m-CI&DlVEQr`a7%N(HBpu%F?~{Txwc?C^6|OKg!IP3g>?nDWR=G)&sOugFc!?% zESilgMau$dsam$f^4ZiB&!A^jXY7(+5964LVLUpG=kyCjkFPWHJk{6X|%EUBUsalrKbTG4u#cG>4qeQW)>z`19vWZGV zP~?f4Zk(vw5+PubbLaRtf1Wy%tn1OhD$O3Xsv2zrbB%MOnuAU(fdFS!A<-NgZN?n~d5QwCtBA zeuY=aJ7ucE)LtX9%=f$;a|JqX_yOj;QMBd@$(_6NDUlNEW&xWsH?g(&5w>l>_Ssh&?*)A42GU&06x$QwX94%#K#rpOi%EP<%e^BiU#)8F`NXHJr$1l2}aQ%V@Y1J#-E2 z*;F*8S5IAvbg9u>i(iEcTAr$5*}{QrhFfB>zCBaRUB@%2-R)g7vD4vfqCRWyZ11Go zOA(O@7vz=2PjwK{dI(v{)7LT6Fy?qxkL#uipQy&?5mE*svl?AQQx?zSUX;1|8pm(oKD^7D^K&Aq@Y_d}h*2FsHFDq*!3=4yl7k3(Ir_dH zJ;htk(<7fYZHRw^UBYZL+xF6cmq`dbTYC#>qry!D#jUAr3z+|a(~#FVm4FAd?@Xw6 z%Xb^jb9c4gh6~z{8vTHyC` zh8MG-aMR5%>%K8U`c|G9XoIR~4-_Tn^cNCc3*$=bJEM*AR<_@`;9gwjsaxIy#hU z4R0!y;&sT_=^K2oB6~t3R+Q3UZ8VHRIcqDFH*c0uB5rnDrG1>K;qOZYlwqF$$u-c= z><38gAdZoWF&?BBd5m7=_%d0&LS9v&bcGq-BI_#N#x>^u1a;rhWT~Rq1M|)!Vq7e8 t95Ema{FA@MMaMV%@w=(95Dgc2;R=z65Z`x|HvWzO@U41nH^1*8@;}{1okIWs literal 0 HcmV?d00001 diff --git a/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Apple.java b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Apple.java new file mode 100644 index 0000000..850374c --- /dev/null +++ b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Apple.java @@ -0,0 +1,23 @@ + package objects; + +import snakegame.SnakeGame; + +public class Apple { + + SnakeGame main; + + public int posX; + public int posY; + + public Apple(int startX, int startY) { + posX = startX; + posY = startY; + + } + + @SuppressWarnings("static-access") + public void setRandomPosition() { + posX = (int) (Math.random() * main.WIDTH); + posY = (int) (Math.random() * main.HEIGHT); + } +} \ No newline at end of file diff --git a/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Snake.java b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Snake.java new file mode 100644 index 0000000..7c1a16c --- /dev/null +++ b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/objects/Snake.java @@ -0,0 +1,44 @@ +package objects; + +import snakegame.SnakeGame; + +public class Snake { + + SnakeGame main; + + public int direction = 0; + public int length = 2; + + public int snakeX[] = new int[main.WIDTH * main.HEIGHT]; + public int snakeY[] = new int[main.WIDTH * main.HEIGHT]; + + public Snake(int x0, int y0, int x1, int y1) { + snakeX[0] = x0; + snakeY[0] = y0; + snakeX[1] = x1; + snakeY[1] = y1; + } + + @SuppressWarnings("static-access") + public void move() { + + for (int d = length; d > 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]--; + + + 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 Bhatt 1710991017/src/snakegame/SnakeGame.java b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/snakegame/SnakeGame.java new file mode 100644 index 0000000..fd14fa4 --- /dev/null +++ b/G group Project evaluation 1/Aayush Bhatt 1710991017/src/snakegame/SnakeGame.java @@ -0,0 +1,94 @@ + 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, 10, 10); + Timer t = new Timer(1000 / SPEED, this); + + public SnakeGame() { + t.start(); + addKeyListener(new Keyboard()); + setFocusable(true); + } + + public void paint(Graphics g) { + g.setColor(color(5, 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