今天一開始老師先教我們畫棋盤
先用簡單的line來畫出9條直線
之後我們可以使用for迴圈來簡化這個程式
再來只要把橫線的程式也加上去,就可以完成一個8*8的棋盤
之後第二節課我們先教陣列
之後我們再更進階的加上mosueButton使用滑鼠的左右以及中鍵分別可以放白棋.黑棋以及消除棋子我們可以修改陣列裡面的值,去決定棋子該放在哪一格
只要把0改成1,他所對應的棋盤位置就會出現一個棋子
int [][]go={
{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,0,0,0},
{0,0,0,0,0,0,0,0,0},
{1,1,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);
}
}
}
}
之後只要加上mosuePressed就可以用滑鼠點擊放棋子了
int [][]go={
{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,0,0,0},
{0,0,0,0,0,0,0,0,0},
{1,1,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;
}
但是這樣有可能會因為系統無條件捨去導致滑鼠點擊位置與實際落子位置有所偏差
所以我們要稍微修改一下
把
void mousePressed(){
int j=(mouseX-50)/50;
int i=(mouseY-50)/50;
go[i][j]=1;
裡面的mouseX-50改成mouseX-25
mouseY也是同理
這樣就可以讓棋子落子的位置更加精準
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);
}
}
的作品
最後一節課老師跟我們講了一個可以看到很多人自己用Processing畫畫的網站OpenProcessing.org
可以看到很多人的作品
之後回到程式,我們可以加上mouse
移動滑鼠就可以改變圓的型態
void setup(){
size(500,500);
}
void draw(){
background(128);
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,mouseY);
}
}




沒有留言:
張貼留言