L1-072 刮刮彩票 (20 分)

题目要求

“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示:


image.png

每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9,数字各不重复,并以 3×3 的“九宫格”形式排布在彩票上。
在游戏开始时能看见一个位置上的数字,其他位置上的数字均不可见。你可以选择三个位置的数字刮开,这样玩家就能看见四个位置上的数字了。最后玩家再从 3 横、3 竖、2 斜共 8 个方向中挑选一个方向,方向上三个数字的和可根据下列表格进行兑奖,获得对应数额的金币。


image.png

现在请你写出一个模拟程序,模拟玩家的游戏过程。

资源限制

  1. 时间限制:400ms
  2. 内存限制:64.0MB
  3. 代码长度限制:16KB

样例输入输出

输入格式:

输入第一部分给出一张合法的彩票,即用 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<iostream>
using namespace std;
int main(){
    int a[4][4],b[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};
    int i,j,ii,jj;
    int c[10]={0};
    for(i=1;i<4;i++){
        for(j=1;j<4;j++){
            cin>>a[i][j];
            int w=a[i][j];
            c[w]=1;
            if(a[i][j]==0){
                ii=i;
                jj=j;
            }
        } 
    }   
    for(i=0;i<10;i++){
        if(c[i]==0){
            a[ii][jj]=i;
        }
    }   
    for(i=0;i<3;i++){
        int n,m;
        cin>>n>>m;
        cout<<a[n][m]<<endl;
    }
    int x,sum=0;
    cin>>x;
    if(x==1){
        sum=a[1][1]+a[1][2]+a[1][3];
    }
    if(x==2){
        sum=a[2][1]+a[2][2]+a[2][3];
    }
    if(x==3){
        sum=a[3][1]+a[3][2]+a[3][3];
    }
    if(x==4){
        sum=a[1][1]+a[2][1]+a[3][1];
    }
    if(x==5){
        sum=a[1][2]+a[2][2]+a[3][2];
    }
    if(x==6){
        sum=a[1][3]+a[2][3]+a[3][3];
    }
    if(x==7){
        sum=a[1][1]+a[2][2]+a[3][3];
    }
    if(x==8){
        sum=a[1][3]+a[2][2]+a[3][1];
    }
    cout<<b[sum]<<endl;
    return 0;
} 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目要求 彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的...
    melody_yuan阅读 345评论 0 0
  • 题目要求 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、...
    melody_yuan阅读 196评论 0 0
  • 题目要求 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的...
    melody_yuan阅读 331评论 0 0
  • 题目要求 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的...
    melody_yuan阅读 379评论 0 0
  • 7-4求链式线性表的倒数第K项(20分) 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字...
    hashrsa阅读 583评论 0 0