Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132154
次のページ(過去)
返信[19]
親投稿
おちゃめ ochame_nako
コア/co.aさんへ 全くその通りですね。 どれが正解でどれが間違いというものではありません。(2-Aは「制約」という面で1-Aとほぼ変わらないため却下しただけであって2-Aがダメというわけでもない) 今回は「私が作る1画面プログラムの制約」について考えているだけなので皆さんは各自で自分に合った方法を用いてもらえれば良いと思います。 もっとも、私が作るものと同一条件で作ってみたいという人がいればそれは歓迎したいです。 コードゴルフについては超有名課題であるFizzBuzzで本日開催してみました。 ダイレクトモード1行プログラムも制約がきついため楽しめそうですね。
1そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
ぷちぷちさんへ つまり、mkIIと同じ仕様ということですね。 私もこれが一番好きなのですが、デフォ設定を変えないと改行コードを画面外に追いやることができないのが難点です。 Newあっキーさんへ どこかで1-Aに対する否定意見を見たと思ったらまとめWikiでしたか。 個人的には1-Aでも全く問題はないと思うのですが、簡単すぎて作っていて面白くない(制約が少なすぎる)というのがネックに感じました。
0そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
まげさんへ 2-Bを端的な言葉で説明すればそのようになりますね。 mkIIでもPRGが1画面で外部ファイルを用いたプログラムは作りましたが、私はそれを「似非1画面プログラム」と呼んでいます(笑) プチコン3号ならば外部ファイルを使わなくても1文字16bitに圧縮を掛けたデータ([×]と表示されるテキスト)を使ったものもそのような扱いにしようと考えています。 うえこうさんへ 自分内でルールを決めて作るということに意味があるのでそれが良いと思ったのならばそれでいろいろ作ってみましょう。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
71文字
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
以下、私がプチコン3号で即興で作ってみたプログラムです。 mkIIで作ったものよりも10文字も長くなっていますが、これはmkIIから仕様変更されたのが影響しています。 できるだけ投稿する前には見ないようにお願いします。 見た後でもさらに短くできる方法があればそれをネタバレで書き込んでもらえるとすごくうれしいです。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
今回は1~100までの結果を表示してください。 外部ファイル(スロット)を使っても良いですが、その外部ファイルを生成するプログラムも文字数にカウントします。 これは、例えばFIZZBUZZ関数(関数名はF)を作ってそれをプログラムスロット1に入れた状態実行したら「USE 1F」の6文字でFizzBuzzが完成」というわけではなくプログラムスロット1の文字数もカウントするということです。 改行した場合に限り文字数には改行コードを含みます。(3行で記述した時は改行コードを2つ分加算) つまり、改行無し、コロン無しの方が文字数では有利になります。 投稿の際はネタバレチェックを入れるのを忘れないようにお願いします。 締め切りは5月17日(日)23:00です。
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
第1回プチコン3号コードゴルフを開催します。 指定されたコードゴルフはお題に沿ってできるだけ短い(文字数の少ない)プログラムを作るというものです。 今回のお題は超有名な「FizzBuzz」です。 1から順番に数字を画面に表示していくのですが、3の倍数の時は数字の代わりにFizzと表示して5の倍数の時はBuzzと表示します。3の倍数かつ5の倍数の時はFizzBuzzと表示します。 例えば1~20までの表示例はこんな感じになります。 1 2 Fizz 4 Buzz 6 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz 中上級者は腕試しとして、初心者は文字数に拘らずこの動作をするプログラムを作ってもいいと思います。 細かいルール等はコメントにて。
8そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
個人的には1-Bと2-Bのどちらでいくか迷っていましたが皆さんのお陰で2-Bにする決意が固まりました。どうもありがとうございました。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
ゆうたんさんへ それは1画面プログラムに対する考え方の違いですね。 私は1画面という制約の中でどれだけのものを詰め込めるかという競技的な側面と単に短いプログラムという側面の2つがあると思います。 初心者には後者の側面で1画面プログラムを勧めていますが、「普通に作るだけならば簡単に作れる」という中上級者には前者の側面で勧めています。 後者の側面であればマルチステートメントの記述はできるだけ避けるべきですよね。 あと両者のどちらであってもMiiverseだと1画面に収まっていれば作品を公開しやすいというメリットがありますね。
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
けいさんへ 1-Aだとマルチステートメントで記述するだけで容易に1画面にぴったり収まるプログラムが書けてしまうためあまり達成感が得られないんですよね。 その点、2-Bならば難易度的には問題無さそうです。改行コードが残るのは最初は少し気になると思いますが慣れれば問題は無いかもしれませんね。 ただし、プチコン3号では従来のmkIIで考案してきた手法の多くが使えないため新たにプチコン3号ならではのリスト短縮を考える必要がありそうです。 mkIIで最も多用した剰余も「%」の1文字だったのが「MOD」は実質5文字必要になってしまいましたし。(8方向移動も剰余が「%」で済めば剰余で記述するのが最も短くなる)
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
うえこうさんへ ファミコンのIIコン式の音声入力(音の大きさのみで判定)を使えば初心者でも作ることができると思いますよ。 まげさんへ 関係ありそうで、関係が無かったりする話ですが、「OSP」というのは私がプチコンmkIIで作ったボーカロイドもどきのタイトル名と同じです。もちろん1画面プログラムです(笑) プチコン3号の次のアップデートによってTALKでピッチ変更が可能になるとのことなのでプチコン3号にOSPを移植しようと考えています。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
これは100m走のタイムの計測で例えると追い風50mだろうと自分の足で走ればそのタイムが正式タイムとして認められるのかとか、どの部分がゴールに届いた時にゴールと見なされるのかというようなルール作りの部分です。 100m走の正式な計測法については長年掛けて公式ルールが決まったのですが、プチコン3号の1画面プログラムに公式ルールなんてものがあるはずがなく最終的には「制作者の好み」で決めて問題はないと思います。 ただし、自分内でルールが決まってないと限界に挑戦する意味が全くないので自分の考えを固めるために他の方の意見を参考にさせて頂きました。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
うえこうさん、KoKoさんへ やはり、「プログラム本体が1画面に収まればOK」の1-Aが普通の人の選択肢なのかもしれませんね。 まげさんへ それはある程度プログラムのリスト短縮を行ってきた中上級者だからこその意見ですね。 2-Bは無難な選択肢ですが、個人的には上記のようにmkIIでは「改行コードが画面内に全く無い」という完璧な詰め込みを目指していたので「画面内に改行コードが29個もある(=29文字も短縮可能に見える)」という状態がどうももどかしい感じがしますが、デフォ設定を変えてまでmkIIと同じレギュレーションに拘るべきかと言われたら微妙なところなんですよね。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
自分の好みで良いと思いますよ。 前者は左端に表示しておけばFPSの桁がどれだけ増えても表示座標を変えたり、桁揃えをしなくても済むため私は前者の方を多用しています。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
FPSを求める最も簡単な方法は「1秒を計測してその間に実行できた回数をカウントする」というものなのでそれで全く問題はありません。 1秒以内に求めたいとか、0.1fps単位で求めたいというのであれば少し工夫が必要になります。 プチコン3号ならばDEFで自作関数にするという方法もありますが、この辺はお好みで良いでしょう。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
プチコンの乱数の発生アルゴリズムは私が調べた感じだと線形合同法をベースにしたものだと思われます。 実際にどの程度の偏りがあるのかを1000‰さんのプログラムを元にカイ二乗検定をしてみましたが、有意水準5%で棄却されました。したがって、「偏りがある」と言えるでしょう。 線形合同法による乱数ならばこれくらい偏りがあってもおかしくないですが。 とはいえ、8bit機の乱数よりは遥かに優れていると思います。 私が持っているポケコンでX座標、Y座標をそれぞれ乱数によって決めてドットを打っていったら何回ループさせても画面がドットで埋まらずほぼ線が引かれるのみという非常に偏ったものになりました。
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
うえこうさんへ 1画面プログラムには2つの側面があります。 極めようとするとプチコンの裏技を使ったりとかリストが見にくくなったりなどの問題もあるため個人的には1画面プログラムを作ることに価値を見いだせる中上級者以外にはあまりオススメできません。 とはいえ、無理に1画面に収めるのではなく1画面に収まるくらいシンプルなプログラムをたくさん作るというというのは初心者には超オススメです。 あと1画面に収まるならば公開キーを取得しなくてもMiiverseで簡単に公開できるというメリットがあります。
3そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
しかし、プチコン3号ではデフォ設定が折り返しありになっているためオプション設定を変えてまでmkIIの時と同じ基準にするのも疑問に感じています。 そうなると消去法で2-Bとなるのですが、これだと限界まで詰め込んだ感があまりしないのが難点です。 限界まで詰め込むと「1文字の重さ」がどんどん重くなるため実質29文字分も余裕があるため全然限界という感じがしないためです。 何せ1文字分短縮するために一晩悩んだこともあるくらいです。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
なぜこのようなことを書いているかというと当初は1-Aを基準に考えていたのですが、これだと1行プログラムを作ればいいだけなので「1画面ぴったりの文字数にするのが簡単すぎる」というのもあるし、「これは1画面プログラムではない」という意見を見かけたからです。 プチコンmkIIでは編集画面の折り返し機能が無かったため1-Bを基準に作っていました。 mkIIだと1行は最大29文字で24行以内となるため処理の分解、再構築を行いパズルのように組み合わせることで「各行ぴったり29文字×24行にする」という行程を楽しむことができました。
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
質問というかアンケートみたいなものですが、プチコン3号における1画面プログラムのレギュレーション(ルール)作りで悩んでいます。 1.プログラムが編集画面に収まればOK(改行コードは無視)  A 折り返し表示もOK  B 折り返しはダメ  2.改行コードも編集画面に収める  A 折り返しもOK  B 折り返しはダメ  1-A、1-B、2-Bのどれが1画面プログラムとして最も適切だと思いますか?(2-Aは意味がないので却下)
1そうだね
プレイ済み