int[][] loaction=new int[10][9];
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都做網(wǎng)站、中陽網(wǎng)絡(luò)推廣、小程序開發(fā)、中陽網(wǎng)絡(luò)營銷、中陽企業(yè)策劃、中陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供中陽建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
左帥:loaction[0][4];
X X X
X X
X X X
-----
[0][3] [1][3] [2][3]
[0][4] [1][4] [2][4]
[0][5] [1][5] [2][5]
即:x=0 x=2 y=3 y=5
------------------------------
右將:loaction[9][4];
X X X
X X
X X X
-----
[7][3] [8][3] [9][3]
[7][4] [8][4] [9][4]
[7][5] [8][5] [9][5]
---------------------------
public int go(int x,int y,int path,int len){
if(loaction[x][y]==1) {//是帥
if(path==1){//向左
if(x=0) return -1;//返回-1代表走發(fā)錯誤
else {loaction[x-1][y]=1;loaction[x][y]=-1;}//將左一個格子標(biāo)記為帥
}
else if(path==2){//向上
...
}
else if(path==3){//向右
...
}
else if(path==4){//向下
...
}//else path
}//if key
else if(loaction[x][x]==2){//2代表將
....
}//if key
}
車就差不多了
package com.fzhw.app;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Xiangqi extends JFrame{
private static final long serialVersionUID = 1;
public Xiangqi() throws HeadlessException {
super();
setTitle("my board");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(new Board(), BorderLayout.CENTER);
this.setSize(960, 960);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Xiangqi().setVisible(true);
}
}
class Board extends JPanel{
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
int width=this.getWidth();
int height=this.getHeight();
int hGap=height/9;
int wGap=width/8;
for(int i=0;i10;i++){
g2d.drawLine(0, i*hGap, width, i*hGap);
}
for(int i=0;i9;i++){
g2d.drawLine(i*wGap, 0, i*wGap, 4*hGap);
g2d.drawLine(i*wGap, 5*hGap, i*wGap, height);
}
g2d.drawString("楚河 ? ? ? ? 漢界", width/2, height/2);
g2d.drawLine(3*wGap, 0, 5*wGap, 2*hGap);
g2d.drawLine(5*wGap, 0, 3*wGap, 2*hGap);
g2d.drawLine(3*wGap, height, 5*wGap, height-2*hGap);
g2d.drawLine(3*wGap, height-2*hGap, 5*wGap, height);
g2d.dispose();
}
}
兩種選擇,第一,你用一個背景圖片來充當(dāng)欺騙,落子位置的在panel上轉(zhuǎn)化,楚河漢界不用管,兩邊是對稱的。
第二種,用Graphics2D自己draw?line。
我給你寫好了,但是10分太少,不想給啊
有,但是我不能直接給你。我可以告訴你步驟。
首先是加載圖片文件為 Image:比如你有個類叫 ResourceLoader 那么就添加下面的類成員:
public static final URL url = ResourceLoader.class.getResource("/xxx/.../文件名.png");
public static final Image img = Toolkit.getDefaultToolkit().createImage(url);
然后就加載好了。下一步是繼承一個 JPanel(例如),添加鼠標(biāo)/鍵盤事件,并重寫 paint 方法(或 paintComponent 方法)。例如——
public class ChessPanel extends JPanel {
private Point[] chessPoints = new Point[共多少個棋子];
private boolean[] shown = new boolean[共多少個棋子];
@Override public void paintComponent (Graphics g) {
super.paintComponent(g);
for (int i=0; i共多少個棋子; i++) {
if (shown[i]) {
g.drawImage(ResourceLoader.img, chessPoints[i].x, chessPoints[i].y, 棋子寬度, 棋子高度);
}
}
}
class MouseControler extends MouseAdapter {
@Override public void mousePressed (MouseEvent me) {
//自己寫吧
repaint();
}
}
}
最后說明一下,圖片資源文件可以打包到 jar 里。我把關(guān)鍵的部分都已經(jīng)告訴你了。具體邏輯實現(xiàn)你自己寫吧。當(dāng)然數(shù)據(jù)結(jié)構(gòu)你也可以自己寫,我的例子只是告訴你相應(yīng)的在 paint 或者 paintComponent 方法里全部畫出來就行了。
希望能采納。