2012-03-16 1 views
-4

... Я работаю над случайным в C#. Я хочу использовать случайный для просмотра строк двигаться в случайном & это код, который я пишу, но dosen't работать я хочу знать, что не так я делаюкак написать случайный код в 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

Можете ли вы описать, что это не работает? Или ваша проблема заключается в том, что код не компилируется? –

+8

Первая проблема: C# чувствителен к регистру. На данный момент ни один из ваших кодов не будет работать. Следующая проблема: вы не сказали * как * это не работает, предполагая, что ваш * реальный * код использует правый корпус ... –

+0

Как он не работает? Что происходит? Вы получаете сообщение об ошибке? – Haedrian

ответ

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; 
        } 
       } 
      } 
     } 
    } 
} 
+0

+1 для добавления 'Console.ReadLine();'. @WalaaElsaid: без этого добавления консоль закрывается сразу после выполнения кода. 'ReadLine' держит его открытым, пока вы не нажмете' '. –

+0

Это правда, но он по-прежнему не перемещается. –

+1

@WalaaElsaid. Он не перемещается, потому что код не перемещает его. Он печатает одну строку из 5 символов, а затем завершается. Если вы хотите, чтобы текст двигался, вам нужно запрограммировать его так. Вы не можете ожидать, что мы узнаем, что вы ожидаете от поведения программы, поскольку вы не сказали, что вы ожидали от нее. –

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 метод между следующим { и }.


UPDATE:

Сделать это движение как этот

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; до имен. Это будет работать до тех пор, пока не будет нажата какая-либо клавиша. Console.ReadLine() больше не требуется.

while (condition) { statement_sequence } - инструкция цикла. Он будет повторять утверждения до тех пор, пока выполняется условие.

Смежные вопросы