コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
こういち ◆.Id/aHiU36hu
2020/9/2 12:48
情報交換
影響を受けたプログラマー、コードの自分ルールなど
連続投稿すみません。

影響を受けたプログラマーって居ますか?
例えば、○○さんのコードは奇麗なので真似してるとか。
居なければ、コード書くときに気を付けていることや自分ルールなどでも。

コメント

アバター
でんぺん 2020/9/2 19:32 ◆HfSy5ayxtyTa
そういえば僕もREPEATよりWHILEを使うことが多くてWHILEで実現できない時、またはREPEATの時が明らかにわかりやすい時のみREPEATを使う場合が多いです。

無限ループでもWHILEを使うことが多いですが、WHILEのメリットとしてはループに入る瞬間に無限ループだとわかるところですね。REPEATの場合はループの最後までいって条件を確認する段階までいかないと無限ループとは判断できないですからね。

ただREPEATの方が処理速度は早いんじゃないかなとは思うんですが、まあその辺は使いやすさで臨機応変にって感じです。もし処理速度を優先するようなときはREPEATにするかもしれません。
アバター
オワたず 2020/9/2 20:15 ◆w7BXxYlkW2NJ
私もwhile派ですね
最初にループ処理を教えてもらった時に教えてくれた人がそれを使っていたからずっと使い続けてるってだけなんですけど()
アバター
キルル2 2020/9/2 20:33 ◆rGE712Ruejv7
自分の場合はサンプル以上の規模のゲームのスタイルを見たりして覚えました
多分ねこはちさんとか、メイドの伝説の作者さんや、MGウッディーさんとかですね
・インデントはする
・必ずvarを書く
のルールでやってます
最初はプログラムがよく分からず、動くだけの何かを作るので精一杯だった頃と比べると、結構変わりました

WHILEとREPEATだったら後者派です
プチコン3号ではREPEATのほうが速いという結果が出てるんですよ
4は分かりませんが
アバター
Na 2020/9/2 21:29 ◆QoELVrBXBQCI
CやPyてょんの影響でREPEATよりWHILEをよく使います。
ゲームのメインループ等、重要なところはあえてGOTOでやることが多いです。
@MAINLOOP

GOTO @MAINLOOP
と書いてあればどこからどこまでがメインなのかが一目でわかるからです。
といっても自分のプログラム見返したらルールと言えるほど守ってなさそうな感じ

サブルーチンはどこに書いたかすぐわかるように、基本使う場所の近くに置いてしまいます。
ローカル変数や引数が要らないときは、DEFよりもスコープを気にする必要のないGOSUBを若干よく使う気がします
(DEFを使うと、グローバル変数のつもりで書いたのに呼び出すより前の位置だったのでローカルになっていたという例があって)
グローバル変数はたいてい定義しないです。

あと最近はmkIIでも配列を角括弧で書きます。

影響を受けたプログラマー...☆TAKA☆さんのリズミカルおもちつきSPを意識してることが多い気がします。
アバター
高原のな 2020/9/2 23:27 ◆bY8RViwvoODw
◆嫌いなものだけれど、やってしまいがちなこと
必然性のないGOTO、ネストが深いループから連鎖脱出、一貫性のない省略名称変数
◆絶対にやらないこと
REPEAT(?)内でCONTINUE(どこに飛ぶかがなんか直感的じゃないので)
◆プチコンでやっていること
OPTION STRICT、OPTION DEFINT、変数はVAR・配列はDIM、インデント

『リーダブルコード』という本がわたしの私的コーディング規則の礎になっていますが、プチコンではあまりきれいにコードが書けてない……
必然性のあるgoto的ジャンプは避けるより使ったほうが読みやすく直感的で良いコードだと思っているので、必要ならば躊躇なく使います(でも、設計が悪いために避けられるものが避けられていない可能性は…… 考えたくないです)。

REPEATを避けがちでほとんど使ってないです。絶対REPEATのほうが良いコードでもWHILE使うのですごく汚いなあと思いながら直したことがない

SatoshiMcCloudさんが書いている形式がゲームプログラミングという観点からはわたしの理想に近いのですが、そのようなコードを書いたことがないという事実だけがそこに存在しています(状態の取り扱いに慣れていないだけです)
アバター
こういち 2020/9/3 0:06 ◆.Id/aHiU36hu
☆Tatsukin★さん
でんぺんさん

なるほど。確かにWHILEは最初に終了条件が付くので直感的で分かりやすい。
アバター
SatoshiMcCloud 2020/9/3 0:08 ◆Z1qfV11i63Jr
『リーダブルコード』は自分も軽く読みました。
変数名の与え方のヒント(役割とか自制とか)はその通りだと思いました。が、プチコンで実践するとなると…プチコンって長い変数名は編集しにくいんですよね。3号だとソフトウェアキーボード限定だし、エディタは全角文字で表示=横に収まる文字数が少ない、入力補完に変数名は出てこないし…。
アバター
こういち 2020/9/3 0:14 ◆.Id/aHiU36hu
オワたずさん
最初に教わった人の影響。なんかエモいですね。ボクもある意味最初に教わった人のコードです。
While派結構多い。

Naさん
Cやぴぃちょん。よく使ってます。
確かにぴぃちょんだとrepeatにあたる文がないので、whileの方が馴染みあるかも。
そしてどちらもforが強い。
サブルーチンを近くに置くって初めて聞いた。なんとなく合理的に見える。
アバター
こういち 2020/9/3 0:19 ◆.Id/aHiU36hu
SatoshiMcCloudさん
なにこの良本。
C++ってことはDirectXかな?
欲しい本がまた増えました。

高原のなさん
リーダブルコード。有名ですね。ボクは読んだことないです。

せっかくなのでボクも本を紹介すると、蟻本なんかは非常に良いコードが載っていてまねする価値はあると思います。
アバター
高原のな 2020/9/3 19:41 ◆bY8RViwvoODw
理にかなったコーディング規則を設けると、ストレス少なく読み書きしやすいコードが書けて良いのですが、いかんせんプチコンだと長い名称を使いづらい(必要に応じてPCで変数表を作ったりもします)

サブルーチンは昔から意味もなく後ろに書いてしまいがちでした。たしかに前に書く方が良さそうですね
プチコン3号でのユーザー定義命令機能実装に泣くほど喜んだのもあってか、また他の言語に慣れたのもあり、ほとんどラベルに飛ぶ系のことをしなくなりました。必要なだけ命令や関数を定義して、機能の分散に努めるようにしています
アバター
こういち 2020/9/4 9:05 ◆.Id/aHiU36hu
チゲさん
そういうルール好き。そしてその手のルール、なんでもありなので破りがち。

キルル2さん
実際のゲームのコードで覚えるスタイル。なかなかハード。
アバター
こういち 2020/9/4 9:10 ◆.Id/aHiU36hu
takkunplayさん
プチコンの鑑のようなスタイルですね。

高原のなさん
>たしかに前に書く方が良さそうですね<
これ。状況によって変わってきて、上からじっくり読むときは確かに前から書く方が読みやすいんですけど、さっと読みたい場合はメインルーチンまでスクロールしなきゃいけないので、厄介。
アバター
あんちもん 2020/9/4 9:25 ◆8qCJSJ1bKTIQ
白文字になって見にくいというか目立たなくなるのでBUTTON関数は変数に代入せずに直に使ってました。
自分でコード書く分には慣れたけど、他人のコード読むときに白文字の自作命令とか関数(しかも名前が長い)がてんこもりなのはちょっと苦手。
アバター
でんぺん 2020/9/4 11:38 ◆HfSy5ayxtyTa
そういえばプチコンの場合は変数名に独自ルールを採用していたりしましたね。とくにプチコンは長い変数名が辛いので…。

ループ変数で、I, J, Kあたりを使うのは他の言語でもよくありますが、それに加えてプチコンの場合はBをB0,B1などB0=BUTTON(0), B1=BUTTON(1)のようなボタン用変数としてよく使っていました。
アバター
さすらいの名無し 2020/9/4 12:40 ◆LWMA5UzCJb3e
自分もWHILE派ですが、ボタンで次へ進むような処理(ループ内に何もなし)は
REPEAT
UNTIL BUTTON(2)
って感じにREPEATを使っています。

影響を受けたのは☆TAKA☆さんですね。

CとかPyてょんとかぴぃちょんとかC++とかはよく知りませんが、Pythonでは普通whileなので、WHILEのほうが馴染みがあります。

あとサブルーチンは前に書くとRETURNでエラーが出るんですよね…。だからなるべく最後(DEFよりは前)に書いています。
アバター
こういち 2020/9/9 15:22 ◆.Id/aHiU36hu
あんちもんさん
白文字は確かに辛い。プチコンは変数とサブルーチンの区別がし辛いので特に…(なおエディタを真っ白に設定してる人)


でんぺんさん
プチコンは一行が短めなので長い変数名辛いですよね。
関係ないですが、ループ変数でi,j,kの次にs,t,r,a使ってる人が居るという話聞いて「天才かよ」と思いました。(ダイクストラさんのスペルね)


さすらいの名無しさん
REPEAT。ボタンとの相性良いですよね。
ぴぃちょんにdo〜whileないの衝撃。
REURNでエラー出るので後ろに書くのは合理的な気がする。(ボクはサブルーチン全部DEF〜ENDで書くので容赦なく前に書きますが)
アバター
ツララ 2020/9/9 16:53 ◆ArUdBYOYME1V
プチコン買って色々覚える時に最初に参考にしたのがおちゃめさんのサイトだったので
ほぼおちゃめさんのルール準拠派。
まず目的があって手段というかルールはその都度整えればいいや的な。
ルール固定しちゃうと縛られるし縛られるの嫌だしいちいち説明するのも苦では無いので。
他の人にコード読んでもらうのが目的なら相手の癖や使うルールを覚えてその人が読み易いように改変すれば良いやって思ってますし。

あと時間があれば冒頭部分にこれは何をどうしたいプログラムなのかとか
プログラム中に使ってる変数の説明をコメントで書いちゃいますね。
間を置いて弄ることになった場合に自分でも読めるように。
何をどうしたいのかさえ分かればその時その時で自分が知りうる最適な方法で組み直せばいいだけでスシ
もう必要が無くなった場合に削除するのも躊躇なくなりま寿司。
アバター
高原のな 2020/9/9 21:24 ◆bY8RViwvoODw
「3日も経てば他人のコード」なんて格言があるのを思い出します
(ほんとうにたったの数日で自分の書いたコードの意図を忘れてしまうもので、あのときコメントしていればなぁと思うことがしばしば)

ダイクストラさんのスペルで選ぶ、すき
アバター
おちゃめ 2020/12/26 13:19 ◆jH1opV6FnGyx
私は完全独学でプログラミングを習得したため基本的には独自ルールで記述しています。
私が初めて買ったのがメモリが1486バイトしかなくプチコン3号と比べても数万倍遅い(FOR〜NEXTの1000回ループでも42秒の遅さ)ポケコンだったので短く速い記述が自然に身に付きました。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -