BNUOJ 1043 旋转方块

BNUOJ 1043 旋转方块

有一种电脑赌博的游戏,电脑先生成两个8*8的图案块(只含有'.','*','#'),如下图

方块1: 方块2:
........ ..*.....
...*...* ...*...*
....*... .*..*#.*
....#.#. .*#.*...
....#... .*..*...
.#..*... .*..*...
...*..#. ...#..#.
....#... ...#..#.

当你按键开始游戏的之后,电脑随机的多次转动两个方形块(向右90度旋转);
例如将方块1旋转2次,方块2旋转3次后方块变为如下图形。

方块1: 方块2:
...#.... .**.....
.#..*... ......##
...*..#. ..#.....
...#.... ..****..
.#.#.... .*....##
...*.... *..#....
*...*... ..****..
........ ........

电脑之后会将两个方形图案重叠起来。
如果两个'.'重合在一起你可以得到1分,
如果两个'*'重合在一起你可以得到2分,
如果两个'#'重合在一起你可以得到3分。
现在给你初始的两个8*8的方形块请你算出你得分的期望。

Input

输入数据共16行,前8行描述了方块1,后8行描述了方块2。

Output

输出一行:你的得分的期望值(四舍五入到小数点后两位)。

Sample Input

........
...*...*
....*...
....#.#.
....#...
.#..*...
...*..#.
....#...
..*.....
...*...*
.*..*#.*
.*#.*...
.*..*...
.*..*...
...#..#.
...#..#.
 

Sample Output

43.00
不管随机旋转都多少次。一共就有4*4=16种情况。全部求出来/16就可以。
#include <stdio.h>
#include <string.h>
char a[10][10];
char b[10][10];
int main()
{

    int judge(int t,int k);

 

 

    int i,j;

    int sum=0;

 

    for (i=0;i<8;i++)

        scanf("%s",a[i]);

    for (i=0;i<8;i++)

        scanf("%s",b[i]);

 

    for (i=0;i<4;i++)

        for(j=0;j<4;j++)

            sum+=judge(i,j);

 

 

 

    printf("%.2f",(double)sum/16);

    return 0;

}

 

int judge(int t,int k)      

{

 

    int i,j;

    int ans=0;

    char ai[10][10];

    char bi[10][10];

 

    for(i=0;i<8;i++)

    {

        strcpy(ai[i],a[i]);

        strcpy(bi[i],b[i]);

    }

    char tm[10][10];

    memset(tm,'\0',sizeof(tm));

 

    while(t--)
    {

        for (i=0;i<8;i++)
           for(j=0;j<8;j++)
                tm[7-j][i]=ai[i][j]; 
        for (i=0;i<8;i++)
            strcpy(ai[i],tm[i]);

 

    }

    while(k--)
    {

        for (i=0;i<8;i++)

            for(j=0;j<8;j++)
               tm[7-j][i]=bi[i][j]; 

        for (i=0;i<8;i++)

            strcpy(bi[i],tm[i]);
 
 

    }

    for (i=0;i<8;i++)
        for(j=0;j<8;j++)
            if(ai[i][j]==bi[i][j])
            {

                switch (ai[i][j])
                {

                case '.': ans+=1;
                    break;

                case '*': ans+=2;
                    break;

                case '#': ans+=3;

                   break;
                }

            }

 

 
            return ans;

 

}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值