⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localdemo.java

📁 Java编写的小游戏扫雷代码,可以在多种环境下运行
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				move = (Movement) move.getParent();
				if (move.getChildCount() > 1) {
					break;
				}
			}
			if (move == root) {
				return;
			}

			while(current != move) {
				undo();
			}
		} else if (bt == btNextSib) {
			TreeNode node = current.getNextSibling();
			if (node == null) {
				return;
			}

			undo();
			showMovement((Movement)node);
		} else if (bt == btPreSib) {
			TreeNode node = current.getPreviousSibling();
			if (node == null) {
				return;
			}

			undo();
			showMovement((Movement)node);
		} else if (bt == btDelStone) {
			if (!current.isLeaf()) {
				return;
			}

			Movement move = current;
			undo();
//			((DefaultTreeModel)recordtree.getModel()).removeNodeFromParent(move);
            move.removeFromParent();

		} else if (bt == btResetComment) {
            txtComment.setText(current.getComment());
		} else if (bt == btEditComment) {
            txtComment.setEditable(true);
            txtComment.setEnabled(true);
        } else if (bt == btSaveComment) {
            current.setComment(txtComment.getText());
            txtComment.setEditable(false);
            txtComment.setEnabled(false);
/*      } else if (bt == btCross) {
		} else if (bt == btChar) {
*/		}
	}

    public void cubicClicked(Grid grid, GridEvent evt) {
        if(btAddStone.getModel().isSelected()){
        	int player = GoPlayer.getOpponent(current.player);
			try{
                boardModel.performPut(evt.col, evt.row, player);
				hideTips();

				if (play_music) {
					sp.play();
				}

				Movement mv = new Movement(evt.col, evt.row, player);
				current.add(mv);
				current = mv;

				updateState();
			}
			catch(GoException ge){
			}
        }
        else if(btTriangle.getModel().isSelected()){
            GoPoint p = boardModel.getPoint(evt.col, evt.row);
            if (p.getState() != GoPoint.EMPTY)  {
                boardModel.setTip(evt.col, evt.row, GoPoint.TRIANGLE);
                current.addTip(evt.col, evt.row, GoPoint.TRIANGLE);
            }
        }
        else if(btSquare.getModel().isSelected()){
            GoPoint p = boardModel.getPoint(evt.col, evt.row);
            if (p.getState() != GoPoint.EMPTY)  {
                boardModel.setTip(evt.col, evt.row, GoPoint.SQUARE);
                current.addTip(evt.col, evt.row, GoPoint.SQUARE);
            }
        }
        else if(btCircle.getModel().isSelected()){
            GoPoint p = boardModel.getPoint(evt.col, evt.row);
            if (p.getState() != GoPoint.EMPTY)  {
                boardModel.setTip(evt.col, evt.row, GoPoint.CIRCLE);
                current.addTip(evt.col, evt.row, GoPoint.CIRCLE);
            }
        }
        else if(btCross.getModel().isSelected()){
            GoPoint p = boardModel.getPoint(evt.col, evt.row);
            if (p.getState() != GoPoint.EMPTY)  {
                boardModel.setTip(evt.col, evt.row, GoPoint.CROSS);
                current.addTip(evt.col, evt.row, GoPoint.CROSS);
            }
        }
        else if(btChar.getModel().isSelected()){
            GoPoint p = boardModel.getPoint(evt.col, evt.row);
            if (p.getState() == GoPoint.EMPTY)  {
                boardModel.setTip(evt.col, evt.row, (int)(98 + cboChar.getSelectedIndex()));
                current.addTip(evt.col, evt.row, (int)(98 + cboChar.getSelectedIndex()));
            }
        }
//    JToggleButton btAddStone, btTriangle, btSquare, btCircle, btCross, btChar;

    }

    /**
     * put stone, show number, tips and comment of current movement
     */
    private void showMovement(Movement move) {
        System.out.println("move at (" + move.col + "," + move.row + ")");
        System.out.println("tip count is  " + move.getTipCount());
        System.out.println("comment is  " + move.getComment());

		try{
            hideTips();

            current = move;
            showTips();
            boardModel.performPut(move.col, move.row, move.player);
			if (play_music) {
				sp.play();
			}
			updateState();
		}
		catch(GoException ge){
//		  ge.printStackTrace();
		}
    }
    /**
     * undo one movement
     */
    private void undo() {
		TreeNode node = current.getParent();
		if (node == null) {
			return;
		}

		try {
			hideTips();
			boardModel.undo();
			current = (Movement) node;
			showTips();
			//show comment
			updateState();
		}
		catch(Exception ge){
		}
    }

    private void hideTips(){
        if (current == null) return;

		for (int i = 0; i < current.getTipCount(); i++) {
			Movement.HandTip t = current.tipAt(i);
			boardModel.setTip(t.col, t.row, GoPoint.NONE);
		}
    }
    private void showTips(){
        for (int i = 0; i < current.getForceCount(); i++) {
            Movement.HandTip t = current.forceAt(i);
            boardModel.forcePut(t.col, t.row, t.tip);
        }
        txtComment.setText(current.getComment());

        for (int i = 0; i < current.getTipCount(); i++) {
			Movement.HandTip t = current.tipAt(i);
			boardModel.setTip(t.col, t.row, t.tip);
		}
    }

    protected URL getResource(String name) {
        if (name != null) {
            URL url = this.getClass().getResource(name);
            return url;
        }
        return null;
    }

    public void initDemo(Match m) {
        match = m;
        boardModel.reset();
        if (match == null) {
            btFirst.setEnabled(false);
            btPrevious.setEnabled(false);
            btNext.setEnabled(false);
            btLast.setEnabled(false);
            btPreComment.setEnabled(false);
            btNextComment.setEnabled(false);

            root = null;
            current = null;
            return;
        }

        root = match.getRootMovement();
        showMovement(root);
        updateState();
    }

    private void updateState() {
/*    ImageIcon icoSound, icoNoSound, icoShowNum, icoNotShow;
    JButton btNew, btOpen, btClose,btSave,Undo,btSound,btShowNum, btHelp;
    JButton btFirst, btPrevious, btNext, btLast, btPreComment, btNextComment;
    JButton btResetComment, btEditComment, btSaveComment;

    JButton btCloseVar, btNextSib, btPreSib;
    JButton btDelStone;
    JToggleButton btAddStone, btTriangle, btSquare, btCircle, btCross, btChar;
    JComboBox cboChar;
    JTextArea txtComment;
*/

        if (current.getChildCount() > 0) {
            btNext.setEnabled(true);
            btLast.setEnabled(true);
        }

        if (current.getParent() != root) {
            btFirst.setEnabled(true);
            btPrevious.setEnabled(true);
        }



    }

   	public static void main(String[] args) {
	    try {
		    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		    //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

	        String vers = System.getProperty("java.version");
	        if (vers.compareTo("1.1.2") < 0) {
	            System.out.println("!!!WARNING: Swing must be run with a " +
	                               		"1.1.2 or higher version VM!!!");
	        }
			LocalDemo ht = new LocalDemo();
	       } catch (Throwable t) {
	          	System.out.println("uncaught exception: " + t);
	            t.printStackTrace();
	       }
    }

    class RecordTreeCellRenderer implements TreeCellRenderer {
        ImageIcon icoRoot;
        ImageIcon icoGeneral;
        ImageIcon icoParent;
        ImageIcon icoCurrent;

    	public RecordTreeCellRenderer() {
	        icoRoot    = new ImageIcon(getResource("/resources/node_parent.gif"));
	        icoGeneral = new ImageIcon(getResource("/resources/node_general.gif"));
	        icoCurrent = new ImageIcon(getResource("/resources/node_cur.gif"));
    	}

    	public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
    		Movement move = (Movement) value;
    		if (move == root) {
    			return new JLabel(icoRoot);
    		}
			else if (move == current) {
    			return new JLabel(icoCurrent);
    		}
			else {
    			return new JLabel(icoGeneral);
    		}
    	}

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -