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

📄 mousetracker.java

📁 JAVA 写的五子棋
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

import java.awt.geom.*;
import java.io.FileInputStream;

public class MouseTracker implements MouseListener {
	JComponent component;

	public MouseTracker(JComponent component) {
		this.component = component;
	}

	double x = 0., y = 0.;

	Graphics g;

	Color color;

	int i = 0;

	Qizi q;

	Qizi qz[] = new Qizi[225];

	int count1 = 0;

	int count2 = 0;
	FileInputStream fileau;
	 AudioStream as;
	public void mouseClicked(MouseEvent event) {
		if (event.getButton() == event.BUTTON1) {
			//if(Option.musicvalue==true){
			try {
					  fileau=new FileInputStream("put.wav" );
					   as=new AudioStream(fileau);
					   AudioPlayer.player.start(as);
					  
					   
					 //fileau.close();
					// as.close();
					  //as.reset();
					    }
					  catch (Exception poe) {}
			//}
			Judge judge = new Judge();
			jinshou jsh = new jinshou();
			ChangLian cl = new ChangLian();
			x = event.getX();
			y = event.getY();

			if (x > 50 && x < 610 && y > 50 && y < 610) {
				int a = (int) ((x - 30) / 40) * 40 + 30;
				int b = (int) ((y - 30) / 40) * 40 + 30;
				if (qp[(a - 30) / 40][(b - 30) / 40] != 1
						&& qp[(a - 30) / 40][(b - 30) / 40] != -1) {
					i++;
					if (i % 2 == 0) {
						hang = (a - 30) / 40;
						lie = (b - 30) / 40;
						value = -1;
						qp[hang][lie] = value;
						color = Color.white;
						q = new Qizi(hang, lie, value, color, component);
						q.put();
						count1++;
						Pane1.getTimer().start();
						Pane2.getTimer().stop();
						Pane2.getj3().setText("步数:" + count1);

						qz[i] = q;
					} else {

						hang = (a - 30) / 40;
						lie = (b - 30) / 40;
						value = 1;
						qp[hang][lie] = value;
						color = Color.black;
						q = new Qizi(hang, lie, value, color, component);

						q.put();
						count2++;
						Pane2.getTimer().start();
						Pane1.getTimer().stop();
						Pane1.getj3().setText("步数:" + count2);
						qz[i] = q;

					}

				}
				//AudioPlayer.player.stop();
				//System.out.println(Caidan.jshvalue);
				if (Option.jinshouvalue == true&&Caidan.jshvalue==true) {
					if (jsh.panduan(hang, lie, qp)
							|| cl.changlian(hang, lie, qp)) {
						String dia = i % 2 == 0 ? "白棋出现禁手,黑棋胜利!"
								: "黑棋出现禁手,白棋胜利";
						
						if(Option.musicvalue==true&&Caidan.muvalue==true){
							try {
								   FileInputStream fileau=new FileInputStream("forbid.wav" );
								   AudioStream as=new AudioStream(fileau);
								   AudioPlayer.player.start(as);
								    }
								  catch (Exception e1) {}
								

						}
						JOptionPane.showMessageDialog(component, dia);
						component.removeMouseListener(this);
						Pane1.getTimer().stop();
						Pane2.getTimer().stop();
						Caidan.time.enable(true);
						Caidan.forbid.enable(true);
					}
				}

				if (judge.check(hang, lie, qp)) {
					String dia = i % 2 == 0 ? "白棋胜利!" : "黑棋胜利";

					
					if(Option.musicvalue==true&&Caidan.muvalue==true){
						try {
							   FileInputStream fileau=new FileInputStream("win.wav" );
							   AudioStream as=new AudioStream(fileau);
							   AudioPlayer.player.start(as);
							    }
							  catch (Exception e1) {}
							

					}
					JOptionPane.showMessageDialog(component, dia);
					component.removeMouseListener(this);
					Pane1.getTimer().stop();
					Pane2.getTimer().stop();
					Caidan.time.enable(true);
					Caidan.forbid.enable(true);

				}
			}
		}

	}

	public void mousePressed(MouseEvent arg0) {
	}

	public void mouseReleased(MouseEvent arg0) {
	}

	public void mouseEntered(MouseEvent arg0) {
	}

	public void mouseExited(MouseEvent arg0) {
	}

	public void mouseDragged(MouseEvent arg0) {

	}

	public void mouseMoved(MouseEvent e) {
		/*
		 * x = e.getX(); y = e.getY(); hang=(int)((x-30)/40);
		 * lie=(int)((y-30)/40);
		 * 
		 * System.out.println(hang+" "+lie);
		 * 
		 * int a=hang*40+50; int b=lie+40+50;
		 * 
		 * System.out.println(a+" "+b);
		 * 
		 * g = component.getGraphics(); g.setColor(color.RED);
		 * 
		 * g.drawLine(a-20,b-20,a-10,b-20); g.drawLine(a-20,b-20,a-20,b-10);
		 * 
		 * g.drawLine(a+20,b-20,a+10,b-20); g.drawLine(a+20,b-20,a+20,b-10);
		 * 
		 * g.drawLine(a-20,b+20,a-20,b+10); g.drawLine(a-20,b+20,a-10,b+20);
		 * 
		 * g.drawLine(a+20,b+20,a+10,b+20); g.drawLine(a+20,b+20,a+20,b+10);
		 */

	}

	static final int bianChang = 15;

	static int qp[][] = new int[bianChang][bianChang];

	int hang;

	int lie;

	int value;

	public int gethang() {
		return hang;
	}

	public int getlie() {
		return lie;
	}

	public int getvalue() {
		return value;
	}

	public Color getColor() {
		return color;
	}

	public static int[][] getqp() {
		return qp;
	}

	public Qizi[] getQizi() {
		return qz;
	}

}

⌨️ 快捷键说明

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