Class TetrisGame

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
miniGame.tetris.TetrisGame
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, BlockStatus

public class TetrisGame
extends javax.swing.JPanel
implements java.awt.event.KeyListener, BlockStatus
See Also:
Serialized Form
  • Nested Class Summary

    Nested classes/interfaces inherited from class javax.swing.JPanel

    javax.swing.JPanel.AccessibleJPanel

    Nested classes/interfaces inherited from class javax.swing.JComponent

    javax.swing.JComponent.AccessibleJComponent

    Nested classes/interfaces inherited from class java.awt.Container

    java.awt.Container.AccessibleAWTContainer

    Nested classes/interfaces inherited from class java.awt.Component

    java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
  • Field Summary

    Fields
    Modifier and Type Field Description
    (package private) javax.swing.JPanel board  
    private int check  
    private int currentCol
    블럭의 현재 행과 열
    private int currentRow
    블럭의 현재 행과 열
    private int[][] currentTetrominos
    생성된 랜덤한 블럭의 모양
    private boolean gameOver  
    (package private) javax.swing.JPanel gamePanel  
    private boolean isreach  
    (package private) int line  
    private int ms
    처음 게임 속도
    private javax.swing.JPanel[][] panels
    status 배열에 맞춰서 색이 들어갈 패널들
    (package private) MainPanel_Tetris parents  
    (package private) Tetromino randBlock  
    (package private) int score  
    (package private) javax.swing.JTextArea scoreboard  
    private int[][] status
    값이 계속 입력될 배열
    (package private) javax.swing.Timer timer  

    Fields inherited from class javax.swing.JComponent

    listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

    Fields inherited from class java.awt.Component

    accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

    Fields inherited from interface miniGame.tetris.BlockStatus

    EMPTY, MOVINGBLOCK, PANELHEIGHT, PANELWIDTH, STOPPEDBLOCK

    Fields inherited from interface java.awt.image.ImageObserver

    ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
  • Constructor Summary

    Constructors
    Constructor Description
    TetrisGame​(MainPanel_Tetris parents)  
  • Method Summary

    Modifier and Type Method Description
    (package private) void clean()
    이전의 status 배열의 MOVINGBLOCK값들을 지워주기 위해 redraw() 할때 먼저 모든 status 의 MOVINGBLOCK 값을 EMPTY 로 변경
    (package private) void falling()
    현재 열 값을 증가시켜 블럭이 내려가게 보이게함
    (package private) void gameOver()
    status의 2번째 열에 STOPPEDBLOCK 이면 LOSE 점수 출력
    (package private) void isreach()
    블럭이 바닥에 닿으면 isreach 값을 true로 변경
    (package private) void isreach_a()
    블럭이 STOPPED블럭이라면 isreach를 true로 변경
    void keyPressed​(java.awt.event.KeyEvent e)  
    void keyReleased​(java.awt.event.KeyEvent e)  
    void keyTyped​(java.awt.event.KeyEvent e)  
    static void main​(java.lang.String[] args)  
    (package private) void makeStop()
    현재 블럭의 좌표를 status배열에서 MOVINGBLOCK 에서 STOPPEDBLOCK 으로 변경
    (package private) void moveLeft()
    멈춘블록이나 배열의 끝이아니라면 현재 행값을 감소시킴
    (package private) void moveRight()
    멈춘블록이나 배열의 끝이 아니라면 현재 높이값을 감소시킴
    (package private) void pullDownBlock​(int line)
    지워진 블럭위 배열들을 아래로 내려줌
    void rapidVelocity()
    타이머 주기에들어갈 delay값을 지속적으로 감소
    private void redraw()
    블럭의 배열을 status에 대입하고 status 배열에 맞춰서 panels에 색을 설정해준다
    (package private) void removeBlock()
    check 에 줄마다 값들을 더해 20이라면 그줄의 removeLine()실행 점수 증가
    (package private) void removeLine()
    line에 입력된 줄의 배열을 EMPTY로 변경
    void resetTimer​(int ms)  
    (package private) void rotate()
    생성된 블럭의 r 값을 증가시켜 돌아간 모양으로 변경
    (package private) void spawnNewBlock()
    randBlock에 새로운 블록 생성및 현재 값들 초기화 점수 증가

    Methods inherited from class javax.swing.JPanel

    getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI

    Methods inherited from class javax.swing.JComponent

    addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

    Methods inherited from class java.awt.Container

    add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

    Methods inherited from class java.awt.Component

    action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • check

      private int check
    • gameOver

      private boolean gameOver
    • line

      int line
    • timer

      javax.swing.Timer timer
    • board

      javax.swing.JPanel board
    • gamePanel

      javax.swing.JPanel gamePanel
    • parents

    • scoreboard

      javax.swing.JTextArea scoreboard
    • ms

      private int ms
      처음 게임 속도
    • score

      int score
    • isreach

      private boolean isreach
    • panels

      private javax.swing.JPanel[][] panels
      status 배열에 맞춰서 색이 들어갈 패널들
    • status

      private int[][] status
      값이 계속 입력될 배열
    • randBlock

      Tetromino randBlock
    • currentRow

      private int currentRow
      블럭의 현재 행과 열
    • currentCol

      private int currentCol
      블럭의 현재 행과 열
    • currentTetrominos

      private int[][] currentTetrominos
      생성된 랜덤한 블럭의 모양
  • Constructor Details

  • Method Details

    • rapidVelocity

      public void rapidVelocity()
      타이머 주기에들어갈 delay값을 지속적으로 감소
    • resetTimer

      public void resetTimer​(int ms)
    • keyTyped

      public void keyTyped​(java.awt.event.KeyEvent e)
      Specified by:
      keyTyped in interface java.awt.event.KeyListener
    • keyPressed

      public void keyPressed​(java.awt.event.KeyEvent e)
      Specified by:
      keyPressed in interface java.awt.event.KeyListener
    • keyReleased

      public void keyReleased​(java.awt.event.KeyEvent e)
      Specified by:
      keyReleased in interface java.awt.event.KeyListener
    • moveLeft

      void moveLeft()
      멈춘블록이나 배열의 끝이아니라면 현재 행값을 감소시킴
    • moveRight

      void moveRight()
      멈춘블록이나 배열의 끝이 아니라면 현재 높이값을 감소시킴
    • rotate

      void rotate()
      생성된 블럭의 r 값을 증가시켜 돌아간 모양으로 변경
    • falling

      void falling()
      현재 열 값을 증가시켜 블럭이 내려가게 보이게함
    • makeStop

      void makeStop()
      현재 블럭의 좌표를 status배열에서 MOVINGBLOCK 에서 STOPPEDBLOCK 으로 변경
    • clean

      void clean()
      이전의 status 배열의 MOVINGBLOCK값들을 지워주기 위해 redraw() 할때 먼저 모든 status 의 MOVINGBLOCK 값을 EMPTY 로 변경
    • isreach

      void isreach()
      블럭이 바닥에 닿으면 isreach 값을 true로 변경
    • spawnNewBlock

      void spawnNewBlock()
      randBlock에 새로운 블록 생성및 현재 값들 초기화 점수 증가
    • isreach_a

      void isreach_a()
      블럭이 STOPPED블럭이라면 isreach를 true로 변경
    • removeBlock

      void removeBlock()
      check 에 줄마다 값들을 더해 20이라면 그줄의 removeLine()실행 점수 증가
    • removeLine

      void removeLine()
      line에 입력된 줄의 배열을 EMPTY로 변경
    • pullDownBlock

      void pullDownBlock​(int line)
      지워진 블럭위 배열들을 아래로 내려줌
      Parameters:
      line - removeLine의 행값
    • gameOver

      void gameOver()
      status의 2번째 열에 STOPPEDBLOCK 이면 LOSE 점수 출력
    • redraw

      private void redraw()
      블럭의 배열을 status에 대입하고 status 배열에 맞춰서 panels에 색을 설정해준다
    • main

      public static void main​(java.lang.String[] args)