0

ユーザーが(「だまされるのが大好き」)のようなテキストを入力するアプリを設計しています。このテキストは、電子 LED ディスプレイ ボードのようなウィンドウに表示されます。そして、それは明らかに動くでしょう。このために私はしなければならない

  1. 16 (行) * 64 (列) LED を持つウィンドウを設計します。視覚的に。しかし、どのように?
  2. i のようなデータを含むテキスト ファイルを作成します (f00f-offo-ffoo-3051 (I の場合、16 進値を想定)、2340-foof-oooo-fofo (l を想定) など)。
  3. 次に、実際の LED ディスプレイのように書くために、時間とともに左からシフトする必要があります。しかし、どのように?

私はwinformを使用することを好みます

あなたのアイデアが私にとって素晴らしいものになるようにしてください。

ありがとう、A.ラヒム

4

1 に答える 1

3

これにアプローチする方法は、次のように、アルファベットの各文字に対して 6 x 5 の配列を用意することです。

int[][] letterA = { { 0, 0, 1, 1, 0, 0 },
                    { 0, 1, 0, 0, 1, 0 },
                    { 1, 1, 0, 0, 1, 1 },
                    { 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 0, 0, 1, 1 },
                    { 1, 1, 0, 0, 1, 1 }};

次に、入力された単語を作成するために必要な文字をマージします。

そのため、LED をオンにする必要があるため、各行が長くなります。

以上がアプリのビジネス ロジックです。

ここで、有限の LED ライト セットを作成したいので、60 x 10 と言って右端から開始し、現在の配列値が 1 の場合は円を黄色、それ以外の場合は黒で表示します。

それが役立つことを願っています。

編集:プログラムでフォームに円をレンダリングします。

パネル内のすべてのコントロールを削除するよりもタイマーを作成してから、次のことができます。

//word is the merged array of letters like the one above
foreach(int[] line in word)
{
    //currentShiftIndex is the shift amount to render control from left to right
    int currentShiftIndex = 1;
    foreach(int i in line)
    {
        //set up a control called 'light' for example [im not including that]
        light.Left = currentShiftIndex * 10;
        light.Background = i == 1 ? "Yellow" : "Black"
    }
}

これは純粋に 1 行をレンダリングする例です。間違った構文は無視してください。私は純粋にこのプロセスの例を挙げているだけです。

それが役立つことを願っています。

于 2012-03-28T20:53:18.103 に答える