プログラミング得意なやつこれの解説たのむ

未分類
1:なんJゴッドがお送りします2021/09/28(火)  ID:nzUw7wWu0

僕が、「完全な敗北感」を味わったのは、あるプログラムを見たときです。
パソコンでゲームをすると、数字の「テンキー」で操作することがありますよね。いわゆる「十字キー」というやつで、「4」で「左」、「6」で「右」に動かすやつです。
これをプログラムするときに、普通の人は2行のプログラムを書きます。「4を押したら左に移動せよ」「6を押したら右に移動せよ」と、2つの指示をコンピュータに向けて書き込みます。
しかし、天才は違います。
天才は、1行でその指示を与えることができます。
「押した数字から5を引いた分だけ、操作せよ」という1行を書きます。そうすると、その1行だけで「-1」「+1」の移動をプログラミングできてしまうのです。

どういうこと🤔
9押したら4の操作??


2:なんJゴッドがお送りします2021/09/28(火)  ID:q75keWd60

一行だからなんやねん
結局一緒やろ


3:なんJゴッドがお送りします2021/09/28(火)  ID:Uq7HUiOe0

4と6以外押したらあかんやつやん


4:なんJゴッドがお送りします2021/09/28(火)  ID:V3Sd5mgpd

横スクという前提を説明しない無能


11:なんJゴッドがお送りします2021/09/28(火)  ID:nzUw7wWu0

>>4
ああなるほどなぁ
このバカは横スクロール前提で話してたってことか
ドラクエみたいの想像してたから意味わからんかった


5:なんJゴッドがお送りします2021/09/28(火)  ID:BtXx0o4aa

6-5で+1(右に動く)
4-5で-1(左に動く)
こういうことやろ


8:なんJゴッドがお送りします2021/09/28(火)  ID:nzUw7wWu0

>>5
1235789押したらどうなるんや?


6:なんJゴッドがお送りします2021/09/28(火)  ID:QyDtg8hX0

そんなもん現場が求めてなかったら不要やぞ


7:なんJゴッドがお送りします2021/09/28(火)  ID:c4tE9Q9p0

4を押したら5-4=-1で左側(-方向)に1マス戻るってことやろ
6を押した時も同じ


9:なんJゴッドがお送りします2021/09/28(火)  ID:EPzUKIqe0

拡張性を考えたらナンセンスやけどパッと見たら感動するやつ


12:なんJゴッドがお送りします2021/09/28(火)  ID:nzUw7wWu0

https://news.yahoo.co.jp/articles/22a69ef0fc460b2bf3b8736d8656516870a24dae
ちなみにソースや


16:なんJゴッドがお送りします2021/09/28(火)  ID:iaiwUHxK0

>>12
ブラクラ


41:なんJゴッドがお送りします2021/09/28(火)  ID:XpM8djAX0

>>12
これ昨日の記事だけどもっと前に同じこと言ってたな


15:なんJゴッドがお送りします2021/09/28(火)  ID:zQlsSfo+0

極限にまで性能を突き詰めなければいけない小規模な個人プログラムと
組織的な大規模開発とはまた違うことも学ぼう
何千人も関わってる開発だと設計段階で修正される


17:なんJゴッドがお送りします2021/09/28(火)  ID:yjfK1RKX0

キーコンフィグとか面倒くさそう


20:なんJゴッドがお送りします2021/09/28(火)  ID:EtBeRERw0

