プログラミング詳しくないんだけど詳しい人来て、ひろゆきの言ってる事がわかんない
■ このスレッドは過去ログ倉庫に格納されています
ひろゆきの小学生の頃の話な
僕が、「完全な敗北感」を味わったのは、あるプログラムを見たときです。
パソコンでゲームをすると、数字の「テンキー」で操作することがありますよね。いわゆる「十字キー」というやつで、「4」で「左」、「6」で「右」に動かすやつです。
これをプログラムするときに、普通の人は2行のプログラムを書きます。「4を押したら左に移動せよ」「6を押したら右に移動せよ」と、2つの指示をコンピュータに向けて書き込みます。
しかし、天才は違います。
天才は、1行でその指示を与えることができます。
「押した数字から5を引いた分だけ、操作せよ」という1行を書きます。そうすると、その1行だけで「-1」「+1」の移動をプログラミングできてしまうのです。
それを知ったときに、「うわーそんなこと絶対に思い浮かばないよ」と思いました。
これって
原点をX軸の-5 と考える
Xが4だったら-1
Xが6だったら+1
2歩右へ進みたければ6を2回ではなくテンキー7を叩く
3歩左へ進みたければ4を3回ではなくテンキー2を叩く
って事?違う? 長いな
テンキー操作のゲームで4押なら−1、6押なら+1で左右移動するコードを書いてたら、ある人が入力数−5でコード一行で書いていたって話なんだが 二回たたくであってるだろ
要は複数の命令文を一行にまとめた発想がすごいって話 原点とかじゃない
入力値そのまま受け取って-5したら分岐が減ってスマートって話 >>1みたいな疑問出るぐらいには穴とかありそう
マリオとかカービィみたいな左右にしか移動しないゲームにおいて6を押せば現座標に+1をして4を押せば現座標に-1をすることで横移動を実現してるんだろ
でもそれって4と6以外のキー打たれた場合の処理書かないとダメじゃね ・4を押したら-1を出力
・6を押したら+1を出力
って書いてたプログラムを
・押した数値を-5した数値を出力
ってまとめたやつ見て「天才だな」って思った
というだけの話だな 最近はステップ数より可読性が重要だから今ではクソコード扱い >>4
4入力されたら-1動いてね
6入力されたら+1動いてね
って文が
入力された数字から5引いた分だけ動いてね
ってこと? 上下の事を考えるなよ
左右だけだぞ
スーパーマリオブラザーズをイメージしろ
4 5 6
のキーがあって
横軸のx軸があるんだ
4で左へ(x-1)
6で右へ(x+1)
ってプログラムがあったんだ
それを
入力値から5を引いた数値動けってプログラム
入力値-5をするプログラムにしたんだ
4-5=-1
6-5=+1
上の命令と同じ結果が出てるだろう? 多分どうせキーコード分だけ引き算するからついでに5引いたら楽だなって思っただけじゃないかな じゃんけんゲーム書かせると
バカはグーチョキパーを書く
アホは判定部でifを連打する 結局のところ4と6以外の入力は弾かないといけないわけで行数的に大してアドバンテージはない たったこれだけのことで「天才は違う」は盛りすぎでは?
書いてる奴が相当なアホでない限り >>18
いや、昔は画像一枚の容量でゲーム作るようだったから
少しでも小さく出来たらそれだけボリュームあるゲームが作れたんだ >>14
そうなったら7とか3って押して良いの?7押したら+2移動、3押したら-2移動できる?
それとも-5させる事で文が簡潔に書けるよ~って話? 昔の言語は知らないけど、キーが押されたらイベントが発生して、押されたキーの情報が引数としてイベントハンドラに渡されるんじゃね?
キーの情報を整数型なりに変換する作業が必要になりそう >>21
7とか3は押さない前提だね
簡略化したよってことだ >>21
7とか3とか他のキーはこの話の対象外
つまりまず4と6を入力してるかどうかを検知してそのあと>>1の話に移行する
つまり行数はほぼ変わらない
ひろゆきの頭は相当悪い
全くプログラミングできないと予想される 4と6は数字として認識されてるの?
それともただのキーとして認識されてるの?
移動キーと言えばWASDかスティックしかイメージできないから数字だとキーコンフィグ使ってボタン入れ替えちゃったらどうなるんだろ switch(a)(
case 4:
x--;break;
case 6:
x++;break;
)
ってプログラムが
x=x+(a-5);
になりました
って話 >>26
下の方だとaに他の数字が入るから上下で内容が異なる
下の方はif文か何かで囲う必要がある >>23
>>24
なるほどね!他の数字は押さない前提ね
>>26
やっとわかった!それなら一行で済むね
ありがとう!! 正直ひろゆきがオブジェクト指向の説明をしている動画を観てから
ひろゆきが2ch作ったことすら疑ってる >>30
確かにswitch文だと他の要素弾いてるもんな
まぁ、発想の話だし>>1に何が言いたかったのかを理解して貰うのが先だろう そもそも昭和の小学生はプログラムとかやらないよ
昔からオタクだったんだな >>32
つくった…?
あめぞうパクって運営してただけなのかと思ってたが 一行だと論理式の方が凄いと思ったわ。
昔のBASICだと真は-1だったと思うから、
>>26の例だと
x=x+(a=4)+(a=6)
で書けるはず。
4と6以外の入力も無視できる。 >>38
x=x+(a=4)-(a=6)の誤り。偽は0だったはず。 ■ このスレッドは過去ログ倉庫に格納されています