2017年10月30日 星期一

Week07 是賴小沫的

✎期中作品

👀試做老師示範的內容

int [][]puzzle=new int[20][20];  //存放真實答案
int [][]touch=new int[20][20];  //記錄滑鼠點擊
void setup(){
 size(600,800);
}
boolean bGenerator=true;  //判斷目前模式
void draw(){
  background(255);
  if(bGenerator){  //設計關卡
    for(int i=0;i<20;i++){
      for(int j=0;j<20;j++){

        if(puzzle[j][i]==0) fill(128);
        else fill(255);

        rect(100+15*j,100+15*i,15,15);
      }
    }
  }
  else{  //判斷遊戲過程正確或錯誤
    for(int i=0;i<20;i++){
      for(int j=0;j<20;j++){
        if(touch[j][i]==0) fill(200);
        else if(puzzle[j][i]==0&& touch[j][i]==1)fill(0,255,0);
        else if(puzzle[j][i]==1&& touch[j][i]==1)fill(255,0,0);

        rect(100+15*j,100+15*i,15,15);
      }
    }
  }
}
void mouseDragged(){
  int i=int((mouseY-100)/15);
  int j=int((mouseX-100)/15);
  if(bGenerator){
   puzzle[j][i]=1;
  }
  else{
   touch[j][i]=1;
  }
}
void keyPressed(){

  //切換模式
  if(key=='g'){
   bGenerator=!bGenerator;
  }
}

按下左上角的三角形Ctrl+R,即可執行看結果
🌟設計關卡模式

🌟遊戲模式

👀嘗試存檔

將設計關卡儲存下來
int [][]puzzle=new int[20][20];
int [][]touch=new int[20][20];
PrintWriter output;  //文件變數
void setup(){
 size(600,800);
 output = createWriter("ans.txt");  //輸出檔案名稱及附檔名
}
boolean bGenerator=true;
void draw(){
  background(255);
  if(bGenerator){
    for(int i=0;i<20;i++){
      for(int j=0;j<20;j++){
        if(puzzle[j][i]==0) fill(128);
        else fill(255);
        rect(100+15*j,100+15*i,15,15);
      }
    }
  }
  else{
    for(int i=0;i<20;i++){
      for(int j=0;j<20;j++){
        if(touch[j][i]==0) fill(200);
        else if(puzzle[j][i]==0&& touch[j][i]==1)fill(0,255,0);
        else if(puzzle[j][i]==1&& touch[j][i]==1)fill(255,0,0);
        rect(100+15*j,100+15*i,15,15);
      }
    }
  }
}
void mouseDragged(){
  int i=int((mouseY-100)/15);
  int j=int((mouseX-100)/15);
  if(bGenerator){
    puzzle[j][i]=1;
  }
  else{
    touch[j][i]=1;
  }
}
void keyPressed(){
  if(key=='g'){
    bGenerator=!bGenerator;
  }
  //按下s鍵,儲存puzzle陣列中的內容
  if(key=='s'){
    for(int i=0;i<20;i++){
      for(int j=0;j<20;j++){
        output.print(puzzle[j][i]+",");
      }
      output.println("\r\n");
    }
    output.flush();  
//寫入檔案中
    output.close();  
//關閉檔案
  }

}

按下左上角的三角形Ctrl+R,即可執行看結果


開啟ans.txt

沒有留言:

張貼留言