最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#仿Windows XP自帶的掃雷游戲

 更新時(shí)間:2021年04月30日 11:08:50   作者:敲代碼兩年半的練習(xí)生  
這篇文章主要為大家詳細(xì)介紹了C#仿Windows XP自帶的掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C#仿Windows XP自帶的掃雷游戲的具體代碼,供大家參考,具體內(nèi)容如下

1 題目描述:模仿Windows XP自帶的掃雷游戲

定義一個(gè)30×30的二維數(shù)組,模仿Windows XP自帶的掃雷游戲?qū)@個(gè)二維數(shù)組進(jìn)行隨機(jī)布雷,要求至少布雷30個(gè)。游戲規(guī)則是:某個(gè)元素的值是一周(相鄰8個(gè)位置)存在的地雷的個(gè)數(shù)。

2 源碼詳解

using System;
using System.Collections;

namespace Csharp5_3
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList arrayList = new();
            ArrayList arrayList_map = new();
            Random rd = new();
            for (int i = 0; i < 900; i++)
            {
                if (rd.Next() % 20 == 0)
                {
                    arrayList.Add(1);
                }
                else
                {
                    arrayList.Add(0);
                }
                arrayList_map.Add(0);
            }
            for (int i = 0; i < 30; i++)
            {
                for (int j = 0; j < 30; ++j)
                {
                    Console.Write(arrayList[i * 30 + j]);
                    Console.Write(" ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();

            for ( int i = 0; i < 30; i ++ )
            {
                for ( int j = 0; j < 30; j ++ )
                {
                    // 判斷八個(gè)方位是否有雷,將雷相加
                    // 判斷上
                    if (((i - 1) * 30 + j) >= 0 && ((i - 1) * 30 + j) < 900 && j != 0) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[i * 30 + j - 30]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷下
                    if (((i + 1) * 30 + j) >= 0 && ((i + 1) * 30 + j) < 900 && j != 29) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[i * 30 + j + 30]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷左
                    if ((i * 30 + j - 1) >= 0 && (i * 30 + j -1) < 900 && j != 0) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[i * 30 + j -1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷右
                    if ((i * 30 + j + 1) >= 0 && (i * 30 + j + 1) < 900 && j != 29) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[i * 30 + j + 1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷左上
                    if (((i - 1) * 30 + j -1 ) >= 0 && ((i - 1) * 30 + j - 1) < 900 && j != 0) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[(i - 1) * 30 + j - 1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷左下
                    if (((i + 1) * 30 + j - 1) >= 0 && ((i + 1) * 30 + j - 1) < 900 && j != 29) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[(i + 1) * 30 + j - 1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷右上
                    if (((i - 1) * 30 + j + 1) >= 0 && ((i - 1) * 30 + j + 1) < 900 && j != 0) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[(i - 1) * 30 + j + 1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }

                    // 判斷右下
                    if (((i + 1) * 30 + j + 1) >= 0 && ((i + 1) * 30 + j + 1) < 900 && j != 29) // 邊界值判斷
                    {
                        if (Convert.ToInt32(arrayList[(i + 1) * 30 + j + 1]) == 1)
                        {
                            arrayList_map[i * 30 + j] = Convert.ToInt32(arrayList[i * 30 + j]) + 1;
                        }
                    }
                }
            }
            for (int i = 0; i < 30; i++)
            {
                for (int j = 0; j < 30; ++j)
                {
                    Console.Write(arrayList_map[i * 30 + j]);
                    Console.Write(" ");
                }
                Console.WriteLine();
            }
            Console.Read();
        }
    }
}

3 實(shí)現(xiàn)效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Unity實(shí)現(xiàn)切割圖集工具

    Unity實(shí)現(xiàn)切割圖集工具

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)切割圖集工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Unity實(shí)現(xiàn)噴漆效果

    Unity實(shí)現(xiàn)噴漆效果

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)噴漆效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C#使用dynamic類型訪問(wèn)JObject對(duì)象

    C#使用dynamic類型訪問(wèn)JObject對(duì)象

    這篇文章主要為大家詳細(xì)介紹了C#使用dynamic類型訪問(wèn)JObject對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Unity3D中腳本的執(zhí)行順序和編譯順序

    Unity3D中腳本的執(zhí)行順序和編譯順序

    在Unity中可以同時(shí)創(chuàng)建很多腳本,并且可以分別綁定到不同的游戲?qū)ο笊希鼈兏髯远荚谧约旱纳芷谥羞\(yùn)行。與腳本有關(guān)的也就是編譯和執(zhí)行啦,本文就來(lái)研究一下Unity中腳本的編譯和執(zhí)行順序的問(wèn)題。
    2014-11-11
  • 基于C#設(shè)計(jì)一個(gè)雙色球選號(hào)工具

    基于C#設(shè)計(jì)一個(gè)雙色球選號(hào)工具

    這篇文章主要為大家詳細(xì)介紹了如何利用C#設(shè)計(jì)實(shí)現(xiàn)一個(gè)雙色球選號(hào)工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 簡(jiǎn)單談?wù)凜#中深拷貝、淺拷貝

    簡(jiǎn)單談?wù)凜#中深拷貝、淺拷貝

    深拷貝和淺拷貝都是對(duì)對(duì)象進(jìn)行的拷貝復(fù)制。而他們的不同就在于:一個(gè)對(duì)象中可能會(huì)有值類型的字段,也可能會(huì)有引用類型的字段。淺拷貝直接拷貝值、引用類型的指針。而深拷貝則是重新構(gòu)造字段指針?biāo)赶虻膶?duì)象,并沒(méi)有拷貝該字段的指針,或是與該字段指針指向同一塊內(nèi)存
    2015-06-06
  • c# WinForm制作圖片編輯工具(圖像拖動(dòng)、縮放、旋轉(zhuǎn)、摳圖)

    c# WinForm制作圖片編輯工具(圖像拖動(dòng)、縮放、旋轉(zhuǎn)、摳圖)

    這篇文章主要介紹了c# WinForm制作圖片編輯工具(可實(shí)現(xiàn)圖像拖動(dòng)、縮放、旋轉(zhuǎn)、摳圖),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# 刪除數(shù)組內(nèi)的某個(gè)值、一組值方法詳解

    C# 刪除數(shù)組內(nèi)的某個(gè)值、一組值方法詳解

    在本篇文章里小編給大家整理的是關(guān)于C# 如何刪除數(shù)組內(nèi)的某個(gè)值、一組值的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2020-03-03
  • C#深度優(yōu)先搜索算法

    C#深度優(yōu)先搜索算法

    這篇文章主要介紹了C#深度優(yōu)先搜索算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C#使用RabbitMq隊(duì)列(Sample,Work,Fanout,Direct等模式的簡(jiǎn)單使用)

    C#使用RabbitMq隊(duì)列(Sample,Work,Fanout,Direct等模式的簡(jiǎn)單使用)

    這篇文章主要介紹了C#使用RabbitMq隊(duì)列(Sample,Work,Fanout,Direct等模式的簡(jiǎn)單使用),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

阳春市| 涟水县| 平谷区| 深州市| 张家口市| 辉南县| 庆安县| 科技| 仙游县| 大冶市| 贡嘎县| 安塞县| 阿拉尔市| 扶余县| 藁城市| 密云县| 凌云县| 蓬安县| 镇雄县| 天等县| 四川省| 包头市| 大方县| 曲松县| 泰顺县| 苏尼特右旗| 潍坊市| 镶黄旗| 始兴县| 瑞昌市| 伊金霍洛旗| 滦南县| 井陉县| 庄浪县| 华亭县| 筠连县| 和硕县| 中方县| 乌拉特中旗| 新蔡县| 鸡东县|