僕が、「完全な敗北感」を味わったのは、あるプログラムを見たときです。
パソコンでゲームをすると、数字の「テンキー」で操作することがありますよね。いわゆる「十字キー」というやつで、「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/