Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131154
次のページ(過去)
返信[4]
親投稿
おちゃめ ochame_nako
うえこうさんへ Aが正数であればFLOOR(A)もA DIV 1もほぼ同じ動作になりますが、Aが負数の場合は動作が異なります。 FLOOR(-3.5)は-4になりますが、-3.5 DIV 1は-3になります。 このため元の数との差分を取るだけで小数部分+符号を取得できます。 ということで負数を考慮しないのであればA-FLOOR(A)で全く問題はありません。 あとみき★さんが言われているようなSTR$とLOGの注意点も考慮しなければ☆kei☆さんが作ったプログラムでも何ら問題はありません。 どこまで考慮する必要があるかは作る人次第です。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
STR$の丸め誤差、LOGの演算誤差と演算有効範囲なども考慮した場合は思っている以上に難しくなりますね。 小数部分のみを取得したいならば一例としては「S-S DIV 1」とすれば良いです。(他にもいくつか方法はあります) 負数の場合はABSで正数にするか-1を返すかはお好みで良いでしょう。
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
ちーたけさんへ 私が書いた2つのX2関数は前者が戻り値が1つの場合に等価になる例、後者が等価にはならない例として記しています。
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
私が作る1画面プログラムのレギュレーション名称をこんな感じにしてみました。 basic ・・・ 2-B準拠、[×]文字を使用しないレギュレーション advance ・・・ 1-A、B、2-A準拠、もしくは2-Bで[×]文字を使用したレギュレーション false ・・・ プログラムは1画面に収まっているけど外部データが必要なもの(これは1画面プログラムとは見なさない)
2そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
コア/co.aさんへ 私自身もポケコンではそのように1文字1面分のデータというゲームも作ったし、プチコンmkIIでも288バイト分のギターコードを96バイトに圧縮した1画面プログラム「PETIT GUITER」を作りましたので1文字で16bit分使えるというのはリスト短縮にすごく有効なのは分かっているつもりです。 しかしながら「リストを見てそれを入力すればプログラムを実行できる」というのが1画面プログラムの醍醐味だと感じているため判別の付かない[×]文字を使ったプログラムは「私が作る1画面プログラムの基本仕様にする」というのが微妙に感じただけです。 ただし、「似非」と差別化するほどのものでもないのも確かなので「似非」と「基本」レギュレーションの中間レギュレーションを設置することにしましょう。 あくまで、これは私が作る1画面プログラムのレギュレーションなのですが。
0そうだね
プレイ済み
返信[31]
親投稿
おちゃめ ochame_nako
初心者の定義に作品作りの私の考えを混ぜたため長い割に何を言いたいのか分かりにくいレスになってすみません。 書き込む前にちゃんと推敲しないといけないですね(笑)
0そうだね
プレイ済み
返信[30]
親投稿
おちゃめ ochame_nako
中村勘三郎さんの名言にもあるように型があるからこそ型破りになるわけでそうでなかったら型無しになります。 「既存の作品にはない面白いゲームを作る」という前に「既存の作品がなぜ面白いのかを考える」ことが必要になるということです。 そういう意味では意識せず型破りな作品を作れる人は本当にすごいと思います。 作品を作るのに技術が必要になる場面もあるのも事実なので「技術は不要」と言うつもりはないですが、技術はそれを使った作品があって初めて意味のあるものだと考えています。 だからこそ私は積極的に技術公開をしています。
1そうだね
プレイ済み
返信[29]
親投稿
おちゃめ ochame_nako
あとれいさんも言われているようにプログラミング技術があれば面白いゲームを作れるのかというとそうではないため難しいですね。 「面白い」というのは主観的な要素が多いのですが、良い絵、良い写真というのがある程度パターン化されるようにゲームを面白くするための要素もある程度はパターン化できるためそういう面では「(ある程度)面白いゲームを作ること」は誰でも習得可能な技術と考えることも可能です。 その「面白さのパターン」を絶対的なものと考えると型にハマってしまい型破りの作品が生まれにくくなるというデメリットがあると考える人もいるかもしれませんが、型破りな作品を意図的に作り出すためには型にハマってみることも必要だと思います。
2そうだね
プレイ済み
返信[28]
親投稿
おちゃめ ochame_nako
初心者の定義はそれこそ人それぞれでしょうね。 私は「初心者」を概ね「入門者」と同義として使っています。 要するにそれを始めたばかりで経験が浅い状態を示しています。 あと私は初心者(入門者)→初級者→中級者→上級者のような段階を考えていますが、同じ初心者でも経験ゼロの初心者と初級者に近い初心者ではかなり変わってくると思います。 プチコン3号を買ったばかりで命令を1つも知らない初心者もいればINPUT、PRINTなどのいくつかの命令は知っていても自分でプログラムを作るのが難しいという初心者もいるわけです。 そういう観点からすると簡単なプログラムを自力で作れるようになれば初心者卒業といえるでしょう。 「簡単なプログラム」というのがどの程度のものなのかを定義しなくてはならないのですが、面倒なので省略します(他の言語経験者でプチコンは初心者という人もいるため定義がすごく難しい)
0そうだね
プレイ済み
返信[43]
親投稿
おちゃめ ochame_nako
私はやっぱり「ポケコン」(携帯型セルフ開発&実行環境)としてですね。 携帯型ゲーム機によるセルフ開発環境であるため場所を問わずいつでも作れることやスマホやPCなどでの開発とは異なり動作させている端末のスペックの違いを考える必要がないというのがいいですね。 といっても、旧3DSとNew3DSの違いやバージョンアップによる互換性問題を考えるとmkIIと比べると後者のメリットは薄いですが。 3DSがコンシューマゲーム機であるためゲームのプレイには向いているし、デフォルトで様々な効果音やスプライト、BGのデータが入っているためゲームが作りやすいのもいいですね。 この手のものには今までたくさん手を出しましたがプチコンはその中でもトップレベルの良いものだと感じています。
1そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
タブレットPCによくあるスタイルで下半分を回転させれば下画面とパッドとボタンが現れるわけですか? このサイズだと超時間のゲームのプレイは筋トレにもなりそうで一石二鳥ですね!
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
ちーたけさんへ このX関数において変数Bの型が未確定(Bへの代入処理が行われていない)なので実行するとType mismatchエラーが発生すると思います。 X(12)として戻り値が23になるようにするならば「X=B*2-1」の部分は「B=A*2-1」になりますね。 恐らく上記の私のコメントにおいて「この場合は戻り値であるBも引数Aによって型が決まります。」という部分の書き方が悪かったのかもしれませんが「この場合」というのは「関数内で引数Aを用いてBへの代入処理を常に行っている場合」にはAが数値変数の時は自動的にBも数値変数になるという意味です。 次のコメントにおいて書いている「常にBへの代入が行われるとは限らない場合」の対比としてあえてそのような書き方をしています。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
使用して頂きこちらこそありがとうございます。 FPS関数もFPSM関数も単純に実行回数などをカウントしているだけの単純なアルゴリズムであるため(計測開始時を除き)想定外の大きな誤差が出るという心配はありません。 FPSM関数ならば更新間隔0.2秒でもほぼ±1%以内に誤差は収まりますが、更新間隔が1秒ならばさらに誤差が減らせます。 なおこのFPSM関数では結果を返す時にFLOORで丸めていますが、59.9fpsと60fpsが交互に表示されて困るという場合にはROUNDで丸め処理を行えば表示が安定しやすくなります。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
私がメモリが1KBくらいのポケコンでRPGを作っていたときはねこはちさんよりさらにシンプルでPOW(LV+1,3)という感じの式を使っていました。(LVは現在のレベル) この式を使うと各レベルに到達するための必要経験値は LV2は8(7) LV3は27(23) LV4は64(47) LV5は125(110) LV6は216(220) (中略) LV99は970299 という何となくそれっぽい値になります。 カッコ内はドラクエIの必要経験値なのでそれに近いものを想像すれば良いです。(というか配列なんてメモリの関係でまともに使えないポケコンでドラクエIを目指して考えた式だし) バランス調整は敵を倒した時に得られる経験値で調整できます。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
プチコン3号では?LOG(1000,10)を実行すると3と表示されますが、内部では2進数で010000000000001111111111111111111111111111111111111111111111111111(10進数では2.9999999999999996)となってます。 したがって、FLOOR(LOG(1000,10))の値は2になります。 ちなみにSTR$で文字列化したあとにVALで数値に戻すと3になるのはSTR$にする段階で値が丸められるためです。(有効桁数が約16桁から6桁へと減る段階で四捨五入されるため) 桁数を求めるプログラムはシンプルでありながら様々な例外処理が必要になりなかなか奥が深いので第2回プチコン3号コードゴルフの題材に使わせてもらうことにします。 そこで私が考えた桁数を求める方法も書く予定です。
0そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
すみませんが、多忙のためまとめやレスは明後日くらいに書きます
3そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
STR$ではなくFORMAT$を使えば数値が7桁以上になった場合もちゃんと桁数を求めることが可能ですが、数値が小数ならば面倒な上に誤差の問題もあるので常用対数が一番楽ですね。 常用対数にしろFORMAT$にしろ誤差をうまく吸収できるアルゴリズムにしてやれば問題ないですね。
2そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
1次元配列の例 A[256] 2次元配列の例 A[16,16] 1次元配列が横1列(もしくは縦1列)の棚、2次元配列は縦横の棚をイメージしてもらったら分かりやすいです。 私が書いた上記のコメントについてさらに詳しく知りたいのであれば「16bit物理色コード」で検索するとよいです。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
GRPファイルも実は16bit整数のデータファイルなのです。 したがって、16bit物理色コードの2次元配列をセーブしておけばGRPとしてロードが可能です。(GRPのサイズは512x512固定ではなく自由なサイズでセーブが可能ということ)
1そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
あっとTMWさんへ 折り返し機能は1行が長くなるときは便利なので小林社長に提案して実現してもらったのですが、実際のところそこまで1行を長くする時点で可読性の高いコードとは言い難いかもしれませんね。 実際の狙いは「折り返し表示機能によって1画面プログラムのハードルが下がり1画面プログラムを作る人が増える」ということなのですが、Miiverseの画像投稿機能によって1画面プログラムの投稿は多いものの折り返し機能の恩恵は現時点ではほとんど無さそうですね。
1そうだね
プレイ済み