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

📄 readchessmanualframe.java

📁 java编写的一个网络象棋,通过对方ip连接,开始游戏,同时可以进行聊天,聊天部分通过线程实现,可以同时进行多个会话.
💻 JAVA
字号:
import java.awt.*;
import javax.swing.JFrame;
import myfile.LFile;

public class ReadChessManualFrame extends JFrame{
	
	private int [][]flag = new int[10][9];
	private ManualShow manualShow = new ManualShow();
	private int oldX,oldY,newX,newY;
	
	public ReadChessManualFrame(){
		
		for(int i=0;i<10;i++)
			for(int j=0;j<9;j++)
			    flag[i][j]=ChessPane.cflag[i][j];
		
		manualShow.start();
		
		this.setBackground(Color.GRAY);
		this.setTitle("单机-打谱");
		this.setLocation(250,100);
		this.setSize(490, 580);
		this.setVisible(true);
	}
	
	
	
	public void paint(Graphics g){
		g.drawImage(ChessPane.pane,20,40,null);
		for(int i=0;i<10;i++)
			for(int j=0;j<9;j++){
				if(flag[i][j]==-1) continue;
				g.drawImage(ChessPane.chessImage,32+j*48,52+i*48,75+j*48,95+i*48,43*flag[i][j],0,43+43*flag[i][j],43,null);  
			}
		g.drawImage(ChessPane.sign,30+48*oldY,50+48*oldX,this);
		g.drawImage(ChessPane.sign,30+48*newY,50+48*newX,this);
	}
	private void changeFlag(int x0,int y0,int x1,int y1){
		if(flag[x1][y1]!=-1) ChessPane.sound.playAudio(AudioPlay.EAT);
		else ChessPane.sound.playAudio(AudioPlay.GO);
		flag[x1][y1] = flag[x0][y0];
		flag[x0][y0] = -1;
		oldX = x0;
		oldY = y0;
		newX = x1;
		newY = y1;
	}
	public String readManualFile(){
		String str = LFile.read();
		System.out.println("棋谱: "+str);
		return str;
	}
	
	class ManualShow extends Thread{
		String manualstr = readManualFile();
		public void run(){
			System.out.println("棋谱线程: "+manualstr);
			String []step = manualstr.split("#",0);
			try{
				for(int i=0;;i++){
					sleep(1000);
					System.out.println(i+"步:"+step[i]);
					String []s = step[i].split(" ",0);
					System.out.println("changeFlag: "+Integer.valueOf(s[0]).intValue()+Integer.valueOf(s[1]).intValue()
							+Integer.valueOf(s[2]).intValue()+Integer.valueOf(s[3]).intValue());
					changeFlag(Integer.valueOf(s[0]).intValue(),Integer.valueOf(s[1]).intValue(),
							Integer.valueOf(s[2]).intValue(),Integer.valueOf(s[3]).intValue());
					repaint();
				}
			}catch(ArrayIndexOutOfBoundsException e){
				System.out.print(e.toString());
				ChessPane.sound.playAudio(AudioPlay.GAMEOVER);
			}catch(InterruptedException e){
				System.out.print(e.toString());
			}
		}
	}
}

⌨️ 快捷键说明

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