繁体   English   中英

使用C#为战舰程序制作简单的AI

[英]Making a simple AI for a battleship program in C#

我最近才开始学习编码C#,希望有一天能找到一份工作。 我正在尝试在5x5网格中获得3个随机生成的点。 由于某些原因,当我尝试运行它时,它只会自动崩溃。 为了进行测试,我添加了Console.WriteLine和Console.ReadKey尝试查看输出,但仍会立即自动关闭。 有什么原因不应该这样做吗? 谢谢您的帮助:D

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
        }
        public void CompB()
        {
            int[] AiB = new int[6];
            for (int i = 1; i < 3; i++)
            {
                Random rnd = new Random();
                int AiR = rnd.Next(0, 26);
                AiB[i] = AiR;
            }
            Console.WriteLine(AiB[0]);
            Console.ReadKey();
        }
    }
}

您的方法未调用。 这就是为什么它会自动关闭。 您的程序无所事事。

class Program
{
    static void Main(string[] args)
    {
        int[] AiB = new int[6];
        for (int i = 1; i < 3; i++)
        {
            Random rnd = new Random();
            int AiR = rnd.Next(0, 26);
            AiB[i] = AiR;
        }
        Console.WriteLine(AiB[0]);
        Console.ReadKey();
    }
}

现在的输出是:

在此处输入图片说明

完整的代码:

class Program
{
    static void Main(string[] args)
    {
        CompB();
    }
    public static void CompB()
    {
        int[] AiB = new int[6];
        for (int i = 1; i < 3; i++)
        {
            Random rnd = new Random();
            int AiR = rnd.Next(0, 26);
            AiB[i] = AiR;
        }
        Console.WriteLine(AiB[0]);
        Console.ReadKey();
    }
}

这就是我发现未使用该方法的方式:

之前:

在此处输入图片说明

后:

在此处输入图片说明

如上文所述,您在main方法中缺少CompB();。

我又在第18行中查看了for循环,它从i = 1开始,但是您在做

System.Console.WriteLine(AiB [0]);

你应该尝试像

System.Console.WriteLine(AiB [1]);

static void Main(string[] args)
        {`enter code here`
            CompB();
        }
        public static void CompB()
        {
            int[] AiB = new int[6];
            for (int i = 1; i < 3; i++)
            {
                Random rnd = new Random();
                int AiR = rnd.Next(0, 26);
                AiB[i] = AiR;
            }
            System.Console.WriteLine(AiB[1]);
            System.Console.ReadKey();
        }

您需要从主方法调用方法CompB()。 然后,您必须将所有值写到数组中。

class Program
    {
        static void Main(string[] args)
        {
            CompB();
        }
        public static void CompB()
        {
            int[] AiB = new int[6];
            for (int i = 1; i < 3; i++)
            {
                Random rnd = new Random();
                int AiR = rnd.Next(0, 26);
                AiB[i] = AiR;
            }
            //Write all values:
            for (int i = 0; i < 6; i++)
            {
                System.Console.WriteLine("Value of {0}: {1}", i, AiB[i]);
            }

            System.Console.ReadKey();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM