如何在c#中编写随机代码

时间:2012-03-16 22:38:36

标签: c#

......我正在C#中随机工作。我想使用随机来随机查看字符串移动&这是我写的代码,但它不起作用 我想知道我做错了什么

using system ;
namespace work
{
    static random random =new random();
    static int max_X=console.windowwidth; 
    static int max_Y=console.windowheight;
    static void main(string[] args)
    {
        int x=random.next(max_X);
        int y=random.next(max_Y);
        console.setcursorposition(x,y);
        console.write("walaa");
    }
}
}

2 个答案:

答案 0 :(得分:2)

我猜您的问题是您的程序无法编译。这是一个版本:

using System;

namespace ConsoleApplication1
{
    class Program
    {
         static Random random = new Random();
         static int max_X = Console.WindowWidth; 
         static int max_Y = Console.WindowHeight;

         static void Main(string[] args)
         {
             int x = random.Next(max_X);
             int y = random.Next(max_Y);
             Console.SetCursorPosition(x, y);
             Console.Write("walaa");
             Console.ReadLine();//keep console open so you can see output
         }
    }
}

在C#中,为了定义方法,您需要定义一个类。你的代码中缺少这个。

另一个重要问题是C#对文本的情况很敏感。也就是说,编译器将大写和小写文本视为不同。例如,该类名为Random而不是random,依此类推。

您的教科书将包含所有这些信息,我建议您修改该书的介绍部分。


你问如何让文字在屏幕上移动。你的意思是这样吗?

using System;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
         static Random random = new Random();
         static int max_X = Console.WindowWidth; 
         static int max_Y = Console.WindowHeight;

         static void Main(string[] args)
         {
             while (true)
             {
                 int x = random.Next(max_X);
                 int y = random.Next(max_Y);
                 Console.Clear();
                 Console.SetCursorPosition(x, y);
                 Console.Write("walaa");
                 Thread.Sleep(500);
                 while (Console.KeyAvailable)
                 {
                     ConsoleKeyInfo cki = Console.ReadKey();
                     if (cki.Key == ConsoleKey.Escape)
                     {
                         return;
                     }
                 }
             }
         }
    }
}

答案 1 :(得分:0)

在Visual Studio(以及其他IDE)中创建新的控制台项目时,会插入如下文本

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

保留此常规结构,并将代码置于Main{之间的}方法中。


更新:

让它像这样移动

while (!Console.KeyAvailable) {
    int x = random.Next(max_X);
    int y = random.Next(max_Y);

    Console.Clear();
    Console.SetCursorPosition(x, y);
    Console.Write("walaa");

    Thread.Sleep(500); // Pause in milliseconds
}

您需要在命名空间之前添加using System.Threading;。这将一直运行,直到某个键被击中。 <{1}}不再需要了。

Console.ReadLine()是一个循环语句。只要满足条件,它就会重复这些陈述。