首先建陣列儲存 A卡 跟 B卡,同時這兩張卡分別建一個判斷用的陣列,0 表示該位子號碼還沒被叫到,1 則表示有
每次讀到一個數字,比對賓果卡後,將對應位置標記為 1,然後丟進判斷用的函式
判斷賓果連線是用下面這個函式
int bingo(bool a[5][5]) /* a [5][5] 是判斷用的陣列 */ { int i, line=0; for(i=0;i<5;i++) { if(a[i][0]+a[i][1]+a[i][2]+a[i][3]+a[i][4]==5) /* 橫列都是 1 */ line++; if(a[0][i]+a[1][i]+a[2][i]+a[3][i]+a[4][i]==5) /* 直行都是 1 */ line++; } if(a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[4][4]==5) /* 左上 - 右下 對角線 */ line++; if(a[0][4]+a[1][3]+a[2][2]+a[3][1]+a[4][0]==5) /* 右上 - 左下 對角線 */ line++; return line; }
PS:C 沒有 bool ,要自己 define
雖然每次叫號都要重新判斷,但是可以處理同時連成 5 條線而平手的情形,用 if-else 就可以輕鬆解決