commit 07a4a634521dd39c93d61aef14f808586d89f667
parent 4797ece3d02c8c1d0dccea9b66c77ecf742cc023
Author: William Lindholm <william_lindholm@outlook.com>
Date: Mon, 13 Mar 2023 15:16:54 +0100
experimenting
Diffstat:
6 files changed, 82 insertions(+), 12 deletions(-)
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/blocks/Cell.java b/OOP2023_a22willi_a21liltr_assignment4/src/blocks/Cell.java
@@ -1,5 +1,22 @@
package blocks;
-public class Cell {
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+
+public class Cell {
+ Dimension size;
+ Graphics g;
+ boolean occupied = true;
+
+ public Cell(Graphics g, int x, int y, Dimension size) {
+ this.g = g;
+ this.size = size;
+ g.drawRect(x, y, size.width, size.height);
+ }
+
+ public void setOccupied(boolean occupied) {
+ this.occupied = occupied;
+ }
}
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/blocks/J_Block.java b/OOP2023_a22willi_a21liltr_assignment4/src/blocks/J_Block.java
@@ -1,5 +1,5 @@
package blocks;
public class J_Block implements Tileable {
-
+
}
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/blocks/Tileable.java b/OOP2023_a22willi_a21liltr_assignment4/src/blocks/Tileable.java
@@ -1,11 +1,11 @@
package blocks;
public interface Tileable {
- public Object generate();
+ //public Object generate();
- public void rotateLeft();
+ //public void rotateLeft();
- public void rotateRight();
+ //public void rotateRight();
- public void setPosition(int x, int y);
+ //public void setPosition(int x, int y);
}
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/game/Board.java b/OOP2023_a22willi_a21liltr_assignment4/src/game/Board.java
@@ -1,5 +1,47 @@
package game;
-public class Board {
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.ArrayList;
+import javax.swing.BorderFactory;
+import javax.swing.JPanel;
+
+import blocks.Cell;
+
+public class Board extends JPanel {
+ //size of window
+ private final Dimension size = new Dimension(595, 797);
+ //size of each individual tile
+ private final int tileSize = 20;
+
+ private Cell[][] grid;
+
+ public Board() {
+
+ grid = new Cell[Math.abs(size.width / tileSize)][Math.abs(size.height / tileSize)];
+ setBorder(BorderFactory.createLineBorder(Color.black));
+ }
+
+ public Dimension getSize() {
+ return this.size;
+ }
+
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+ g.setColor(Color.gray);
+ g.fillRect(0, 0, size.width, size.height);
+ generateGrid(g);
+
+ }
+
+
+ private void generateGrid(Graphics g) {
+ for (int x = 0; x < Math.abs(size.width / tileSize); x++) {
+ for (int y = 0; y < Math.abs(size.height / tileSize); y++) {
+ grid[y][x] = new Cell(g, y, x, size);
+ }
+ }
+ }
}
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/game/GUI.java b/OOP2023_a22willi_a21liltr_assignment4/src/game/GUI.java
@@ -1,13 +1,24 @@
package game;
import java.awt.Canvas;
+import java.awt.Color;
import java.awt.Graphics;
+import java.awt.Graphics2D;
import javax.swing.JFrame;
-public class GUI extends Canvas {
- public GUI() {
- JFrame frame = new JFrame();
+public class GUI {
+ Board board;
+
+ public GUI(Board board) {
+ this.board = board;
+ JFrame frame = new JFrame("Tetris");
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.setSize(board.getSize());
+ frame.setResizable(false);
+ frame.add(board);
+
+ frame.setVisible(true);
}
}
\ No newline at end of file
diff --git a/OOP2023_a22willi_a21liltr_assignment4/src/game/Main.java b/OOP2023_a22willi_a21liltr_assignment4/src/game/Main.java
@@ -3,8 +3,8 @@ package game;
public class Main {
public static void main(String[] args) {
- // TODO Auto-generated method stub
-
+ Board Board = new Board();
+ GUI gui = new GUI(Board);
}
}