zoukankan      html  css  js  c++  java
  • YTU 1099: Minesweeper

    1099: Minesweeper

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 180  解决: 98

    题目描述

    Minesweeper Have you ever played Minesweeper? This cute little game comes with a certain operating system whose name we can't remember. The goal of the game is to find where all the mines are located within a M x N field. The game shows a number in a square which tells you how many mines there are adjacent to that square. Each square has at most eight adjacent squares. The 4 x 4 field on the left contains two mines, each represented by a ``*'' character. If we represent the same field by the hint numbers described above, we end up with the field on the right: *... .... .*.. .... *100 2210 1*10 1110

    输入

    The input will consist of an arbitrary number of fields. The first line of each field contains two integers n and m ( 0 < n, m<100) which stand for the number of lines and columns of the field, respectively. Each of the next n lines contains exactly m characters, representing the field. Safe squares are denoted by ``.'' and mine squares by ``*,'' both without the quotes. The first field line where n = m = 0 represents the end of input and should not be processed.

    输出

    For each field, print the message Field #x: on a line alone, where x stands for the number of the field starting from 1. The next n lines should contain the field with the ``.'' characters replaced by the number of mines adjacent to that square. There must be an empty line between field outputs.

    样例输入

    4 4
    *...
    ....
    .*..
    ....
    3 5
    **...
    .....
    .*...
    0 0
    

    样例输出

    Field #1:
    *100
    2210
    1*10
    1110
    
    Field #2:
    **100
    33200
    1*100
    


    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char lei[120][120];
        int ci=0,n,m;
        while(~scanf("%d%d",&n,&m)&&(n||m))
        {
            memset(lei,'0',sizeof(lei));
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)
                {
                    char x;
                    scanf(" %c",&x);
                    if(x=='*')
                    {
                        lei[i][j]='*';
                        for(int ii=i-1; ii<=i+1; ii++)
                            for(int jj=j-1; jj<=j+1; jj++)
                                if(lei[ii][jj]!='*')lei[ii][jj]++;
                    }
                }
            printf("Field #%d:
    ",++ci);
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)printf(j!=m?"%c":"%c
    ",lei[i][j]);
            printf("
    ");
        }
        return 0;
    }
    


    总是望着曾经的空间发呆,那些说好不分开的朋友不在了,转身,陌路。 熟悉的,安静了, 安静的,离开了, 离开的,陌生了, 陌生的,消失了, 消失的,陌路了。快哭了
  • 相关阅读:
    vue-待办日历和Table
    vue-播种量小工具总结
    20200415-巡检发现的有趣事情
    vue-element-admin学习笔记--Setting保存到cookie
    vue-element-admin学习笔记--权限加载及自定义布局(8)
    vue-element-admin学习笔记--权限加载及自定义布局(7)
    vue-element-admin学习笔记--权限加载及自定义布局(6)
    第六天 二维数组 方法
    第五天(冒泡排序)
    第四天 数组(基础)
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989673.html
Copyright © 2011-2022 走看看