package com.yaoyun.chess.entity;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Stroke;
import java.io.Serializable;
import com.yaoyun.chess.util.FontUtil;
@SuppressWarnings("serial")
public class ChessMan implements Serializable {
private int oldX = -1; // ������һ������λ�õ�x���
private int oldY = -1; // ������һ������λ�õ�y���
private int newX = -1; // ������������λ�õ�x���
private int newY = -1; // ������������λ�õ�y���
private boolean redMove = true; // ��������
private String[] chessStr = { "��", "��", "��", "ʿ", "��", "��", "��", "��", "��", "��", "��", "��", "ʿ", "˧" };
private static int[][] chessFlag = new ChessFlag().getChessFlag();
private boolean[][] select = new boolean[10][9]; // �������ӱ�ѡ�е����
/*
* ���ܣ� �������������е�����
*/
public void drawChessMan(Graphics g) {
// ת��2Dģʽ
Graphics2D g2d = (Graphics2D) g;
// ��ȡ��ǰ�Ļ�ˢ
Stroke stroke = g2d.getStroke();
// �������������е�λ��
for (int i = 0; i < chessFlag.length; i++) {
for (int j = 0; j < chessFlag[i].length; j++) {
// �ж�ָ��λ���Ƿ�������
if (chessFlag[i][j] != 0) {
// ������������±�ת�������ӵ����
int x = (j + 1) * 60;
int y = (i + 1) * 60;
// �ж�ָ��λ�õ������Ƿ�ѡ��
if (select[i][j]) {
// ���û�ˢ����ɫ
g2d.setColor(new Color(0, 200, 0));
// ���û�ˢ�Ĵ�С
g2d.setStroke(new BasicStroke(3));
// ��ѡ������ʱ�����ӱ߿�
g2d.drawLine(x - 25, y - 20, x - 25, y - 25);
g2d.drawLine(x - 25, y + 20, x - 25, y + 25);
g2d.drawLine(x - 20, y - 25, x - 25, y - 25);
g2d.drawLine(x - 20, y + 25, x - 25, y + 25);
g2d.drawLine(x + 25, y - 20, x + 25, y - 25);
g2d.drawLine(x + 25, y + 20, x + 25, y + 25);
g2d.drawLine(x + 25, y + 25, x + 20, y + 25);
g2d.drawLine(x + 25, y - 25, x + 20, y - 25);
// ��ԭΪĬ�ϻ�ˢ
g2d.setStroke(stroke);
// ��������Ϊû��ѡ�е�״̬
select[i][j] = !select[i][j];
}
// ����Բ
g2d.setColor(new Color(219, 196, 154));
g2d.fillOval(x - 25, y - 25, 50, 50);
// ������Բ
g2d.setColor(new Color(109, 98, 77));
g2d.drawOval(x - 25, y - 25, 50, 50);
// ������ӵ�����һ������ʾ��ͬ��������ɫ
if (chessFlag[i][j] < 8) {
g2d.setColor(Color.RED);
} else {
g2d.setColor(Color.BLACK);
}
// ��С��Բ
g2d.drawOval(x - 20, y - 20, 40, 40);
g2d.setFont(FontUtil.myFont2);
String newstring = new String(chessStr[chessFlag[i][j] - 1]);
g2d.drawString(newstring, x - 20, y + 10);
}
}
}
}
public int getOldX() {
return oldX;
}
public boolean isRedMove() {
return redMove;
}
public void setRedMove(boolean redMove) {
this.redMove = redMove;
}
public void setOldX(int oldX) {
this.oldX = oldX;
}
public int getOldY() {
return oldY;
}
public void setOldY(int oldY) {
this.oldY = oldY;
}
public int getNewX() {
return newX;
}
public void setNewX(int newX) {
this.newX = newX;
}
public int getNewY() {
return newY;
}
public void setNewY(int newY) {
this.newY = newY;
}
// ��ȡ���Ӷ�Ӧ���ַ�
public String[] getChessStr() {
return chessStr;
}
// ��ȡ�������������ӵ�λ��
public int[][] getChessFlag() {
return chessFlag;
}
// �������Ӷ�Ӧ���ַ�
public void setChessFlag(int[][] chessFlag) {
ChessMan.chessFlag = chessFlag;
}
// �������ӵ����
public void setChessFlag(int i, int j, int z) {
chessFlag[i][j] = z;
}
// ��ȡѡ��״̬
public boolean[][] getSelect() {
return select;
}
// ����ѡ��״̬
public void setSelect(int i, int j) {
select[i][j] = !select[i][j];
}
}
最近下载更多
微信网友_7550620088864768 LV1
6月16日
哦哦怕怕 LV11
2024年10月25日
gaotieyou LV5
2024年3月4日
HattaDeer LV1
2023年11月19日
syh1234569 LV1
2023年7月11日
555555556 LV1
2023年6月7日
紫罗兰的花语 LV2
2023年6月6日
微信网友_6444139264921600 LV8
2023年4月27日
象棋选手 LV1
2023年4月24日
123324df LV1
2023年4月11日
最近浏览更多
arrce11
9月26日
暂无贡献等级
3369741338 LV4
8月26日
6418368 LV10
8月4日
微信网友_7550620088864768 LV1
6月16日
kewore
6月12日
暂无贡献等级
林黛玉倒拔鲁智深 LV1
4月9日
上善若水丶丶
3月31日
暂无贡献等级
dengjing LV5
2月4日
hifriend2000
1月7日
暂无贡献等级
哦哦怕怕 LV11
2024年10月25日

