2016年12月18日 星期日

(1A2B遊戲)手把手教你如何光源氏計畫培養電腦成為你的1A2B遊戲伴侶 Part2 數字比對




會拆數字之後接下來就把兩個數字做拆解後個別存到box1 跟box2上
也就是box1[]跟box2[]
那問題就來了 我們如何讓電腦知道幾A幾B呢?
我們先自己比對一次 是不是就像下圖一樣呢? 



如果我把A1(box1)當成主要角色B1(box2)當成次要角色 
那麼對應方式就會為.....
box1[0]去對上box2[0,1,2,3] 
box1[1]去對上box2[0,1,2,3] 
以此類推
所以注意到了嗎? box1和box2的關係是不是就變成巢狀迴圈了呢?

再來.... 接下來A代表數字對位置也對
B則是數字對 位置不對.....
我們把剛剛的巢狀迴圈 控制i j的值 是不是就是位置呢?
不懂的話回去看上一張圖.... A1裡面有4個格子 所以變成box1[i] i=0,1,2,3以此類推
也就是說 我們跑這個巢狀迴圈是在抓box1[i]裡面的值 那i就是索引值也就是位置
囉.....

接下來....了解位置後
應該就能很輕鬆判斷A和B的條件吧

所以 符合A 程式碼就是:if(i==j&&box1[i]==box2[j]) 如果位置正確裡面的值也正確那麼....
         符合B 程式碼就是:if(i!=j&&box1[i]=box2[j]) 如果位置不正確 裡面值正確那麼.....

以上就是數字比對的部分

注意!這裡只是教方法如何使用....複製貼上一點意義都沒有.(1A2B 不懂這些程式碼拼拼湊湊絕對不會有答案出來喔..... 真心不騙)
以下程式碼為:
public static void comp(int[] box1,int[] box2)
 {
  for(i=0;i<=3;i++)
  {

   for(j=0;j<=3;j++)
   {
    if(i==j&&box1[i]==box2[j])
    {
     aok++;

    }else if(i!=j&&box1[i]==box2[j])
    {
     bok++;
    }
   }

  }
 }

沒有留言:

張貼留言