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

📄 chess.java

📁 我在学习JAVA的讲义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		if((now_qizi==red_master_1||now_qizi==blue_master_1)&&now_h!=goto_h&&Math.abs(goto_h-now_h)!=1)return(false);
		if((now_qizi==red_master_1||now_qizi==blue_master_1)&&now_l!=goto_l&&Math.abs(goto_l-now_l)!=1)return(false);
		if((now_qizi==blue_nurse_1||now_qizi==blue_nurse_2||now_qizi==red_nurse_1||now_qizi==red_nurse_2)&&(Math.abs(goto_h-now_h)!=1||Math.abs(goto_l-now_l)!=1))return(false);
		if((now_qizi==blue_nurse_1||now_qizi==blue_nurse_2||now_qizi==red_nurse_1||now_qizi==red_nurse_2)&&(goto_l<3||goto_l>5))return(false);
		if((now_qizi==blue_nurse_1||now_qizi==blue_nurse_2)&&goto_h>2)return(false);
		if((now_qizi==red_nurse_1||now_qizi==red_nurse_2)&&goto_h<7)return(false);
		if((now_qizi==blue_elef_1||now_qizi==blue_elef_2)&&goto_h>4)return(false);
		if((now_qizi==red_elef_1||now_qizi==red_elef_2)&&goto_h<5)return(false);
		if((now_qizi==blue_elef_1||now_qizi==blue_elef_2||now_qizi==red_elef_1||now_qizi==red_elef_2)&&(Math.abs(goto_h-now_h)!=2||Math.abs(goto_l-now_l)!=2))return(false);
		if((now_qizi==blue_elef_1||now_qizi==blue_elef_2||now_qizi==red_elef_1||now_qizi==red_elef_2)&&qipan[(goto_l+now_l)/2][(goto_h+now_h)/2]!=0)return(false);
		if((now_qizi<=16&&now_qizi>=12)&&goto_h<now_h)return(false);  
		if((now_qizi<=32&&now_qizi>=28)&&goto_h>now_h)return(false);  
		if(isbing(now_qizi)&&now_h!=goto_h&&Math.abs(goto_h-now_h)!=1)return(false);
		if(isbing(now_qizi)&&now_l!=goto_l&&Math.abs(goto_l-now_l)!=1)return(false);
		if((now_qizi<=16&&now_qizi>=12)&&now_h<5&&goto_l!=now_l)return(false);  
		if((now_qizi<=32&&now_qizi>=28)&&now_h>4&&goto_l!=now_l)return(false);  
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&(Math.abs(now_h-goto_h)!=2&&Math.abs(now_h-goto_h)!=1))return(false);
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&(Math.abs(now_l-goto_l)!=1&&Math.abs(now_l-goto_l)!=2))return(false);
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&Math.abs(now_l-goto_l)==Math.abs(now_h-goto_h))return(false);
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&now_h-goto_h==2&&qipan[now_l][now_h-1]!=0)return(false);
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&now_h-goto_h==-2&&qipan[now_l][now_h+1]!=0)return(false);  
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&now_l-goto_l==2&&qipan[now_l-1][now_h]!=0)return(false);
		if((now_qizi==blue_horse_1||now_qizi==blue_horse_2||now_qizi==red_horse_1||now_qizi==red_horse_2)&&now_l-goto_l==-2&&qipan[now_l+1][now_h]!=0)return(false);
		return(true);
	}
	
	public void carry(int goto_l,int goto_h)
	{
		int now_l=qizi[now_qizi][1],now_h=qizi[now_qizi][2];
		Graphics g=getGraphics();
		if(haveqizi(goto_l,goto_h))qizi[qipan[goto_l][goto_h]][4]=1;
		g.drawImage(everybox[now_l][now_h],ltoL(now_l)-34,htoH(now_h)-34,this);
		g.drawImage(qizi_pic[now_qizi],ltoL(goto_l)-34,htoH(goto_h)-34,this); 
		qizi[now_qizi][1]=goto_l;qizi[now_qizi][2]=goto_h;
		qipan[now_l][now_h]=0;
		qipan[goto_l][goto_h]=now_qizi; 
	}
	
	public int between(int start_l,int start_h,int end_l,int end_h)
	{  
		int count=0;
		if(start_l==end_l)
		{ 
			if(start_h>end_h){int t=start_h;start_h=end_h;end_h=t;}
			for(int i=start_h+1;i<end_h;i++)
				if(qipan[start_l][i]!=0)count++;
		}  
		else
		{ 
			if(start_l>end_l){int t=start_l;start_l=end_l;end_l=t;}
			for(int i=start_l+1;i<end_l;i++)
				if(qipan[i][start_h]!=0)count++;
		}  
		return(count); 
	}
	
	public void unpickout(int unpickout_qizi_l,int unpickout_qizi_h)
	{
		Graphics g=getGraphics();
		g.drawImage(everybox[unpickout_qizi_l][unpickout_qizi_h],ltoL(unpickout_qizi_l)-34,htoH(unpickout_qizi_h)-34,this);
		g.drawImage(qizi_pic[now_qizi],ltoL(unpickout_qizi_l)-34,htoH(unpickout_qizi_h)-34,this); 
	}
	
	public void pickout(int pickout_qizi_l,int pickout_qizi_h)
	{
		Graphics g=getGraphics();
		setForeground(Color.white);
		g.drawLine(ltoL(pickout_qizi_l)-33,htoH(pickout_qizi_h)-33,ltoL(pickout_qizi_l)-33+5,htoH(pickout_qizi_h)-33);
		g.drawLine(ltoL(pickout_qizi_l)-33,htoH(pickout_qizi_h)-33,ltoL(pickout_qizi_l)-33,htoH(pickout_qizi_h)-33+5);
	}
	
	public void movepic(int mouse_l_num,int mouse_h_num)
	{
		Graphics g=getGraphics();
		g.drawImage( everybox[moveqizi_l_num][moveqizi_h_num],ltoL(moveqizi_l_num)-34,htoH(moveqizi_h_num)-34,this);                                
		if(haveqizi(moveqizi_l_num,moveqizi_h_num)&&qipan[moveqizi_l_num][moveqizi_h_num]!=now_qizi)g.drawImage(qizi_pic[qipan[moveqizi_l_num][moveqizi_h_num]],ltoL(moveqizi_l_num)-34,htoH(moveqizi_h_num)-34,this);
		g.drawImage(qizi_pic[now_qizi],ltoL(mouse_l_num)-34,htoH(mouse_h_num)-34,this);
	}
	
	public void unmovepic()
	{
		Graphics g=getGraphics();
		g.drawImage( everybox[moveqizi_l_num][moveqizi_h_num],ltoL(moveqizi_l_num)-34,htoH(moveqizi_h_num)-34,this);                                
		if(haveqizi(moveqizi_l_num,moveqizi_h_num)&&qipan[moveqizi_l_num][moveqizi_h_num]!=now_qizi)g.drawImage(qizi_pic[qipan[moveqizi_l_num][moveqizi_h_num]],ltoL(moveqizi_l_num)-34,htoH(moveqizi_h_num)-34,this);
		g.drawImage(everybox[qizi[now_qizi][1]][qizi[now_qizi][2]],ltoL(qizi[now_qizi][1])-34,htoH(qizi[now_qizi][2])-34,this);
		g.drawImage(qizi_pic[now_qizi],ltoL(qizi[now_qizi][1])-34,htoH(qizi[now_qizi][2])-34,this); 
	}
	
	public ChessPanel()
	{
		datainti();
		System.out.println("0,0,0,9:"+between(0,0,9,0));
		setLayout(null);
		addMouseMotionListener(new MouseMotionAdapter()
			{
				public void mouseMoved(MouseEvent e)
				{
					if(now_qizi!=0)
					{
						Graphics g=getGraphics();
						int mouse_l_pix=e.getX(),mouse_h_pix=e.getY();
						if(mouse_l_pix>ltoL(8))mouse_l_pix=ltoL(8);
						int mouse_l_num=Ltol(mouse_l_pix);
						int mouse_h_num=Ltol(mouse_h_pix);                               
						if(mouse_l_num!=moveqizi_l_num||mouse_h_num!=moveqizi_h_num)
						{
							qizi[now_qizi][3]=1;                             
							movepic(mouse_l_num,mouse_h_num);
							pickout( mouse_l_num,mouse_h_num); 
							moveqizi_l_num=mouse_l_num;
							moveqizi_h_num=mouse_h_num;
						}
					}
				}
			}); 
		addMouseListener(new MouseAdapter()
			{
				public void mouseClicked(MouseEvent e)
				{
					int x=e.getX(),y=e.getY();
					int l_num=Ltol(x),h_num=Htoh(y);
					mouse_sign=-mouse_sign; 
					if(mouse_sign==-1)
					{
						if(isOK(l_num,h_num))
						{ 
							carry(l_num,h_num);
							System.out.println("Carrying "+now_qizi+"to"+l_num+h_num);
							qizi[now_qizi][3]=0;
							unpickout(qizi[now_qizi][1],qizi[now_qizi][2]);
							now_qizi=0;
							turn_number=-turn_number;
						}
						else 
						{
							unmovepic();
							qizi[now_qizi][3]=0;
							unpickout(qizi[now_qizi][1],qizi[now_qizi][2]);
							now_qizi=0;
							System.out.println("cancel pick out");
						}
					}
					if(mouse_sign==1)
					{  
						if(haveqizi(l_num,h_num))
						{
							now_qizi=qipan[l_num][h_num];
							if(turn_number==red&&isred(now_qizi)||turn_number==blue&&(!isred(now_qizi)))
							{
								pickout(l_num,h_num);
								qizi[now_qizi][3]=1;
								moveqizi_l_num=l_num;
								moveqizi_h_num=h_num;
								System.out.println("pick out:"+now_qizi);
							}
							else
							{
								now_qizi=0;
								mouse_sign=-1;
							}
						} 
						else 
						{
							mouse_sign=-1; 
							System.out.println("cancel pick out"+"  "+haveqizi(l_num,h_num));
						}
					}
					System.out.println("NOW:"+now_qizi);
					System.out.println()   ;                     
				}
			});
	}
	
	public void paint(Graphics g)
	{
		g.drawImage(qipan_pic,0,0,this);
		for(int i=1;i<33;i++)
		{
			if(qizi[i][4]!=1&&qizi[i][3]!=1)g.drawImage(qizi_pic[i] ,ltoL(qizi[i][1])-33,htoH(qizi[i][2])-33,this) ;
		}
		for(int i=1;i<33;i++)
		{
			if(qizi[i][3]==1)g.drawImage(qizi_pic[i] ,ltoL(moveqizi_l_num)-33,htoH(moveqizi_h_num)-33,this) ;
		}
	} 
	
	public void updata(Graphics g)
	{
		paint(g);
	}
}


class MyFrame extends JFrame 
{  
	JPanel myPanel=new ChessPanel();
	
	public MyFrame()
	{
		Container ctPane=getContentPane();
		Graphics g=getGraphics();
		setTitle("Tube's Chinese Chess");
		setBounds(0,0,1024,737);
		setResizable(false);
		addComponentListener(new ComponentAdapter()
			{
				public void componentMoved(ComponentEvent e)
				{
				}
			}
			);
		
		addWindowListener(new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					System.exit(0);
				}
			}
			);
		ctPane.setLayout(null);
		myPanel.setLayout(null);
		myPanel.setBackground(Color.red);
		myPanel.setBounds(0,0,1024,737);  
		ctPane.add(myPanel);
	}
}


public class Chess
{
	public static void main(String args[])
	{
		JFrame chessframe=new MyFrame();
		chessframe.setVisible(true);
	}
}

⌨️ 快捷键说明

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