キーが離されたことを検知できなくて、入力したら移動しっぱなし
止まるには停止用のキーを押さなければならない機種もあった(遠い目



21:なんJゴッドがお送りします2021/09/28(火)  ID:VSfBoLyxd

4〜6以外の入力弾くためにコード増えるやん
頭悪そう


22:なんJゴッドがお送りします2021/09/28(火)  ID:ADig8+R9a

例外操作を一切考慮しないクソコードやんけ


24:なんJゴッドがお送りします2021/09/28(火)  ID:/jirQxzT0

糞可読性の悪そうなコードになりそう


25:なんJゴッドがお送りします2021/09/28(火)  ID:+EjVq5ZO0

これ批判してるやつってプログラム組んだことなさそう


27:なんJゴッドがお送りします2021/09/28(火)  ID:9GehAObJM

縦方向はジャンプボタン別であるからいらんのやろ


28:なんJゴッドがお送りします2021/09/28(火)  ID:RxnAxlBma

行数でお金取るんちゃうんか
減らしちゃ駄目やろ


30:なんJゴッドがお送りします2021/09/28(火)  ID:EtBeRERw0

8bitマイコンなBASICを前提とした話に思える
あの頃は条件分岐減らしてステップ数を少なくしないと
リアルタイムなゲームは目に見える形で速度低下してたから
いくらでもCPU資源を無駄遣いしていい今の時代しか知らない子には、ちょっと何言ってるかわからないかも


35:なんJゴッドがお送りします2021/09/28(火)  ID:vvyrewyYM

>>30
GBとかファミコンの限られた環境でゲーム作ってたクリエイターは凄いと思う


36:なんJゴッドがお送りします2021/09/28(火)  ID:yjfK1RKX0

>>30
でもこれ9押したら4倍に速さで右に行くんちゃうか?


31:なんJゴッドがお送りします2021/09/28(火)  ID:ZPUa/JGUM

ファミコンみたいなクソ制限あるならわかるけど今は可読性重視だろ


32:なんJゴッドがお送りします2021/09/28(火)  ID:PUsRiR310

3項演算子で処理分けるってことかと思ったが、x軸の座表に入力値-5を加算してくってことか


33:なんJゴッドがお送りします2021/09/28(火)  ID:EtBeRERw0

天才というか変態はコメント行に可読文字をならべて機械語として実行することを企画する


34:なんJゴッドがお送りします2021/09/28(火)  ID:SCghr6nk0

組込とかならこの発想現役よな
Web界隈じゃこんなことしてたらあかんやろうけど


37:なんJゴッドがお送りします2021/09/28(火)  ID:EtBeRERw0

こういう感じのアレ、みたいなたとえ話なんだと思うよ
実際そういうのに近いステップの削り方ってのは、あった


38:なんJゴッドがお送りします2021/09/28(火)  ID:XpM8djAX0

これひろゆきのやつか



39:なんJゴッドがお送りします2021/09/28(火)  ID:vrPzMe4P0

一応剰余で(x-5)%4%3%2みたいにすれば1〜9で4,6だけ-1,1にできそう


44:なんJゴッドがお送りします2021/09/28(火)  ID:+K4L+TOW0

>>39
掛け算割り算するくらいなら単純な判定の方が機械語で比較して短くならんか?


49:なんJゴッドがお送りします2021/09/28(火)  ID:Uq7HUiOe0

>>39
コードレビュー時になんやこれってなるからやめろ


40:なんJゴッドがお送りします2021/09/28(火)  ID:vrPzMe4P0

どうや?


43:なんJゴッドがお送りします2021/09/28(火)  ID:SwHjhWos0

分かりにくいコード書くな馬鹿って言われるだけでは


45:なんJゴッドがお送りします2021/09/28(火)  ID:gl10K+Vp0

1行で書くだけなら三項演算子でええわな


46:なんJゴッドがお送りします2021/09/28(火)  ID:SwHjhWos0

実際のプログラミングに必要な技能ってこんなパズル的発想ではないよな
競技プログラミングやっとけって話


67:なんJゴッドがお送りします2021/09/28(火)  ID:SCghr6nk0

>>46
少なくとも与えられた仕事をマシマシとこなす能力の方が重要やな
今やと0から組み込みデバイス作るならこの話は有用やけどそれ以外はただのイキリ


50:なんJゴッドがお送りします2021/09/28(火)  ID:C9A0fhuo0

こんなもん初歩のアルゴリズムやろ
西暦を昭和になおすやつの応用でしかない


51:なんJゴッドがお送りします2021/09/28(火)  ID:SwHjhWos0

プログラマーに必要な能力ってフレームワークを使いこなす能力やろ


52:なんJゴッドがお送りします2021/09/28(火)  ID:3U3owaoY0

注釈ないと可読性下がるゴミやん


53:なんJゴッドがお送りします2021/09/28(火)  ID:51ad/bkJ0

昔はコードが短いほど優秀とされてたわな
コードが長いほど負荷がかかり遅延が発生する環境やったんやろ


54:なんJゴッドがお送りします2021/09/28(火)  ID:TrK+c6210

そんくらい文系プログラマのワイでもやるぞ
a = 0
a = abs(a-1)
で0と1のスイッチ作るとか


56:なんJゴッドがお送りします2021/09/28(火)  ID:gl10K+Vp0

>>54
0,1ならa^=1でええで


58:なんJゴッドがお送りします2021/09/28(火)  ID:9GehAObJM

>>54
0と1ならa=!aでええやろ



55:なんJゴッドがお送りします2021/09/28(火)  ID:FoTxyXyK0

可読性なんて所詮無能がミスしないための要素でしかない


57:なんJゴッドがお送りします2021/09/28(火)  ID:PpVkIF9v0

これ聞いたとき感激したけど悪い例なんか
可読性が大事なんやな


59:なんJゴッドがお送りします2021/09/28(火)  ID:9GehAObJM

>>57
似たようなのはよくあるし
場合によっちゃ可読性もあがるからなんとも


60:なんJゴッドがお送りします2021/09/28(火)  ID:ybRUsMJi0

if文知らないひろゆきを馬鹿にするのやめろ


61:なんJゴッドがお送りします2021/09/28(火)  ID:vHGv3+kk0

普通キーコードで入力されるから数字がそのまま入力されへんやろ


65:なんJゴッドがお送りします2021/09/28(火)  ID:sxHspqef0

>>61
たしかに


69:なんJゴッドがお送りします2021/09/28(火)  ID:9GehAObJM

>>61
キーコードも大抵数字順に並んでるから引き算できるやろ
5のキーコード引けばええ


62:なんJゴッドがお送りします2021/09/28(火)  ID:wdtVGvby0

よほど冗長にならない限り分かりやすい記述のがええ


63:なんJゴッドがお送りします2021/09/28(火)  ID:EtBeRERw0

可読性悪いと大体Dr.Dに怒られたので
当時でもそういう視点はあったともいえる


64:なんJゴッドがお送りします2021/09/28(火)  ID:L8wVvTOD0

思いついておっとなるけど可読性気にして結局戻すやつ


68:なんJゴッドがお送りします2021/09/28(火)  ID:MT73pQVnM

それ分かる奴からしたらクソコードやろ
普通は多少冗長でもコメントアウトしなくても分かるようなコードで記述


70:なんJゴッドがお送りします2021/09/28(火)  ID:C2hkLqtP0

今回はたまたま成立しただけやから可読性低いしあまり美しくないわ
操作キー1と4だったらどうするねん


74:なんJゴッドがお送りします2021/09/28(火)  ID:C2hkLqtP0

>>70
2倍して5引いて3で割ったらいけたわ
まあコードゴルフするならええんちゃうん


72:なんJゴッドがお送りします2021/09/28(火)  ID:SCghr6nk0

コメントアウトの内容をローマ字で書くなよ
コンボイの謎みたいになっとるぞ


73:なんJゴッドがお送りします2021/09/28(火)  ID:Uq7HUiOe0

コメントで苦肉の策とだけ書いてあるコード思い出すわ


76:なんJゴッドがお送りします2021/09/28(火)  ID:WcBVXFli0

大学の授業で課題として出したら1人はそう書くやろ
天才のレベル低すぎや


77:なんJゴッドがお送りします2021/09/28(火)  ID:xj6prm05a

よくわからんけどその1行を減らすことに何か意味あんの?
他人がコード見たときにイキれるから?


79:なんJゴッドがお送りします2021/09/28(火)  ID:POfP0FJv0

N88BASICとかで自機が横しか動かない
インベーダーもどきみたいなのやろなあ


81:なんJゴッドがお送りします2021/09/28(火)  ID:sxHspqef0

>>79
インベーダーってy軸移動あったか?


80:なんJゴッドがお送りします2021/09/28(火)  ID:SwHjhWos0

てか今時組み込み以外でそういう脳みそって使うんか?
ライブラリあるからそれ使うだけちゃうんか


84:なんJゴッドがお送りします2021/09/28(火)  ID:fgQb88Eja

短くしたら可読性は下がるからゴミ




元スレ:https://swallow.5ch.net/test/read.cgi/livejupiter/1632768060/
未分類