0. 象棋
0-1. 棋盤線
size(500,700);
for(int x=50; x<=450; x+=50){
line(x, 50, x, 500);
}
for(int y=50; y<=500; y+=50){
line(50, y, 450, y);
}
1-1. 數字放棋
int [][]board = {
{4,5,3,2,1,2,3,5,4},
{0,0,0,0,0,0,0,0,0},
{0,6,0,0,0,0,0,6,0},
{1,0,1,0,1,0,1,0,1},
};///1:將2:士3:象4:車5:馬6:包7:卒
void setup() {
size(500, 700);
}
void draw() {
for (int x=50; x<=450; x+=50) {
line(x, 50, x, 500);
}
for (int y=50; y<=500; y+=50) {
line(50, y, 450, y);
}
for(int i=0; i<4; i++){
for(int j=0; j<9; j++){
text(board[i][j], 50+j*50, 50+i*50);
}
}
}
1-2. 黑棋出來(需要用到標楷體)
int [][]board = {
{4,5,3,2,1,2,3,5,4},
{0,0,0,0,0,0,0,0,0},
{0,6,0,0,0,0,0,6,0},
{7,0,7,0,7,0,7,0,7},
};///1:將2:士3:象4:車5:馬6:包7:卒
String []name = {"將","士","象","車","馬","包","卒"};
void setup() {
size(500, 700);
PFont font = createFont("標楷體", 30);
textFont(font);
textAlign(CENTER, CENTER); ///讓字中心點當座標點
}
void draw() {
for (int x=50; x<=450; x+=50) {
line(x, 50, x, 500);
}
for (int y=50; y<=500; y+=50) {
line(50, y, 450, y);
}
for(int i=0; i<4; i++){
for(int j=0; j<9; j++){
int id = board[i][j];
if(id == 0) continue;
text(name[id-1], 50+j*50, 50+i*50);
}
}
}
1-3. 紅棋(負數代表)
int [][]board = {
{4, 5, 3, 2, 1, 2, 3, 5, 4},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 6, 0, 0, 0, 0, 0, 6, 0},
{7, 0, 7, 0, 7, 0, 7, 0, 7},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{-7, 0, -7, 0, -7, 0, -7, 0, -7},
{0, -6, 0, 0, 0, 0, 0, -6, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{-4, -5, -3, -2, -1, -2, -3, -5, -4},
};///1:將2:士3:象4:車5:馬6:包7:卒
String []name = {"將", "士", "象", "車", "馬", "包", "卒"};
String []name2 = {"帥", "仕", "相", "俥", "傌", "炮", "兵"};
void setup() {
size(500, 700);
PFont font = createFont("標楷體", 30);
textFont(font);
textAlign(CENTER, CENTER);
}
void draw() {
for (int x=50; x<=450; x+=50) {
line(x, 50, x, 500);
}
for (int y=50; y<=500; y+=50) {
line(50, y, 450, y);
}
for (int i=0; i<10; i++) {
for (int j=0; j<9; j++) {
int id = board[i][j];
if (id == 0) continue;
if (id > 0){
fill(255);
ellipse(50+j*50, 50+i*50, 40, 40);
fill(0);
text(name[id-1], 50+j*50, 50+i*50);
}else if(id < 0){
fill(255);
ellipse(50+j*50, 50+i*50, 40, 40);
fill(255,0,0);
text(name2[-id-1], 50+j*50, 50+i*50);
}
}
}
}
2. 移動\
2-1. 按哪那裏就變1"將"
int [][]board = {
{4, 5, 3, 2, 1, 2, 3, 5, 4},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 6, 0, 0, 0, 0, 0, 6, 0},
{7, 0, 7, 0, 7, 0, 7, 0, 7},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{-7, 0, -7, 0, -7, 0, -7, 0, -7},
{0, -6, 0, 0, 0, 0, 0, -6, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{-4, -5, -3, -2, -1, -2, -3, -5, -4},
};///1:將2:士3:象4:車5:馬6:包7:卒
String []name = {"將", "士", "象", "車", "馬", "包", "卒"};
String []name2 = {"帥", "仕", "相", "俥", "傌", "炮", "兵"};
void setup() {
background(#E3C279);
size(500, 700);
PFont font = createFont("標楷體", 30);
textFont(font);
textAlign(CENTER, CENTER);
}
void draw() {
for (int x=50; x<=450; x+=50) {
line(x, 50, x, 500);
}
for (int y=50; y<=500; y+=50) {
line(50, y, 450, y);
}
for (int i=0; i<10; i++) {
for (int j=0; j<9; j++) {
int id = board[i][j];
if (id == 0) continue;
if (id > 0){
fill(255);
ellipse(50+j*50, 50+i*50, 40, 40);
fill(0);
text(name[id-1], 50+j*50, 50+i*50);
}else if(id < 0){
fill(255);
ellipse(50+j*50, 50+i*50, 40, 40);
fill(255,0,0);
text(name2[-id-1], 50+j*50, 50+i*50);
}
}
}
}
void mousePressed(){
for(int i=0; i<10; i++){
for(int j=0; j<9; j++){
if(dist(mouseX, mouseY, 50+j*50, 50+i*50)<20){
board[i][j]=1;
}
}
}
}
沒有留言:
張貼留言