2017-10-10 5 views
-1

私はjavaに新しいですし、プロジェクトとして私はチェスのゲームを開発しています。私は移動するすべての部分を持っていますが、私はチェスの範囲外の王を移動すると、私はエラーを取得:チェスJavaのゲームのエラー

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 

at ChessProject.checkBlackOpponent(chessproject.java:149) 
at ChessProject.mouseReleased(chessproject.java:559) 
at java.awt.Component.processMouseEvent(Component.java:6527) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6292) 
at java.awt.Container.processEvent(Container.java:2234) 
at java.awt.Component.dispatchEventImpl(Component.java:4883) 
at java.awt.Container.dispatchEventImpl(Container.java:2292) 
at java.awt.Component.dispatchEvent(Component.java:4705) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
at java.awt.Container.dispatchEventImpl(Container.java:2278) 
at java.awt.Window.dispatchEventImpl(Window.java:2739) 
at java.awt.Component.dispatchEvent(Component.java:4705) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
at java.awt.EventQueue.access$400(EventQueue.java:97) 
at java.awt.EventQueue$3.run(EventQueue.java:697) 
at java.awt.EventQueue$3.run(EventQueue.java:691) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
at java.awt.EventQueue$4.run(EventQueue.java:719) 
at java.awt.EventQueue$4.run(EventQueue.java:717) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
ライン4〜7の条件がlandingxの絶対値をチェックしない場合は、他の

答えて

-1
Here is my code for the king 

else if(pieceName.contains("King")) { 
    if (((startX - landingX > 1) && (startY == landingY)) || ((startX - landingX > 1) && (startY-landingY > 1)) || 
     ((startX ==landingX) && (startY-landingY > 1)) || ((landingX - startX > 1) && (startY-landingY > 1)) || 
     ((landingX - startX > 1) && (startY==landingY)) || ((landingX - startX > 1) && (landingY - startY > 1)) || 
     ((startX==landingX) && (landingY - startY > 1))|| ((startX-landingX > 1) && (landingY - startY > 1))) { 
    validMove = false; 
    } else { 
    if (piecePresent(e.getX(), (e.getY()))) { 
    if (pieceName.contains("White")) { 
     if (checkWhiteOpponent(e.getX(), e.getY())) { 
     validMove = true; 
     } else { 
     validMove = false; 
     } 
    } else { 
     if (checkBlackOpponent(e.getX(), e.getY())) { 
     validMove = true; 
     } else { 
     validMove = false; 
     } 
    } 
    } else { 
    validMove = true; 
    } 
    } 
    } 
+0

質問には、回答ではなく、 –

+0

のコードを投稿してください。これはあなたの質問の編集でなければなりません。それは答えではありません。 –

+0

私はスタックにも新しいです。私もそれに慣れておく必要があります –

0

。 landingxとlandingyの両方が0より大きく9未満でなければなりません。

相対位置(移動のサイズ)をテストするには、単純な条件で十分です。 else if(Math.abs(startingx-landingx)> 1 || [絶対位置のテスト]