zoukankan      html  css  js  c++  java
  • uva 10189 Minesweeper

    题目描述:

     

    Problem B: Minesweeper

    The Problem

    Have you ever played Minesweeper? It's a cute little game which comes within a certain  Operating System which name we can't really remember. Well, the goal of the game is to find where are all the mines within a MxN field. To help you, the game shows a number in a square which tells you how many mines there are adjacent to that square. For instance, supose the following 4x4 field with 2 mines (which are represented by an * character):

    *...
    ....
    .*..
    ....
    

    If we would represent the same field placing the hint numbers described above, we would end up with:

    *100
    2210
    1*10
    1110
    

    As you may have already noticed, each square may have at most 8 adjacent squares.

    The Input

    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 stands for the number of lines and columns of the field respectively. The next n lines contains exactly m characters and represent the field. Each safe square is represented by an "." character (without the quotes) and each mine square is represented by an "*" character (also without the quotes). The first field line where n = m = 0 represents the end  of input and should not be processed.

    The Output

    For each field, you must print the following message in a line alone:

    Field #x:

    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 adjacent mines to that square. There must be an empty line between field outputs.

    Sample Input

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

    Sample Output

    Field #1:
    *100
    2210
    1*10
    1110
    
    Field #2:
    **100
    33200
    1*100
    
     
    源代码:

    #include<iostream>

    #include<cstring>

    using namespace std;

    char chi[105][105],cho[105][105];

    int main()

    {

        int n,m,i,j,num;

        num=1;

        while(cin>>n>>m)

        {

            if(n==0 && m==0) break;

            for(i=1;i<=n;++i)

                for(j=1;j<=m;++j)

                    cin>>chi[i][j];

            memset(cho,'0',sizeof(cho));

            if(num!=1) cout<<endl;//第0行不输出

            for(i=1;i<=n;++i)//从1开始,避免了很多判断

                for(j=1;j<=m;++j)

                {

                    if(chi[i][j]=='.') continue;

                    else

                    {

                        cho[i][j]='*';

                        if(cho[i-1][j-1]!='*') cho[i-1][j-1]+=1;

                        if(cho[i-1][j]!='*') cho[i-1][j]+=1;

                        if(cho[i-1][j+1]!='*')cho[i-1][j+1]+=1;

                        if(cho[i][j-1]!='*') cho[i][j-1]+=1;

                        cho[i+1][j-1]+=1;

                        cho[i][j+1]+=1;

                        cho[i+1][j+1]+=1;

                        cho[i+1][j]+=1;

                    }

                }

            cout<<"Field #"<<num++<<":"<<endl;

            for(i=1;i<=n;++i)

            {

                for(j=1;j<=m;++j)

                {

                    cout<<cho[i][j];

                }

                cout<<endl;

            }

            

        }

        system("pause");

        return 0;

    }

     

    
    题目提交了好多次,总是WA,最后发现是输出格式的错误,太悲催了。
  • 相关阅读:
    persistence_timeout ,域名请求登录后一操作即被踢出,,KeepAlive,lvs
    记录因xen而导致lvs,realserver转发activeconn为0
    html5各种页面切换效果和模态对话框
    [设计模式] javascript 之 抽象工厂模式
    jQuery源码分析-构造函数详解
    CSS3动画的回调处理
    jQuery load()方法用法集锦!
    css控制input标签
    分享22款响应式的 jQuery 图片滑块插件
    Jquery取得iframe中元素的几种方法(转载)
  • 原文地址:https://www.cnblogs.com/redlight/p/2291594.html
Copyright © 2011-2022 走看看