[C #] Imitez le jeu de dragueur de mines fourni avec Windows XP

1 Description du sujet: imiter le jeu de dragueur de mines fourni avec Windows XP

Définissez un tableau bidimensionnel 30 × 30, imitez le jeu de dragueur de mines fourni avec Windows XP pour extraire au hasard ce tableau bidimensionnel, et au moins 30 mines sont nécessaires. La règle du jeu est la suivante: la valeur d'un élément est le nombre de mines en une semaine (8 positions adjacentes).

2 Code source détaillé

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 Obtenez l'effet

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/Gyangxixi/article/details/115347458
conseillé
Classement