diff --git a/.idea/.name b/.idea/.name index 67bcdb0..d3fa20b 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -GamePanel.java \ No newline at end of file +GameGui.java \ No newline at end of file diff --git a/out/production/Tetris/Tetris/Board$1.class b/out/production/Tetris/Tetris/Board$1.class index b4a4e19..10b0287 100644 Binary files a/out/production/Tetris/Tetris/Board$1.class and b/out/production/Tetris/Tetris/Board$1.class differ diff --git a/out/production/Tetris/Tetris/Board.class b/out/production/Tetris/Tetris/Board.class index 9b8977a..6257b1d 100644 Binary files a/out/production/Tetris/Tetris/Board.class and b/out/production/Tetris/Tetris/Board.class differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/AbstractLayout.class b/out/production/Tetris/com/intellij/uiDesigner/core/AbstractLayout.class deleted file mode 100644 index 9a36595..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/AbstractLayout.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/DimensionInfo.class b/out/production/Tetris/com/intellij/uiDesigner/core/DimensionInfo.class deleted file mode 100644 index c54a34c..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/DimensionInfo.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/GridConstraints.class b/out/production/Tetris/com/intellij/uiDesigner/core/GridConstraints.class deleted file mode 100644 index 423d8f4..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/GridConstraints.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/GridLayoutManager.class b/out/production/Tetris/com/intellij/uiDesigner/core/GridLayoutManager.class deleted file mode 100644 index 7bf3eae..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/GridLayoutManager.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/HorizontalInfo.class b/out/production/Tetris/com/intellij/uiDesigner/core/HorizontalInfo.class deleted file mode 100644 index af74dbd..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/HorizontalInfo.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/LayoutState.class b/out/production/Tetris/com/intellij/uiDesigner/core/LayoutState.class deleted file mode 100644 index 123185c..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/LayoutState.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/Spacer.class b/out/production/Tetris/com/intellij/uiDesigner/core/Spacer.class deleted file mode 100644 index 707cc4e..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/Spacer.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class b/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class deleted file mode 100644 index a062201..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode.class b/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode.class deleted file mode 100644 index b5661ce..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/SupportCode.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/Util.class b/out/production/Tetris/com/intellij/uiDesigner/core/Util.class deleted file mode 100644 index 21408df..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/Util.class and /dev/null differ diff --git a/out/production/Tetris/com/intellij/uiDesigner/core/VerticalInfo.class b/out/production/Tetris/com/intellij/uiDesigner/core/VerticalInfo.class deleted file mode 100644 index 90a7449..0000000 Binary files a/out/production/Tetris/com/intellij/uiDesigner/core/VerticalInfo.class and /dev/null differ diff --git a/src/Tetris/Board.java b/src/Tetris/Board.java index 563b8ad..b36eb6c 100644 --- a/src/Tetris/Board.java +++ b/src/Tetris/Board.java @@ -20,45 +20,53 @@ public class Board extends JPanel implements KeyListener public static final int BLOCK_SIZE=30; private Timer loop; - private Color[][] board = new Color[BOARD_WIDTH][BOARD_HEIGHT]; - private Color[] [] shape ={ - {Color.YELLOW,Color.YELLOW,Color.YELLOW}, - {null,Color.YELLOW,null} - }; - private int x=4,y=0; - private int normal =650; - private int fast = 50; - private long beginTime; - private int delayTime = normal; - private int deltax = 0; - private boolean collision = false; + private Color[][] board = new Color[BOARD_HEIGHT][BOARD_WIDTH]; + private Stein [] steine=new Stein[7]; + private Stein currenStein; + +private Color[] colors ={Color.decode("#ff00bf"),Color.decode("#0000ff"),Color.decode("#00ff80"),Color.decode("#ff8000"),Color.decode("#ffb3b3"), + Color.decode("#8000ff"),Color.decode("#ff0040"),}; + public Board() { + steine[0]= new Stein(new int[][]{ + {1,1,1,1} + }, this,colors[0]); + steine[1]= new Stein(new int[][]{ + {1,1,1}, + {0,1,0} + }, this,colors[1]); + steine[2]= new Stein(new int[][]{ + {1,1,1}, + {1,0,0} + }, this,colors[2]); + steine[3]= new Stein(new int[][]{ + {1,1,1}, + {0,0,1} + }, this,colors[3]); + steine[4]= new Stein(new int[][]{ + {1,1,1}, + {1,1,0} + }, this,colors[4]); + steine[5]= new Stein(new int[][]{ + {1,1,0}, + {0,1,1} + }, this,colors[5]); + steine[6]= new Stein(new int[][]{ + {1,1}, + {1,1} + }, this,colors[6]); + + currenStein= steine[0]; + loop = new Timer(delay, new ActionListener() { int n = 0; @Override public void actionPerformed(ActionEvent e) { - if(collision){ - return; - } - if(!(x + deltax + shape[0].length >11) && !(x + deltax<0)) - { - x +=deltax; - } - - deltax= 0; - if(System.currentTimeMillis() -beginTime > delayTime){ - if(!(y+1+shape.length > BOARD_HEIGHT)){ - y++; - }else{ - collision=true; - } - - beginTime=System.currentTimeMillis(); - } + update(); repaint(); //System.out.println(n++); @@ -67,24 +75,41 @@ public class Board extends JPanel implements KeyListener loop.start(); } + private void update(){ + currenStein.update(); + } + + + public void setCurrenStein() { + currenStein = steine[1]; + currenStein.reset(); + } + + public Color[][] getBoard(){ + return board; + } + @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(Color.lightGray); + currenStein.render(g); - //shape mit 2-Forschleife - for(int row=0;row< shape.length;row++){ - for(int col = 0;col< shape[0].length;col++){ - if(shape[row][col] !=null){ - g.setColor(shape[row][col]); - // - g.fillRect(col*BLOCK_SIZE+x*BLOCK_SIZE,row*BLOCK_SIZE+y*BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE); - } + for(int row=0;row< board.length;row++){ + for(int col = 0;col< board[row].length;col++){ + if(board[row][col] !=null){ + g.setColor(board[row][col]); + // + g.fillRect(col*BLOCK_SIZE,row*BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE); + } } } + //shape mit 2-Forschleife + + for (int row = 0; row < BOARD_HEIGHT+1; row++) { g.drawLine(0, BLOCK_SIZE * row, BLOCK_SIZE * BOARD_WIDTH, BLOCK_SIZE * row); } @@ -102,19 +127,19 @@ public class Board extends JPanel implements KeyListener @Override public void keyPressed(KeyEvent e) { if(e.getKeyChar() == KeyEvent.VK_SPACE){ - delayTime=fast; + currenStein.speedup(); }else if(e.getKeyChar() == KeyEvent.VK_ENTER){ - deltax = 2; + currenStein.moveRigth(); } else if(e.getKeyChar() == KeyEvent.VK_ESCAPE){ - deltax = -2; + currenStein.moveLeft(); } } @Override public void keyReleased(KeyEvent e) { if(e.getKeyChar() == KeyEvent.VK_SPACE){ - delayTime=normal; + currenStein.speedDown(); } } } diff --git a/src/Tetris/Stein.java b/src/Tetris/Stein.java new file mode 100644 index 0000000..bebb8ce --- /dev/null +++ b/src/Tetris/Stein.java @@ -0,0 +1,93 @@ +package Tetris; + +import java.awt.*; + +public class Stein { + private int x=4,y=0; + private int normal =850; + private int fast = 50; + private long beginTime; + private int delayTime = normal; + private int deltax = 0; + private boolean collision = false; + + public static final int BOARD_WIDTH=11; + public static final int BOARD_HEIGHT=20; + public static final int BLOCK_SIZE=30; + + private int[][]coords; + private Board board; + private Color color; + + public Stein(int [][] coords, Board board, Color color){ + this.coords = coords; + this.board = board; + this.color=color; + } + public void setX(int x){ + this.x=x; + } + + public void setY(int y){ + this.y=y; + } + + public void reset(){ + this.x=4; + this.y=0; + collision= false; + + } + public void update(){ + if(collision){ + for(int row =0;row < coords.length;row++){ + for(int col =0;col < coords[0].length;col++){ + if (coords[row][col]!=0){ + board.getBoard()[y+row][x+col]= color; + } + } + } + board.setCurrenStein(); + return; + } + if(!(x + deltax + coords[0].length >11) && !(x + deltax<0)) + { + x +=deltax; + } + + deltax= 0; + if(System.currentTimeMillis() -beginTime > delayTime){ + if(!(y+1+coords.length > BOARD_HEIGHT)){ + y++; + }else{ + collision=true; + } + + beginTime=System.currentTimeMillis(); + } + } +public void render(Graphics g){ + for(int row=0;row< coords.length;row++){ + for(int col = 0;col< coords[0].length;col++){ + if(coords[row][col] !=0){ + g.setColor(Color.yellow); + // + g.fillRect(col*BLOCK_SIZE+x*BLOCK_SIZE,row*BLOCK_SIZE+y*BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE); + } + } + } +} + +public void speedup(){ + delayTime=fast; +} +public void speedDown(){ + delayTime=normal; +} +public void moveRigth(){ + deltax = 2; + } + public void moveLeft(){ + deltax = -2; + } +}