ペインティングプロセッサのプログラミング:グリッド状のキャンバスにXを描く方法

概要

本記事では、与えられた正方形のグリッド状キャンバスの各ポートレートにXを描くためのペインティングプロセッサのプログラム方法について説明します。課題は、プログラミングプロセッサの制限を克服しながら、どの正方形のグリッドにも対応する指示を作成することにあります。以下の2つのアプローチについて説明します:タイプライターアプローチとスパイラルパターンアプローチ。両方の方法には利点があり、問題を解決することができます。

目次

  • 環境
  • 課題
  • 課題の解決策のアプローチ
    • タイプライターアプローチ
    • スパイラルパターンアプローチ

    イントロダクション

    エシックとヘッジは、パワーノードを探して森に到着した冒険家です。彼らは、人々が情熱を追求し、充実した人生を送るために樹上のサンクチュアリを設立したオクタヴィに出会います。しかし、人々はやがて目的を忘れ、芸術や工芸を放棄しました。タワーにある2番目のアーティファクトにアクセスするためには、ボットの駐屯地と底なしの渓谷に守られたタワーで、チームは注意をそらす必要があります。オクタヴィは、人々を扇動して彼らのポートレートを損壊し、アーティファクトにアクセスするための転換作戦を提案します。課題は、与えられた正方形のグリッド状キャンバスの各ポートレートにXを描くことです。

    課題

    ポートレートの絵画は、奇数のピクセルが横に並んださまざまなサイズの正方形です。ヘルパーボットが完成したポートレートを拾い上げ、人々が鑑賞できる公共の場所に掛けます。ヘッジは、各絵画にXを描いて損壊する必要がありますが、ペインティングプロセッサには特定の指示が必要です。ヘッジは、1つのピクセルを埋め、キャンバス上を前進して90度回転することができますが、斜めに移動することはできません。課題は、どの正方形のグリッドにも対応する指示を作成することです。

    課題の解決策のアプローチ

    タイプライターアプローチ

    各ポートレートにXを描くために、ヘッジはタイプライターのように1行ずつ進むことができます。たとえば、絵画が9×9グリッドの場合、ヘッジは、スキップ、描画、スキップのパターンを偶数行を通して続けます。奇数行では、ヘッジは、スキップ、描画、スキップ、描画のパターンを続けます。このパターンは、1つの描かれたピクセルがある中央行でも機能します。その後、すべてのパターンが反転します。左側ではスキップするピクセル数が1つずつ減り、中央では2つずつ増えます。ヘッジにループの一連の指示を行うよう指示すると、これは機能しますが、多くの論理が必要で、中央で何をするか、プロセスを反転する時期、およびそれを反転する方法を知っている必要があります。

    スパイラルパターンアプローチ

    重要な考え方は、グリッドを、各角に描かれたピクセルとその間に変更されていないピクセルを持つ一連の同心の正方形として見ることです。最も外側の正方形を描くために、ヘッジは角から始めてそのピクセルを描きます。絵画の長さがnである場合、ヘッジはn-1スペース前進し、別のピクセルを描いて右に曲がります。ヘッジは、正方形全体が描かれるまで、このプロセスを繰り返します。その後、ヘッジは1つ少ないスペースを移動し、右に曲がって、前の正方形よりn-2ピクセル小さい次の正方形に対してプロセスを繰り返します。このスパイラルパターンは、ループと、ヘッジが飛行する距離を追跡する変数を使用して、中心まで続きます。

    結論

    結論として、どちらのアプローチも、与えられた正方形のグリッド状キャンバスの各ポートレートにXを描くという課題を解決することができます。タイプライターアプローチは、異なるパターン構造に適応するための論理と知識が必要ですが、スパイラルパターンアプローチはより一般的で、開始から終了まで同じ論理を使用します。どちらを選ぶかは、ユーザーの好みや書かれた指示の価値によって異なります。エシック、ヘッジ、オクタヴィは、このペインティングプロセッサをプログラムするための知識を持ち、2番目のアーティファクトを取り戻す冒険を続けることができます。

上部へスクロール