これにアプローチする方法は、次のように、アルファベットの各文字に対して 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 行をレンダリングする例です。間違った構文は無視してください。私は純粋にこのプロセスの例を挙げているだけです。
それが役立つことを願っています。