2012-03-16 8 views
-4

...私は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

どのように動作しないのですか?あるいは、あなたの問題は、コードがコンパイルされないという事実ですか? –

+8

最初の問題:C#では大文字と小文字が区別されます。あなたのコードは現時点では動作しません。次の問題:あなたの*実際のコードが正しいケーシングを使用していると仮定して*どのように*動作しないのかあなたは言っていません... –

+0

どのように動作しませんか?何が起こっている?エラーが発生していますか? – Haedrian

答えて

2

を行い、間違ったかを知りたい を仕事dosen'tあなたのプログラムということですコンパイルされません。

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#がテキストの場合に敏感であることです。つまり、大文字と小文字のテキストは、コンパイラによって異なるものとして扱われます。たとえば、クラスは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

'Console.ReadLine();'を追加するための+1。 @ WalaaElsaid:この追加がなければ、コンソールはコードを実行した直後に閉じます。 'ReadLine'はあなたが' 'になるまでそれを開いたままにします。 –

+0

これは本当ですが、まだ移動しません –

+1

@WalaaElsaidコードが動かないため移動しません。 1つの5文字の文字列を出力して終了します。テキストを移動するには、プログラムする必要があります。あなたは、あなたがそれが期待していたことを言っていないので、あなたがプログラムの行動が期待していることを私たちが知ることを期待することはできません。 –

0

は、Visual Studioで新しいコンソールプロジェクトを作成します(および他のIDEのでは)次のようなテキストが、この一般的な構造をしてくださいとの間Main方法にあなたのコードを配置し

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

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

を挿入されています{および}


UPDATE:

それはあなたが名前空間の前にusing System.Threading;を追加する必要があります。この

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 
} 

のように移動してください。これは、いくつかのキーがヒットするまで実行されます。 Console.ReadLine()はもう必要ありません。

while (condition) { statement_sequence }はループステートメントです。条件が満たされている限り、ステートメントを繰り返します。