java走棋_怎样实现中国象棋的走动?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package com.java;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class PlayGame2 extends JPanel implements MouseListener{

private Image QiPan = null;

private Image QiZi = null;

private Image qi=null;

int xx=0;

int yy=0;

int gg=0;

int gx=0;

int gy=0;

int xy=0;

private int pos[][] ={

{ 17, 18, 19, 20, 21, 22, 23, 24, 25 },

{ 0, 0, 0, 0, 0, 0, 0, 0, 0 },

{ 0, 26, 0, 0, 0, 0, 0, 27, 0 },

{ 28, 0, 29, 0, 30, 0, 31, 0, 32},

{ 0, 0, 0, 0, 0, 0, 0, 0, 0 },

{ 0, 0, 0, 0, 0, 0, 0, 0, 0 },

{ 12, 0, 13, 0, 14, 0, 15, 0, 16 },

{ 0, 10, 0, 0, 0, 0, 0, 11, 0 },

{ 0, 0, 0, 0, 0, 0, 0, 0, 0 },

{ 1, 2, 3, 4, 5, 6, 7, 8, 9 } };

private Image heiQI[]=new Image[20];

private Image hongQI[]=new Image[20];

public PlayGame2() throws Exception{

try{

String str[]={"./res/qizi/17.gif","./res/qizi/18.gif","./res/qizi/19.gif","./res/qizi/20.gif","./res/qizi/21.gif",

"./res/qizi/22.gif","./res/qizi/23.gif","./res/qizi/24.gif","./res/qizi/25.gif","./res/qizi/26.gif",

"./res/qizi/27.gif","./res/qizi/28.gif","./res/qizi/29.gif","./res/qizi/30.gif","./res/qizi/30.gif","./res/qizi/31.gif",

"./res/qizi/32.gif"};

String str2[]={"./res/qizi/1.gif","./res/qizi/2.gif","./res/qizi/3.gif","./res/qizi/4.gif","./res/qizi/5.gif",

"./res/qizi/6.gif","./res/qizi/7.gif","./res/qizi/8.gif","./res/qizi/9.gif","./res/qizi/10.gif","./res/qizi/11.gif",

"./res/qizi/12.gif","./res/qizi/13.gif","./res/qizi/14.gif","./res/qizi/15.gif","./res/qizi/16.gif"};

QiPan = ImageIO.read(new File("./res/qizi/xqboard.gif"));

//QiZi = ImageIO.read(new File("./res/qizi/1.gif"));

for(int i=0;i<16;i++)

{

heiQI[i]=ImageIO.read(new File(str[i]));

hongQI[i]=ImageIO.read(new File(str2[i]));

}

}catch(Exception e){

e.printStackTrace();

}

this.addMouseListener(this);

}

public void paint(Graphics g){

super.paint(g);

//在这里写自己的画图代码

g.drawImage(QiPan, 20, 20, this);

for(int i=0;i<10;i++)

{

for(int j=0;j<9;j++)

{

switch(pos[i][j])

{

case 17:

g.drawImage(heiQI[0],22,22,42,42,this);

break;

case 25:

g.drawImage(heiQI[0],22+400,22,42,42,this);

break;

case 18:

g.drawImage(heiQI[1],22+50,22,42,42,this);

break;

case 24:

g.drawImage(heiQI[1],22+350,22,42,42,this);

break;

case 19:

g.drawImage(heiQI[2],22+100,22,42,42,this);

break;

case 23:

g.drawImage(heiQI[2],22+300,22,42,42,this);

break;

case 20:

g.drawImage(heiQI[3],22+150,22,42,42,this);

break;

case 22:

g.drawImage(heiQI[3],22+250,22,42,42,this);

break;

case 21:

g.drawImage(heiQI[4],22+200,22,42,42,this);

break;

case 28:

g.drawImage(heiQI[11],22,22+150,42,42,this);

break;

case 30:

g.drawImage(heiQI[11],22+100,22+150,42,42,this);

break;

case 29:

g.drawImage(heiQI[11],22+200,22+150,42,42,this);

break;

case 31:

g.drawImage(heiQI[11],22+300,22+150,42,42,this);

break;

case 32:

g.drawImage(heiQI[11],22+400,22+150,42,42,this);

break;

case 26:

g.drawImage(heiQI[9],22+50,22+100,42,42,this);

break;

case 27:

g.drawImage(heiQI[9],22+350,22+100,42,42,this);

break;

}

//if(pos[i][j]==17||pos[i][j]==25)

//{

//g.drawImage(heiQI[0],22,22,42,42,this);

//

//}

//if(pos[i][j]==18||pos[i][j]==31)

//g.drawImage(heiQI[1],22+50,22,42,42,this);

//

}

}

}

public void mouseClicked(MouseEvent e) {

}

public void mousePressed(MouseEvent e){

//repaint();

System.out.println("in mousePressed");

}

public void mouseReleased(MouseEvent e){

xx=e.getX();

yy=e.getY();

}

public void mouseEntered(MouseEvent e){

}

public void mouseExited(MouseEvent e){

}

public static void main(String args[]) throws Exception

{

JFrame frame = new JFrame("测试画图");

frame.add(new PlayGame2());

frame.setSize(500,600);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值