この課題は、Arduinoマイクロコントローラーのプログラミングに触発されました。ボード上のさまざまなピンに接続された6つのLEDと6つのボタンがあります。コードでは、各ボタンとLEDにID番号(1〜6)が割り当てられています。ID番号に対応するピン番号(0〜13の範囲)は、switch
ステートメントを使用して検索されます。純粋に娯楽のために、これらのswitch
esを算術/その他の関数で回避して、将来のコードメンテナーを恐ろしくすることができるかどうか疑問に思っていました。
チャレンジ
ID番号(整数)をパラメーターとして受け取り、条件ステートメント(no if
、no switch
およびno ternary)を使用せずに、6個のLEDおよび/または6個のボタンのピン番号(整数)を返す関数を提供します。
LEDの戻り値:
ID Pin
1 3
2 5
3 6
4 9
5 10
6 11
ボタンの戻り値:
ID Pin
1 2
2 4
3 7
4 8
5 12
6 13
ボーナスチャレンジ
LEDまたはボタンのピンが要求されているかどうかを示すID番号(整数)と2番目のパラメーター(任意のタイプ)を受け取り、対応するピン(整数)を返す単一の関数を提供します。
ルール
これはArduino固有の課題ではありません。任意の言語を使用し、必要なことを行います。
編集:steveverrilの提案で、これは今やゴルフの挑戦です。
がんばろう!
(あなたがまだ読んでいる場合:プログラミング規格によって特許的に不条理でarbitrary意的ですが、マッピングはArduino Microのピン配列に基づいています。ピン0および1はシリアル通信用に予約されており、LEDは6つの最小番号のPWM対応ピンに割り当てられています、ボタンは残りのピンに割り当てられます)
1+(1==1)
?