投稿
最近脱初心者の方が増えてきて、その人が新しい人に教えているような姿も見えて良いことだなぁ、と思っています。 その時にリストを見たりもしますが、その時に気になることが少しだけあるのでコメントしてみます。(強制ではないですが) 細かく言うと色々ありますが、とりあえず説明書などでは語られないことで普段プログラムをしているならほぼ使っているものにインデント(字下げ)というのがあります。 これはIF〜ENDIFやWHLE〜WEND、FOR〜NEXTなどブロック範囲に適用される命令の時にその範囲がわかるようにインデント(字下げ)する手法です。 字下げは通常の言語はタブ1つ想定(4文字)が多いのですが、決まりがあるわけではなく、とくにプチコンでは横の表示桁数の関係で1文字〜2文字が多いようです。(ちなみに僕は1文字です)
20そうだね
プレイ済み
返信[1]
親投稿
これをやるとやらないとではプログラムの見やすさが格段に変わってくると思うので、出来るだけやった方がいいんじゃないかと思っています。 またこのようなFORやWHILEなどの大きなブロックの前後には適度に空行を入れが方が見やすくなることも多いので、これもオススメです。
0そうだね
プレイ済み
返信[2]
親投稿
もし自分のプログラムをどうしたらいいかわからない人がいたら、ここに公開キーを上げてくれれば、どのように変えたらいいのかをテスト的に試してみたりもしますよ。 (ただし長いプログラムは全て直すのが大変なので一部だけやって例とします)
0そうだね
プレイ済み
返信[3]
親投稿
おかっぺ Japanese_WASABI
@Dさん インデントしてる画面としてない画面があると、もっと嬉しいです。 きゃー、僕、自分でせずにサボるの得意ー (m(__)m)
0そうだね
プレイ済み
返信[4]
親投稿
ゆうたん yu-tan-sama
プチコンにも自動で整形するプログラムとかあると便利かもしれませんねー あたしゃ自分できっちりそろえたがる方なのでその手のツールは使いませんが
1そうだね
プレイ済み
返信[5]
親投稿
>おかっぺさん やっぱりそうですよね〜。僕もそう思ったのですが書いているときに良い例が思いつかなかったので手を抜いて、誰かが公開キーを出してくれたらそれに対しての修正例を一部出せばいいかなと思ったんですが、やっぱり手抜きは微妙なので一応用意します(^^;
1そうだね
プレイ済み
返信[6]
親投稿
>ゆうたんさん 自動整形があるとわかりやすくはあるんですけどね〜。 自動整形まではともかく、オートインデントはあればいいなって思ったことはありますね。IFで改行したら頭に1つスペース入れておいてくれるやつです。
0そうだね
プレイ済み
返信[7]
親投稿
例として前に出した簡易BG読み込みプログラムをわざと見にくくしました。 これがインデントや改行を入れない場合です。
0そうだね
プレイ済み
返信[8]
親投稿
ゆうたん yu-tan-sama
一応オートインデントはありますのよ ただ、字下げとかも含めてほぼ全部勝手にやってくれる賢いタイプじゃなくて 前の行のインデントを引き継ぐだけの簡単なタイプ ないよりはマシですし、変な動作もしづらいので個人的にはこれでいいかなーと …それよりは継続行をですね 長い行を見やすく分けたい病が進行中なのでスマイルブームさん早く…
0そうだね
プレイ済み
返信[9]
親投稿
インデントや適度な改行やスペースを入れるとこうなります。 こっちの方が見やすいでしょ?
2そうだね
プレイ済み
返信[10]
親投稿
おかっぺ Japanese_WASABI
僕も技術者なので手を抜かずに自分の手で出来るようにならないといけませんね。 今回は用意して下さると言うことであまえちゃいます。いつもありがとうございます!!
0そうだね
プレイ済み
返信[11]
親投稿
>ゆうたんさん あー、インデント継続は一応ありますね。まあこれがあれば自分でインデント入れるのも慣れれば気にならなくなりますが。ただちゃんとインデント機能があれば初心者でも入れる場所がわかりやすくなるかなと思った感じでした。(当然ON/OFFオプションや賢いのが前提で) ただそれとは関係ないですが、プチコンはスペース削除はYボタンでやりやすいけど入れるのはスペース(タッチ)なのでまとめて変更するときにちょっとやりづらく感じますね。 >おかっぺさん いえいえ。僕も手抜きをしようとしていたわけなのでお互い様です(^^;
1そうだね
プレイ済み
返信[12]
親投稿
そしてサンプルソースは以前作ったやつを変更するだけという手抜きなのでした…(^^;
0そうだね
プレイ済み
返信[13]
親投稿
トッシー tossy.nin
おかっぺさんのプログラムも、とても見やすいと思いますよ。初心者にも分かりやすくないと改造して遊んでくれないですよね。
0そうだね
プレイ済み
返信[14]
親投稿
>Tossy_トッシーさん そうですね〜。このプログラムを見るととても見やすいと思います。 見やすいというのは人に対してもそうですが、未来の自分に対しても優しいことになるので、ちょっとしたことでわかりやすくなるのであれば面倒くさがらずにやっておいた方が後々のためになると思いますよ〜。
1そうだね
プレイ済み
返信[15]
親投稿
プチコンでスペース1個にしようか悩んだんですが 結局、2個で落ち着いた自分のスクリーンショットです 2個スペースだとこんな感じになります
0そうだね
プレイ済み
返信[16]
親投稿
けい kei0baisoku
プログラミングで一番大切なものはと聞かれたら迷わず「可読性」と答える人間です(・ω・)/ 確かに自動インデントが付いてたら、初めての人も知らず知らずのうちに「IFやFORの中はインデント」が身に付いたかもしれませんね。 インデントする目的やメリットもちゃんと理解する必要はありますけど。
2そうだね
プレイ済み
返信[17]
親投稿
>りゅうまごさん スペースを1つにするか2つにするかは好みですよね〜。 僕も始め迷いましたが、プチコンは桁数が少ないのと基本大文字を使うのでスペース1つでも可読性は悪くないと判断して1つにしてます。 …が、これは本当に好みなので、どちらでもいいと思ってます〜。 >けいさん 僕も基本は可読性ですね。って、それは今までの発言や経緯からもわかりそうですが(^^; ただ一部の定石や例外的に可読性を犠牲にすることはあるとも思ってますけどね。ただ初心者はその辺は気にせずに可読性を重視しておいた方が無難だとも思いますね。
3そうだね
プレイ済み
返信[18]
親投稿
Godot orz_127
インデンともそうですが自分的には、1行に複数のコマンドを技術する際の「:」の省略が気になってます。 前のコマンドが数字で終わっている場合(FOR文等)、「:」を省略して次のコマンドが入力出来るようですが…。 最初の内は、1つのコマンドの固まりをハッキリ理解出来る様に「:」は省略しない方が良いのになと。 インデント、自分の場合、基本的に1行では改行したくないのでプチコン3だと最後の改行を除くと49字なので必然てきにインデントは1つに^^; PCでは1行80桁(としている)なので贅沢にタブは4ですw
2そうだね
プレイ済み
返信[19]
親投稿
おかっぺ Japanese_WASABI
@Tossyさん ありがとうございます。 多くの方に遊んでもらって、可読性は大事だなぁと再認識です。 実は当初はずっとコメントが少なく・・とある しゅんごく優しい方にコメントを頂き、コメントが必要き気が付く事が出来ました。感謝です。 改造して遊んで欲しいゲームPLUSでは、さらに多くの方にインスピレーションを頂いて、何とか完成させる事が出来ました。 言葉にすると足りないけれど、本当に感謝です。
1そうだね
プレイ済み
返信[20]
親投稿
>Godotさん 確かに:(コロン)の省略は気になるというか、普通はやらない方がいいと思いますね〜。例外としては1行プログラムや1画面プログラムなどの特殊用途でどうしても短くしたいときぐらいでしょうかね。 :は可読性の面でもあった方が見やすいと思うし、おっしゃるとおり固まりや区切りを明確に意識するためにもちゃんと書いた方が良いと思います。 ちなみに僕もPCのインデントは4ですね〜。アセンブラの時は8でしたが今では8はほとんど使いません。 >おかっぺさん コメントも大事ですよね。僕はプチコンではどうしてもコメントが少なくなります…。(単に打ち込みが面倒なのでですが) まあ人に改良してもらう事が前提ならコメントを増やすかもしれませんが現時点では最低限になっちゃってますねぇ…。というかどんどん減ってるかもしれません(^^;
2そうだね
プレイ済み
返信[21]
親投稿
そういえば:(コロン)の話題が出たのでついでに。 :(コロン)を使うとマルチステートメントで1行にたくさんのプログラムを書けますが、これも使いすぎて1行に詰め込みすぎない方がいいと思っています。 僕の詰め込み方針(?)としては、その行を日本語で説明したときにひとことで言い表せるかが基準(なので変数の初期化系はまとめることが多い)になってますが、それでも詰め込みすぎには注意してます。 あとFORやIFなどを使う場合でブロックが複数行になる場合は、マルチステートメントで後ろに書くのではなく出来るだけ行頭(インデントはあり)から始めた方がいいとも思っています。(ブロックが複数にならないでその行で終わる場合は例外としてるけど) まあコーディングルールは好みもあって絶対はないのですが、今までまったく意識してなかった人などは参考にしてもらえたらという感じです。
1そうだね
プレイ済み
返信[22]
親投稿
Villit nakahara1226
『:』の話が出たので豆知識。 『;』は「セミコロン」、『*』は「アスタリスク」、『.』は「ピリオド」、『'』は「アポストロフィ」、『^』とか『~』は「カレット」とか「チルダ」とか呼ばれてるそうです。 覚えておいて損はないです。 得もないです。
1そうだね
プレイ済み
返信[23]
親投稿
シュナ S_S_Schneider
イェァさん > 日常では覚えておく必要がないレベルですが IT企業等では 当然のように飛び交う単語なので 得もないわけではないです。 ……おっと 話がそれましたな。 インデントも個人ごとに いろいろとやり方は異なりますが コメントは 個性出ますよねぇ。 見やすいように枠を付けたり 引数と戻り値の説明を記載したり…… 自分のコーディングルールですと ラベルと関数手前に 必ずコメントを記載するようにしています。 (サブルーチンの名称と説明を記載する感じです。) これだけでも 可読性はかなり良くなると思っていますが…… どうでしょうかね。
1そうだね
プレイ済み
返信[24]
親投稿
りょうま R-S1437
でんぺんさん見易い様にするにはどうすれば良いでしょうか?公開キーは「N3EN4JD6」です。出来るだけ見易くしたいので。
0そうだね
プレイ済み
返信[25]
親投稿
>ψεα ~イェァ~さん 読み方は知ってると人と話すときはいいですよね。 てか僕も聞けばわかりますが、アポストロフィーとカレットはすぐに出てこなかったです…(^^; >シュナさん コメントは確かにそうですね〜。関数やサブルーチンの説明をつけておくのはいいでしょうね。 僕はサブルーチンはあまり使わないのでラベルにコメントをすることはあまりないですが関数にはコメントしておいた方がいいとは思いますね。
0そうだね
プレイ済み
返信[26]
親投稿
>りょうまさん とりあえずこのコメントで指摘したインデントを調整したもの(ロジックはいじってない)とロジックも含めて、プログラムとしてもう少し整理した例の2つのプログラムをアップしました。(フォルダにまとめてあります) 公開キーは:K4DVN3CJです。参考にしてみてください。 あまり長く公開しておかないのですぐにダウンロードしてくださいね。
0そうだね
プレイ済み
返信[27]
親投稿
りょうま R-S1437
でんぺんさんありがとうございます。あと、どの様にすれば良いか教えて頂けないでしょうか。
0そうだね
プレイ済み
返信[28]
親投稿
>りょうまさん どのようにすればとはどういうことですか? すいません、ちょっと意味がわからなかったので…。 とりあえずこの投稿で話したインデントについては、アップしたサンプル1を参考にどういう箇所で行っているかを見てもらえたらと思います。(その際の参考はこのスレッドの内容になります) サンプル2についてわからない箇所があったら個別に質問してもらえれば答えますよ。
1そうだね
プレイ済み
返信[29]
親投稿
りょうま R-S1437
わざわざありがとうございます。
0そうだね
プレイ済み
返信[30]
親投稿
いえいえ。 インデントはブロック(ループや関数)の範囲が基本になるので、IF,WHILE,REPEAT,DEFなどが出てきたときに1段字下げして、ENDIF,WEND,UNTIL,END(関数の場合)などが出てきたときに1段戻す、みたいな感じになります。(ただしIFなどでその行で終わる場合は不要です。 という感じですが、がんばってくださいね〜。
1そうだね
プレイ済み
返信[31]
親投稿
補足用です。
0そうだね
プレイ済み
返信[32]
親投稿
せっかくなので改良した部分の一部を出して修正ポイントを説明しますね。ちょっと説明不足かもと思ったので。 まずWHILEのブロックの開始がわかりやすくなるようにその前に空行を入れました。これによって、ここからループが始まるよ、という意図が目立つようになってると思います。 またスティックのためのIFですが、差違がわかりやすくなるように同じ項目を並べるようにしました。また1行で収まりそうなのでブロックにはせずに1行にまとめてしまいました。 これはケースバイケースで仮に1行が長すぎたり1行にすることで見づらくなるようだったら、元のようにENDIFを使ったブロックにしたうえで見やすいように調整します。 WHILEやFORなどのループブロックの時には空行を入れた方が見やすくなると思いますが、IFの間に空行を入れるかどうかは好みと感覚によるところが大きいです。
1そうだね
プレイ済み
返信[33]
親投稿
意味の無いコードがありましたが、後から処理を追加する可能性も考慮してとりあえずコメントアウトしました。ただ最後まで必要ないならちゃんと削除した方がいいです。 BEEPなどの同じ命令の連続した呼び出しやスプライト関連の命令などで、同じスプライト番号の場合は、数字の桁を揃えるなどして見やすくしました。 ソースの見えている範囲としてはそんな感じです。後は適切にインデント(字下げ)を入れることで、処理のブロックがわかりやすくなり見やすくなってると思います。 一応そんな感じを中心に修正した感じでした。参考になれば幸いです。ではでは〜。
2そうだね
プレイ済み
返信[34]
親投稿
りょうま R-S1437
とても分かりやすい説明ありがとうございます。これからゲームなどを作る時に参考にさせて頂きます。
1そうだね
プレイ済み
返信[35]
親投稿
見やすいコードを書くと自分が後から見返したときもわかりやすいですしバグなども見つけやすくなりますからオススメですよ。 とくに自分で書いたコードは、その時は自分も憶えているので多少複雑でも問題ないと感じるかもしれませんが、一週間後とかに見返した時は、まったく別人のコードに感じる事があるぐらいなので、自分のコードでもつねに人が見てもわかりやすいように心がけるというのは大事だと思います。 それでは、がんばってください!
2そうだね
プレイ済み
返信[36]
親投稿
Villit nakahara1226
あと、製作の上での効率を上げるコツは、プログラムにちょくちょくチェックポイントをコメントで入れて、検索から飛べるようにすると便利です。
1そうだね
プレイ済み
返信[37]
親投稿
>ψεα ~イェァ~さん 僕はあまり検索使ってないんですが、確かにそういう工夫をすると便利ですよね〜。 そういえばスクロールしたときとかに、全体の総量に対して今の画面の位置がガイドバー的な感じで画面の右に一時的に表示されるような機能があると、スクロール中の今の位置が把握しやすくていいのになぁ、と思ったりはしましたね。 というか検索もそうですが、あまりソースの移動などに関した便利な機能はないので、簡単にチェックした場所に飛べるブックマーク的な機能(一覧含む)とかあるといいんですけどね。もしくはラベル一覧で飛べるとか。
1そうだね
プレイ済み
返信[38]
親投稿
というか検索は使ってますが、そういうやり方で使ってないという意味でした。さすがに検索は適度には使ってます(^^;
0そうだね
プレイ済み
返信[39]
親投稿
けい kei0baisoku
でんぺんさんの案良いですね(^O^) ソース移動はもっと楽にやりたいですが、自作しようとするとエディタからですよね………(´з`) イェァさんの工夫も面白いですね(^O^) 言われてみるとかなり楽になりそうです。 私は後でやる予定の未実装部分はコメントで「TODO」と残して、その中でも今作ってしまうつもりのところは「BOOK」というコメントを書いてマーキングがわりにしてます。一度中断すると、数時間後でも今どこを作ってたかとか覚えてないので(^^; ちなみにBOOKは「しおり」という意味です。仕事でも同じようにやってます。
0そうだね
プレイ済み
返信[40]
親投稿
シュナ S_S_Schneider
でんぺんさんは あまりサブルーチンは使っていないと 仰っていましたが ラベルは多用していそうですね。 各機能単位で ラベルを記述しておけば 「@」で検索するだけで その機能の頭まで飛べるので これでもチェックポイント代わりには なると思います。 プログラムをきれいに記述すれば 見やすさだけでなく 検索もしやすくなって プログラミングもはかどりますよね。
0そうだね
プレイ済み
返信[41]
親投稿
今更返事(^^; てか既読ってチェックしたときに返事しないとすっかり忘れたりしますよねー…。 >けいさん エディタの機能は高くないので改善してもらえると嬉しいですけどね〜。機能追加やバグ修正のメドがついたら、そういう方面でのバージョンアップもしてくれたりするのだろうかー…。 コメントでTODOとかはPCの統合環境だとよく自動でマーク対象になったりもしますし、そういう機能があってもいいですよね〜。 >シュナさん ラベルも多用しているわけではないんですけどね(^^; ただラベルはDATAのヘッダーにもなってるし、もし自動でマークアップされるんだったらロジックと関係ない場所でもマーク代わりに入れるかもです。 てか@で検索は確かにそうですね。現状では工夫して検索時に引っかけやすくする感じなのかなぁ、ってところですかね〜。
0そうだね
プレイ済み
返信[42]
親投稿
けい kei0baisoku
そう言えば今回の更新で、一部のボタンが英語から日本語になりましたね。これもエディタの改良と言えば改良………なのかな? エディタの機能が多少増えても初心者向けのコンセプトからは外れないとは思いますが、対応されるにしてもやっぱり優先度は低めですよね………(-ω-)
1そうだね
プレイ済み
返信[43]
親投稿
Daisuke 0909daiki09
1ヵ月頑張ってるのに脱初心者出来ない自分…
0そうだね
プレイ済み
返信[44]
親投稿
なかなか上達しなかったりうまくいかないのは辛いと思いますが、諦めずに頑張ってください〜。 ある意味、プログラムは開眼というかある日突然わかるときが来たりします。コツを掴むというか、なんかわかるというか…。これは僕の実体験です。 逆に言うとそれまではなんかよくわからなかったりしなくてもいい苦労ばっかりしますが、諦めずに続ける事が大事だと思います。 僕の時代はネットもなかったので本だけを頼りに(それも本もたくさんないし高いし…)覚えたので実際どのぐらいかかったかわからないですが、ある程度ちゃんと出来るようになるには結構かかっていたかもしれないなぁ、とも思います。 今はネットもあって情報だけは多くて、逆に焦ってしまう部分もあるとも思いますが、めげずに頑張ってください〜。
0そうだね
プレイ済み
返信[45]
親投稿
Daisuke 0909daiki09
ありがとうございます!
0そうだね
プレイ済み