From d82035571ac09c200640b5a2571b8220ebed9d4c Mon Sep 17 00:00:00 2001 From: Shivam Date: Thu, 20 Feb 2020 22:36:00 +0530 Subject: [PATCH] Shivam Bansal 1710991744 --- .../Shivam Bansal 1710991744/.classpath | 6 + .../Shivam Bansal 1710991744/.project | 17 ++ .../.settings/org.eclipse.jdt.core.prefs | 11 + .../bin/Gameplay.class | Bin 0 -> 4385 bytes .../Shivam Bansal 1710991744/bin/Main.class | Bin 0 -> 821 bytes .../bin/MapGenerator.class | Bin 0 -> 1353 bytes .../src/Gameplay.java | 198 ++++++++++++++++++ .../Shivam Bansal 1710991744/src/Main.java | 17 ++ .../src/MapGenerator.java | 40 ++++ 9 files changed, 289 insertions(+) create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/.classpath create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/.project create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/.settings/org.eclipse.jdt.core.prefs create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/bin/Gameplay.class create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/bin/Main.class create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/bin/MapGenerator.class create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/src/Gameplay.java create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/src/Main.java create mode 100644 F group Project evaluation 1/Shivam Bansal 1710991744/src/MapGenerator.java diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/.classpath b/F group Project evaluation 1/Shivam Bansal 1710991744/.classpath new file mode 100644 index 0000000..51a8bba --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/.project b/F group Project evaluation 1/Shivam Bansal 1710991744/.project new file mode 100644 index 0000000..e4220b0 --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/.project @@ -0,0 +1,17 @@ + + + Project + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/.settings/org.eclipse.jdt.core.prefs b/F group Project evaluation 1/Shivam Bansal 1710991744/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/bin/Gameplay.class b/F group Project evaluation 1/Shivam Bansal 1710991744/bin/Gameplay.class new file mode 100644 index 0000000000000000000000000000000000000000..6cc7b484449dc86b5d9cf691902c05d29cde3170 GIT binary patch literal 4385 zcma)9TXu%t_`XIWU=tXHE!F zTUx7Py|rqqf^sbwuUL^xRFrCKZEG*uyY*`y>r-F)<|nQ8U;E5V2C=pIGH0*7*WT;; z@3qc(_tV!-16YO+gYYSY)|!LXP{JGyBA`&Z-P~#Js!xyD$^QCl+sveu2%=bFmaNyC zBW}I5(@MJa*IA>jcG|U)mJ>usq3Uz|t9xBLmCS8X2#5v+wMC&Q-J5bO(k%*8+>~o3 zRyua?jx;&0J!m-!=d~7E(IJaX&0Or1^Ct>#PP>4)=pxI4f zY{r%#2rccr4s=egfg7=vKx5qWW`egsyLVnfycydJ+>CB+?Xwe!cB_|$2AO6_bPzo} zmp3XWd+BPyMBIRdKISU!m?H`^3&c-u%(^#Vz!q1EN3BF6HBy3h>@bkf-i-{{t`$U5 zVQOAeb1LbEzRW5Tlf$RTaosIcz85mJ`M@6bin z8>QZ*8>>apqXr%mxCi5Qnw3k+V1KUQodqo7dFn=&fMkuxVt%@*i)x$Y^rf6Zi@`eg z>U+0sjnrtJg9F);u4N1An9c+%+EYQbj?65{PLL^g_1s5dW zL33#e<6ZnJh+pRJ%UNw!Z!+*}{Dva?EtdsZnw0KXEfS0O4g6MOQ8Jj?X|;PnR`|Vv zKgeoGR$Hw;8ecK#-senUj%aMVm9WgTSR3N3V{}N!@W#}z(`z-`(l4gws_hcF*O*7` ze)v#?AUmT^`Xpa0e9|TL$R4RjmU=z1Q|gg@QjhGCdSs8(BRixX*&p@D&c`uCE$qd7 z&f@F?YEvAOu?ftM`NvTukGZi(`8ejqBB622k406(I2ObryT-AIlWpUujrqn=7mIv4 zj>WN4sP8I{1SfFuIF`j?88pNK88pWH8LS}l>aN&H3YoyFaWs=`&fuDtv_04H*~~5v zTz~+_688CN?CWK;a~3U}huK(!N-RMYF2NjJhWS{F3(<-N*noxTB)1PWtg^LS1HIIq z;Cig%Okq9RJTHB-QOr0(-B5P|8#35b7YIasC!@Z$3~r)H%j({QnL#hP{lfM8i#;AG z?knc5x~T8v{OSp8mu;so*j1VeL@Fk5O9n3IySgTDD+SKY;I<5QM}6xeb29iA<=!m^ z$XO8eEsVq?ArYC?#??jq)kex9Wf^>%Z?w{z9E|vN}t@6IFqzx=6I- z>?zCf9*W{4=8HU$AN4gJ{r}}Y62<8+ms^*?_a&KrNHXtbB7wz(?-IVKUCfj%W2%<3 zMl~>bmtqZ{t!TtnG_m8YV5_{W!|UczcQu& zU{XKE2IWJ$lD7^69V&_&)J(RN8f;R__(HK7TT~lvQXSZ)0Wrf%dKM5&KOVAD_V{&Y!@OS)hERuO8GM226m;p=z%hIfea#;(VGWa4@@+%O_VdIJ_4|jQbY5 z%$Wa*G5p=XVhrzbW!Xs_t6W;O z#cov&TP?(ZT8_KaO5Cm1V~^^@J?duMtNL)CO5p)DiU-vlcu3t%z)HOtVr3>&^6=V& zQ`Dod8vn!_tVTXU_-{B(%1_%~z>i1;Xv0AQ+hE<@jYp-?vo_s>2c);tyS=y_Z{f#; z=W+DoC!|Vfe=pu971qFA1>+1>{)=Ci^81Xve@YO%5T_fwJ1SRm4BB1jP59WJ@7)uvgIcQL_JrD_yv(N;(ftn zgPX=J;QLk)Ug4+ht6G!SsG?a-O5QB~mq6a%a|E8Ez}G48jV~1Vr(ANeoXRD+YSN-& dZSq?MKC8UXD(kbtpTAth+g~E$1Ficn{{hU3>Ye}q literal 0 HcmV?d00001 diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/bin/Main.class b/F group Project evaluation 1/Shivam Bansal 1710991744/bin/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..991a7276d6f96a0447c21d7f8b34432b1093039d GIT binary patch literal 821 zcmZuwZBNrs6n^ej=vIpi28i!N5!)4+FQ`$B9|pl_h9pAf+o!wjIxluD={iw=iGRZ{ zB@yEf@JAV+%P@q5HM^(h?Rm~U=k(9tpT7YtoLgz4qwb2|v@t;(kR@6lF!v7X2tiAyNjm=Y*Fqq-Z) zuMWy68v8jHvp6qM?5ngM526m~Z0|XLezSm!0%P?=$xrbht<+^0nv}~fuHY)cn6j-? zQ~b1dT0JIs&c!uc7jPN;O7-=(;cYGNo!>P68!i@%-=V*$`s=zGGYwCj> zgz0J+_toaEN@S{IHo@{(qKRE}aSKaqwd`~Rsz;^By|lI(_jcn*Md^w^tnZ|e7&7Vd z!sS!iNxZnVBQSNCd9tCLM4@}sNtWLD-&NY3t$2{M)w(uqDVnh@nSo#q1myMrIlgfR zc-quzl!9`kx{tz-L$|}zxB&}ic)G&?$}wt1oW(dTCiy#o4Cvznl-}-hg$_`roZbjZ zPRW_b{hG+V$uJX4UdV7M$Y-boR)+atG{encF+=eBm~nx~AZmdR*M%c?Fi(D;yh~)h jN8U$dHWgKdtStUEwF2(q4*&cRP-Wcm;T7-Glf#35;lHQN literal 0 HcmV?d00001 diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/bin/MapGenerator.class b/F group Project evaluation 1/Shivam Bansal 1710991744/bin/MapGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..34ae1f8987d6c8b36a0d8864801f5699a653a53e GIT binary patch literal 1353 zcmah}O>Yxd6g_WdoJoeUW8)ZT=^IitR_wmiDfSaF+?f_~Ro=X&eboPyN|z2@p~-cr<3 zP;~5z9amj%xkYHtd2h{&CKOVoxw&#(!I%z~TnjofHZ1frOsQNq(bETo{WemGHDJR; zulNqw=tHkU|Gc;6Ufa0aaKm4nhVK$RA2c1m?u4G~cb!Jm^4bcS`EDNL%n}BhT$_Q< zDn0&J6w-^4(_AI+)7_=eA?Q$PKBnw!Mx(Q#v)=NW?b_w>a=j17Fl^#D!|ws613w6D zoWM7vxY_a|7MAVYkB`SKlrdtWqLAOa*okc8TYRU`+jgTEPE=O~NrZA;VvO22iBp8$ z@qGW6xD_U46=6-BRv6feKIOE%=3*2EtFAFQ2`XK~84>&kcAzwqgga~F9H>nnGbdPv z=t`aVc8OoGF%gq&_!Ld5nY3{!u0~`_s!_`dg%0};M`lSg%aqJY-SIc5Qjb(F6Op=? zIIP8BBW$`eo-{Yt-M^~v!Vyk`&QaC*G9>YnBeHv9VITcAcdv*{@%eM*3DT9p z;&WuR$H?gu+Zfi*7~9BJ{zGo4Rxpf(EkhLy+3K}te}8zrrK=&?(SBLUX~m-d82L&L zj|OQJ{)tl^y7Oep?;?=nG54vSXjMt5>}mA? zQZANhvr0AYAG~nlZBbxHd%4Q1Z|Okv`LYG#JTzr!NvR7 literal 0 HcmV?d00001 diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/src/Gameplay.java b/F group Project evaluation 1/Shivam Bansal 1710991744/src/Gameplay.java new file mode 100644 index 0000000..c1eb38a --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/src/Gameplay.java @@ -0,0 +1,198 @@ + + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import javax.swing.Timer; + +import javax.swing.JPanel; + +public class Gameplay extends JPanel implements KeyListener, ActionListener { + private boolean play = false; + private int score = 0; + + private int totalBricks = 21; + + private Timer timer; + private int delay = 8; + + private int playerX = 310; + + private int ballposX = 120; + private int ballposY = 350; + private int ballXdir = -1; + private int ballYdir = -2; + + private MapGenerator map; + + public Gameplay() { + map = new MapGenerator(3, 7); + addKeyListener(this); + setFocusable(true); + setFocusTraversalKeysEnabled(false); + timer = new Timer(delay, this); + timer.start(); + } + + public void paint(Graphics g) { + // background + g.setColor(Color.black); + g.fillRect(1, 1, 692, 592); + + // drawing map + map.draw((Graphics2D)g); + + // borders + g.setColor(Color.yellow);; + g.fillRect(0, 0, 3, 592); + g.fillRect(0, 0, 692, 3); + g.fillRect(691, 0, 3, 592); + //scores + g.setColor(Color.white); + g.setFont(new Font("serif", Font.BOLD, 25)); + g.drawString(""+score, 590, 30); + + // the paddle + g.setColor(Color.green); + g.fillRect(playerX, 550, 100, 8); + + // the ball + g.setColor(Color.yellow); + g.fillOval(ballposX, ballposY, 20, 20); + + if(totalBricks <= 0) { + play = false; + ballXdir = 0; + ballYdir = 0; + g.setColor(Color.red); + g.setFont(new Font("serif", Font.BOLD, 30)); + g.drawString("You Won: ", 260, 300); + + g.setFont(new Font("serif", Font.BOLD, 20)); + g.drawString("Press Enter to Restart", 230, 350); + } + + if(ballposY > 570) { + play = false; + ballXdir = 0; + ballYdir = 0; + g.setColor(Color.red); + g.setFont(new Font("serif", Font.BOLD, 30)); + g.drawString("Game Over, Scores: ", 190, 300); + + g.setFont(new Font("serif", Font.BOLD, 20)); + g.drawString("Press Enter to Restart", 230, 350); + } + + g.dispose(); + } + + @Override + public void actionPerformed(ActionEvent e) { + timer.start(); + if(play) { + if(new Rectangle(ballposX, ballposY, 20, 20).intersects(new Rectangle(playerX, 550, 100, 8))) { + ballYdir = -ballYdir; + } + + A: for(int i=0; i 0) { + int brickX = j * map.brickWidth + 80; + int brickY = i * map.brickHeight + 50; + int brickWidth = map.brickWidth; + int brickHeight = map.brickHeight; + + Rectangle rect = new Rectangle(brickX, brickY, brickWidth, brickHeight); + Rectangle ballRect = new Rectangle(ballposX, ballposY, 20, 20); + Rectangle brickRect = rect; + + if(ballRect.intersects(brickRect)) { + map.setBrickValue(0, i, j); + totalBricks--; + score += 5; + + if(ballposX + 19 <= brickRect.x || ballposX + 1 >= brickRect.x + brickRect.width) { + ballXdir = -ballXdir; + } else { + ballYdir = -ballYdir; + } + + break A; + } + } + } + } + + ballposX += ballXdir; + ballposY += ballYdir; + if(ballposX < 0) { + ballXdir = -ballXdir; + } + if(ballposY < 0) { + ballYdir = -ballYdir; + } + if(ballposX > 670 ) { + ballXdir = -ballXdir; + } + } + repaint(); + + } + + @Override + public void keyPressed(KeyEvent e) { + if(e.getKeyCode() == KeyEvent.VK_RIGHT) { + if(playerX >= 600) { + playerX = 600; + } else { + moveRight(); + } + } + if(e.getKeyCode() == KeyEvent.VK_LEFT) { + if(playerX < 10) { + playerX = 10; + } else { + moveLeft(); + } + } + if(e.getKeyCode() == KeyEvent.VK_ENTER) { + if(!play) { + play = true; + ballposX = 120; + ballposY = 350; + ballXdir = -1; + ballYdir = -2; + playerX = 310; + score = 0; + totalBricks = 21; + map = new MapGenerator(3,7); + + repaint(); + } + } + + } + public void moveRight() { + play = true; + playerX += 20; + } + public void moveLeft() { + play = true; + playerX -= 20; + } + + + @Override + public void keyReleased(KeyEvent e) {} + + @Override + public void keyTyped(KeyEvent e) {} + +} diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/src/Main.java b/F group Project evaluation 1/Shivam Bansal 1710991744/src/Main.java new file mode 100644 index 0000000..af00712 --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/src/Main.java @@ -0,0 +1,17 @@ + +import javax.swing.JFrame; + +public class Main { + + public static void main(String[] args) { + JFrame obj = new JFrame(); + Gameplay gameplay = new Gameplay(); + obj.setBounds(10, 10, 700, 600); + obj.setTitle("Breakout Ball"); + obj.setResizable(false); + obj.setVisible(true); + obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + obj.add(gameplay); + } + +} diff --git a/F group Project evaluation 1/Shivam Bansal 1710991744/src/MapGenerator.java b/F group Project evaluation 1/Shivam Bansal 1710991744/src/MapGenerator.java new file mode 100644 index 0000000..36edbce --- /dev/null +++ b/F group Project evaluation 1/Shivam Bansal 1710991744/src/MapGenerator.java @@ -0,0 +1,40 @@ + + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; + +public class MapGenerator { + public int map[][]; + public int brickWidth; + public int brickHeight; + public MapGenerator(int row, int col) { + map = new int[row][col]; + for(int i=0; i 0) { + g.setColor(Color.white); + g.fillRect(j*brickWidth + 80, i * brickHeight + 50, brickWidth, brickHeight); + + g.setStroke(new BasicStroke(3)); + g.setColor(Color.black); + g.drawRect(j*brickWidth + 80, i * brickHeight + 50, brickWidth, brickHeight); + } + } + } + } + public void setBrickValue(int value, int row, int col) { + map[row][col] = value; + } + +}