“刮刮彩票”是一款網絡游戲里面的一個小游戲。如圖所示:
每次游戲玩家會拿到一張彩票,上面會有 9 個數字,分別為數字 1 到數字 9,數字各不重復,并以?3×3?的“九宮格”形式排布在彩票上。
在游戲開始時能看見一個位置上的數字,其他位置上的數字均不可見。你可以選擇三個位置的數字刮開,這樣玩家就能看見四個位置上的數字了。最后玩家再從 3 橫、3 豎、2 斜共 8 個方向中挑選一個方向,方向上三個數字的和可根據下列表格進行兌獎,獲得對應數額的金幣。
數字合計 獲得金幣 數字合計 獲得金幣 6 10,000 16 72 7 36 17 180 8 720 18 119 9 360 19 36 10 80 20 306 11 252 21 1,080 12 108 22 144 13 72 23 1,800 14 54 24 3,600 15 180 現在請你寫出一個模擬程序,模擬玩家的游戲過程。
輸入格式:
輸入第一部分給出一張合法的彩票,即用 3 行 3 列給出 0 至 9 的數字。0 表示的是這個位置上的數字初始時就能看見了,而不是彩票上的數字為 0。
第二部給出玩家刮開的三個位置,分為三行,每行按格式?
x y
?給出玩家刮開的位置的行號和列號(題目中定義左上角的位置為第 1 行、第 1 列。)。數據保證玩家不會重復刮開已刮開的數字。最后一部分給出玩家選擇的方向,即一個整數: 1 至 3 表示選擇橫向的第一行、第二行、第三行,4 至 6 表示縱向的第一列、第二列、第三列,7、8分別表示左上到右下的主對角線和右上到左下的副對角線。
輸出格式:
對于每一個刮開的操作,在一行中輸出玩家能看到的數字。最后對于選擇的方向,在一行中輸出玩家獲得的金幣數量。
輸入樣例:
1 2 3 4 5 6 7 8 0 1 1 2 2 2 3 7
輸出樣例:
1 5 6 180
#include<stdio.h> int main() {int arr[4][4];int x,y;int sum1 =0+1+2+3+4+5+6+7+8+9;for(int i =1;i<=3;++i){for(int j = 1;j<=3;++j){scanf("%d",&arr[i][j]);sum1-=arr[i][j];if(arr[i][j]==0){x=i;y=j;}}}arr[x][y] = sum1;for(int i = 0;i<3;++i){scanf("%d %d",&x,&y);printf("%d\n",arr[x][y]);}int direct = 0;scanf("%d",&direct);int sum = 0;switch(direct){case 1:sum = arr[1][1]+arr[1][2]+arr[1][3];break;case 2:sum = arr[2][1]+arr[2][2]+arr[2][3];break;case 3:sum = arr[3][1]+arr[3][2]+arr[3][3];break;case 4:sum = arr[1][1]+arr[2][1]+arr[3][1];break;case 5:sum = arr[1][2]+arr[2][2]+arr[3][2];break;case 6:sum = arr[1][3]+arr[2][3]+arr[3][3];break;case 7:sum = arr[1][1]+arr[2][2]+arr[3][3];break;case 8:sum = arr[1][3]+arr[2][2]+arr[3][1];break;default:break;}int prize[25]={0,0,0,0,0,0,10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600,0};printf("%d\n",prize[sum]);return 0; }
?