投稿
おちゃめ ochame_nako
質問というかアンケートみたいなものですが、プチコン3号における1画面プログラムのレギュレーション(ルール)作りで悩んでいます。 1.プログラムが編集画面に収まればOK(改行コードは無視)  A 折り返し表示もOK  B 折り返しはダメ  2.改行コードも編集画面に収める  A 折り返しもOK  B 折り返しはダメ  1-A、1-B、2-Bのどれが1画面プログラムとして最も適切だと思いますか?(2-Aは意味がないので却下)
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
なぜこのようなことを書いているかというと当初は1-Aを基準に考えていたのですが、これだと1行プログラムを作ればいいだけなので「1画面ぴったりの文字数にするのが簡単すぎる」というのもあるし、「これは1画面プログラムではない」という意見を見かけたからです。 プチコンmkIIでは編集画面の折り返し機能が無かったため1-Bを基準に作っていました。 mkIIだと1行は最大29文字で24行以内となるため処理の分解、再構築を行いパズルのように組み合わせることで「各行ぴったり29文字×24行にする」という行程を楽しむことができました。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
しかし、プチコン3号ではデフォ設定が折り返しありになっているためオプション設定を変えてまでmkIIの時と同じ基準にするのも疑問に感じています。 そうなると消去法で2-Bとなるのですが、これだと限界まで詰め込んだ感があまりしないのが難点です。 限界まで詰め込むと「1文字の重さ」がどんどん重くなるため実質29文字分も余裕があるため全然限界という感じがしないためです。 何せ1文字分短縮するために一晩悩んだこともあるくらいです。
0そうだね
プレイ済み
返信[3]
親投稿
l-oxygen_k KOKO929292
1-A! あくまで一画面なんだからとりあえず一画面に収まればいいと思う
0そうだね
プレイ済み
返信[4]
親投稿
まげ MAGE_LOVEMARINE
私の制作姿勢は2-Bですね。可能ならコロンさえ使わない気構えで(^^)。リストの見やすさを意識すると、そういう選択になりました。それでもたまに、無理なブッコミをしちゃいましたが(^^;)。
2そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
うえこうさん、KoKoさんへ やはり、「プログラム本体が1画面に収まればOK」の1-Aが普通の人の選択肢なのかもしれませんね。 まげさんへ それはある程度プログラムのリスト短縮を行ってきた中上級者だからこその意見ですね。 2-Bは無難な選択肢ですが、個人的には上記のようにmkIIでは「改行コードが画面内に全く無い」という完璧な詰め込みを目指していたので「画面内に改行コードが29個もある(=29文字も短縮可能に見える)」という状態がどうももどかしい感じがしますが、デフォ設定を変えてまでmkIIと同じレギュレーションに拘るべきかと言われたら微妙なところなんですよね。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
これは100m走のタイムの計測で例えると追い風50mだろうと自分の足で走ればそのタイムが正式タイムとして認められるのかとか、どの部分がゴールに届いた時にゴールと見なされるのかというようなルール作りの部分です。 100m走の正式な計測法については長年掛けて公式ルールが決まったのですが、プチコン3号の1画面プログラムに公式ルールなんてものがあるはずがなく最終的には「制作者の好み」で決めて問題はないと思います。 ただし、自分内でルールが決まってないと限界に挑戦する意味が全くないので自分の考えを固めるために他の方の意見を参考にさせて頂きました。
0そうだね
プレイ済み
返信[7]
親投稿
けい kei0baisoku
自分で1画面プログラムは書かないのであまり参考にならないかも知れませんが……… シンプルにどれがしっくり来るかと聞かれたら、たぶん1Aです。 ただ、コードゴルフ的な観点で、1画面プログラムを競技的なものとしてみなしてルールを考えるなら、2Bが一番美しい………気がします。 改行コードが29個も残る点に関しては、 「プチコン三号の一行は46文字ではない。末尾は必ず改行コードなので、はじめから一行45文字である」 みたいな考え方もできると思います。
0そうだね
プレイ済み
返信[8]
親投稿
ゆうたん yu-tan-sama
2Bかなぁ 誰かが丸写しするのにちょうどいいボリュームにするための1画面プログラムだと思いますし 可能ならマルチステートメントも封印したい
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
けいさんへ 1-Aだとマルチステートメントで記述するだけで容易に1画面にぴったり収まるプログラムが書けてしまうためあまり達成感が得られないんですよね。 その点、2-Bならば難易度的には問題無さそうです。改行コードが残るのは最初は少し気になると思いますが慣れれば問題は無いかもしれませんね。 ただし、プチコン3号では従来のmkIIで考案してきた手法の多くが使えないため新たにプチコン3号ならではのリスト短縮を考える必要がありそうです。 mkIIで最も多用した剰余も「%」の1文字だったのが「MOD」は実質5文字必要になってしまいましたし。(8方向移動も剰余が「%」で済めば剰余で記述するのが最も短くなる)
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
ゆうたんさんへ それは1画面プログラムに対する考え方の違いですね。 私は1画面という制約の中でどれだけのものを詰め込めるかという競技的な側面と単に短いプログラムという側面の2つがあると思います。 初心者には後者の側面で1画面プログラムを勧めていますが、「普通に作るだけならば簡単に作れる」という中上級者には前者の側面で勧めています。 後者の側面であればマルチステートメントの記述はできるだけ避けるべきですよね。 あと両者のどちらであってもMiiverseだと1画面に収まっていれば作品を公開しやすいというメリットがありますね。
1そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
個人的には1-Bと2-Bのどちらでいくか迷っていましたが皆さんのお陰で2-Bにする決意が固まりました。どうもありがとうございました。
0そうだね
プレイ済み
返信[12]
親投稿
まげ MAGE_LOVEMARINE
「1行45文字以内×29行以内で完結する、外部データを用いない、プチコン3号用プログラム」という定義はどうでしょう。略PRINTや略コロンはOKで。私はポリシー的に略コロンは使いませんが(^^)。
1そうだね
プレイ済み
返信[13]
親投稿
ぷちぷち PetitPetit3q
私は1-Bが好きですね。 理由は設定に関わらず、常に1画面に収まるからです。
0そうだね
プレイ済み
返信[14]
親投稿
2-Bですね。 2-Aで1画面プログラムとして、 まとめWikiに投稿したら、 「反則」って言われちゃったので・・・。
0そうだね
プレイ済み
返信[15]
親投稿
「あれは1画面プログラムとして不適切」 とか、他のプログラムを反則扱いして排斥する流れは避けたいところ。 なのでスクショ1枚に収まってさえいれば何でもOKにして、あとは各々こだわりの条件で挑めばいいと思います。 制約をより厳しくして美しさを究めるも良し、制約は最大限緩くする代わりに詰め込みっぷりを究めるも良し。 ちなみに自分がやるとすれば、折り返しあり行末も使い切らなくて良し、1画面に収まってれば何でもありのバーリトゥードルールに惹かれます。 余談として、1画面以外の制約では ・極限まで省サイズ化を図るコードゴルフ ・ダイレクトモードで動くワンライナー(1行プログラム) なんかも面白いですよ、皆さん。
3そうだね
プレイ済み
返信[16]
親投稿
あっとTMW ToMeWelcome
私は初代からのユーザーなのでやっぱり2-Bになっちゃいますね。そもそもパソコンでのソフトウェア開発でもエディタは折り返し機能を使わない(というより個人的な好みで使えない)のでプチコン3号でも統一して折り返しを使わずに書いています。
0そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
まげさんへ 2-Bを端的な言葉で説明すればそのようになりますね。 mkIIでもPRGが1画面で外部ファイルを用いたプログラムは作りましたが、私はそれを「似非1画面プログラム」と呼んでいます(笑) プチコン3号ならば外部ファイルを使わなくても1文字16bitに圧縮を掛けたデータ([×]と表示されるテキスト)を使ったものもそのような扱いにしようと考えています。 うえこうさんへ 自分内でルールを決めて作るということに意味があるのでそれが良いと思ったのならばそれでいろいろ作ってみましょう。
0そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
ぷちぷちさんへ つまり、mkIIと同じ仕様ということですね。 私もこれが一番好きなのですが、デフォ設定を変えないと改行コードを画面外に追いやることができないのが難点です。 Newあっキーさんへ どこかで1-Aに対する否定意見を見たと思ったらまとめWikiでしたか。 個人的には1-Aでも全く問題はないと思うのですが、簡単すぎて作っていて面白くない(制約が少なすぎる)というのがネックに感じました。
0そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
コア/co.aさんへ 全くその通りですね。 どれが正解でどれが間違いというものではありません。(2-Aは「制約」という面で1-Aとほぼ変わらないため却下しただけであって2-Aがダメというわけでもない) 今回は「私が作る1画面プログラムの制約」について考えているだけなので皆さんは各自で自分に合った方法を用いてもらえれば良いと思います。 もっとも、私が作るものと同一条件で作ってみたいという人がいればそれは歓迎したいです。 コードゴルフについては超有名課題であるFizzBuzzで本日開催してみました。 ダイレクトモード1行プログラムも制約がきついため楽しめそうですね。
1そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
あっとTMWさんへ 折り返し機能は1行が長くなるときは便利なので小林社長に提案して実現してもらったのですが、実際のところそこまで1行を長くする時点で可読性の高いコードとは言い難いかもしれませんね。 実際の狙いは「折り返し表示機能によって1画面プログラムのハードルが下がり1画面プログラムを作る人が増える」ということなのですが、Miiverseの画像投稿機能によって1画面プログラムの投稿は多いものの折り返し機能の恩恵は現時点ではほとんど無さそうですね。
1そうだね
プレイ済み
返信[21]
親投稿
20年以上昔のMSXFANというパソコン雑誌で、文字コードで乱数の種を指定し面を乱数で生成することで、100文字で100面ぶんのデータを持たせた1画面パズルゲーム…なんてのに度肝を抜かれた記憶があります。 そういう可能性が潰えるのは悲しいので、「[×]と表示されるテキスト」に関してはリソースが1画面の中で完結している訳だし似非とまで糾弾するのはキツいかなあ…と。 スクショだけでは他の人が入力できない問題はあるので、コンテストでは禁止するレギュレーションとするのも良いとは思うのですが。
0そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
コア/co.aさんへ 私自身もポケコンではそのように1文字1面分のデータというゲームも作ったし、プチコンmkIIでも288バイト分のギターコードを96バイトに圧縮した1画面プログラム「PETIT GUITER」を作りましたので1文字で16bit分使えるというのはリスト短縮にすごく有効なのは分かっているつもりです。 しかしながら「リストを見てそれを入力すればプログラムを実行できる」というのが1画面プログラムの醍醐味だと感じているため判別の付かない[×]文字を使ったプログラムは「私が作る1画面プログラムの基本仕様にする」というのが微妙に感じただけです。 ただし、「似非」と差別化するほどのものでもないのも確かなので「似非」と「基本」レギュレーションの中間レギュレーションを設置することにしましょう。 あくまで、これは私が作る1画面プログラムのレギュレーションなのですが。
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
私が作る1画面プログラムのレギュレーション名称をこんな感じにしてみました。 basic ・・・ 2-B準拠、[×]文字を使用しないレギュレーション advance ・・・ 1-A、B、2-A準拠、もしくは2-Bで[×]文字を使用したレギュレーション false ・・・ プログラムは1画面に収まっているけど外部データが必要なもの(これは1画面プログラムとは見なさない)
2そうだね
プレイ済み
返信[24]
親投稿
☆Tatsukin★ tatu_kin1192
僕は、1-ABです。 折り返しの意味がわからないので。
0そうだね
プレイ済み
返信[25]
親投稿
☆Tatsukin★ tatu_kin1192
3Dマークがあるところには 文字を入力しないのもルールです。
0そうだね
プレイ済み