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

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

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

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

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

定義一個30×30的二維數(shù)組,模仿Windows XP自帶的掃雷游戲?qū)@個二維數(shù)組進行隨機布雷,要求至少布雷30個。游戲規(guī)則是:某個元素的值是一周(相鄰8個位置)存在的地雷的個數(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 ++ )
                {
                    // 判斷八個方位是否有雷,將雷相加
                    // 判斷上
                    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 實現(xiàn)效果

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

相關(guān)文章

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

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

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

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

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

    C#使用dynamic類型訪問JObject對象

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

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

    在Unity中可以同時創(chuàng)建很多腳本,并且可以分別綁定到不同的游戲?qū)ο笊?,它們各自都在自己的生命周期中運行。與腳本有關(guān)的也就是編譯和執(zhí)行啦,本文就來研究一下Unity中腳本的編譯和執(zhí)行順序的問題。
    2014-11-11
  • 基于C#設(shè)計一個雙色球選號工具

    基于C#設(shè)計一個雙色球選號工具

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

    簡單談?wù)凜#中深拷貝、淺拷貝

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

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

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

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

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

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

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

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

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

最新評論

正宁县| 且末县| 越西县| 望都县| 陵水| 张北县| 隆昌县| 洪洞县| 湟中县| 明光市| 汕尾市| 杂多县| 北票市| 凌云县| 通渭县| 平陆县| 额尔古纳市| 凤阳县| 德阳市| 日喀则市| 闽侯县| 大关县| 德昌县| 库尔勒市| 达拉特旗| 惠安县| 广平县| 阜平县| 合阳县| 甘孜| 昭通市| 苍山县| 白城市| 台江县| 衡阳市| 探索| 芒康县| 田阳县| 泰来县| 阆中市| 青浦区|