今天來下圍棋,首先,先來做個棋盤
Step:01 用程式碼畫個棋盤
程式碼如下:
void setup()
{
size(500,500);
}
void draw()
{
background(253,236,180);
line(50,50,50,450);
line(100,50,100,450);
line(150,50,150,450);
line(200,50,200,450);
line(250,50,250,450);
line(300,50,300,450);
line(350,50,350,450);
line(400,50,400,450);
}
用迴圈畫線,程式碼如下:
void setup()
{
size(500,500);
}
void draw()
{
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
}
Step:02
程式碼如下:
int [][]c={
{1,0,0},
{1,0,0},
{1,0,0}};
void setup()
{
size(300,300);
}
void draw(){
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
{
if(c[i][j]==0)fill(128);
else fill(255,0,0);
rect(j*100,i*100,100,100);
}
}
}
Step:03 當陣列裏頭出現"1"的時候,棋盤上會顯示白棋。
程式碼如下:
int [][]go={
{1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0} };
void setup()
{
size(500,500);
}
void draw()
{
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}
}
}
Step 04滑鼠點擊棋盤,即可顯示白棋
程式碼如下
int [][]go={
{1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0} };
void setup()
{
size(500,500);
}
void draw()
{
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}
}
}
void mousePressed(){
int j=(mouseX-50)/50;
int i=(mouseY-50)/50;
go[i][j]=1;
}
將上方程式碼誇號裡的mouseX-50 和mouseY-50修改成 mouseX-25 和mouseY-25,這樣滑鼠點擊棋盤時,所下的白棋座標會比較準確!
程式碼如下:
int j=(mouseX-25)/50;
int i=(mouseY-25)/50;
Step05:左鍵白棋、右鍵黑棋、中鍵悔棋,圍棋遊戲可以玩啦!
int [][]go={
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0} };
void setup()
{
size(500,500);
}
void draw()
{
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}else if(go[i][j]==2){
int x=50+50*j,y=50+50*i;
fill(0);ellipse(x,y,40,40);
}
}
}
void mousePressed(){
int j=(mouseX-25)/50;
int i=(mouseY-25)/50;
if(mouseButton==LEFT)go[i][j]=1;
if(mouseButton==RIGHT)go[i][j]=2;
if(mouseButton==CENTER)go[i][j]=0;
}
課堂作業(二)
用程式碼當藝術家!
void setup()
{
size(500,500);
}
void draw()
{
for(float a=0;a<360;a++){
float x=250+250*cos(radians(a));
float y=250+250*sin(radians(a));
ellipse(x,y,4,4);
}
}
Step:畫圈圈
程式碼如下:
void setup()
{
size(500,500);
}
void draw()
{
for(float a=0;a<360;a++){
float x=250+mouseX*cos(radians(a));
float y=250+mouseY*sin(radians(a));
ellipse(x,y,mouseY,mouseX);
}
}
Step:03改變顏色
程式碼如下:
void setup()
{
size(500,500);
}
void draw()
{
background(255);
noFill();
stroke(mouseX,mouseY,255);
for(float a=0;a<360;a++){
float x=250+mouseX*cos(radians(a));
float y=250+mouseY*sin(radians(a));
ellipse(x,y,mouseY,mouseX);
}
}
會隨著滑鼠游標停留時間改變大小顏色的圈圈。
void setup()
{
size(500,500);
}
float w =30;
float r=0,g=255,b=0;
void draw()
{
stroke(r,g,b);noFill();
r+=random(3);if(r>255)r=0;
g+=random(3);if(g>255)g=0;
b+=random(3);if(b>255)b=0;
ellipse(mouseY,mouseX,w,w);
w+=0.5;
if(w>100)w=30;
}
沒有留言:
張貼留言