NACN43KJ
5個のダイスを降って役を作る「クロンダイク」というゲームがあるのですが、それに似た役を判定する関数です。
1. 5個のダイスをソート
2. 同じダイスが無いか判定し0〜2のフラグを立てる。
3. 役を判定
フラグは「同じダイスがなかったら0」「1つ目の同じダイスで1」「2番目の同じダイスで2」が立ちます。
具体例
役なし[00000]
5カード[11111]
フルハウス[11222]または[11122]
0そうだね プレイ済み
ポーカーの役判定が使えるでしょうか。
実は、以前、ダイスを使ったポーカー風のゲームを作りかけた事があり、その際にポーカーの役を判定するロジックを調査、実装しました。
もし良ければですが、ご参考になるようでしたら公開します。
なお、あまり効率良く無いと思います。
0そうだね プレイ済み
論点がズレかかっていますから戻すと。
くどいですが、強力な関数なので、使い方、使われ方を考えないといけないよ。毒にも薬にもなるよ。「(RVALがなくても、悪いコードは教えられますよね?)」が正にそれで、決して「プチコン3号では考える必要はありません。」で片付ける問題じゃないよ、と。
RVAL関数は「悪意があれば永久ループもするし、ダイアログがでるけどファイルも削除できちゃうよ」って事が、使うユーザにも、関数の使用者にも伝わっていれば問題はないとおもうわけで。このような性質の関数は他に無いから「充分な危険性の周知」として伝える必要があるのでは、と。
そうじゃなければ、「実行する演算子や関数の制限対応」をして、出来る事を制限する必要があるのでは、と。
0そうだね プレイ済み
「危険な状態」というか、「関数の目的以外のことを、ユーザの悪意で可能で有る」状態という事で。
初心者が多いと思われるプチコンなので、製造者が意図しないコードが実行できる状態はあまり良くないだろう、と。説明が足りず済みません。
ユーザが問題のあるコードを走らせなきゃいい訳ですし、自己責任の範疇だと思いますが。初心者に「自己責任で判断」というのも厳しいかと。
例えば、こんなシナリオとか。
製造者「関数電卓作ったよ」
↓
悪意のユーザ「こんなコード走らすとおもしろいよ(実際は永久ループ)」
↓
普通のユーザ「よくわからないけど、動かなくなった!」
無理やり感はありますが「本来、初心者は知り得ない、出来ない事にもかかわらず、ユーザが、それを実行できてしまう」と、そんな感じです。
0そうだね プレイ済み
文章を推敲していたら、ケインさんが要点を纏めてくださった件についてorz
れいさんの「セキュリティーがー コマンドインジェクションがー」を「変なコードが実行できる状態って、そもそも駄目なんじゃね?」と、私が勝手に判断してるのも問題ではあるのですが。
おちゃめさんの「変なコード書いても、大丈夫。考える必要ないよ」 という返しは、それはちょっと言い過ぎというか、答えになっていないよ、と。
まずは「変なコードが実行できる状態だから、正しく使おうね」「そもそも、変なコードを実行できない状態を保とうね」と啓蒙するか、「変なコード来ても実行させないよ」という状態にしないと答えにならないのでは、と。
0そうだね プレイ済み
ご返答ありがとうございます。
議論は苦手ですが、すこし書きます。
まず「任意コードの実行」自体には問題視していません。
繰り返しますが「関数の目的以外のことを、ユーザの悪意で可能で有る」を事を問題視しています。
説明して頂いた所で当てはめると「危険なプログラムの実行」あたりかと。
長く書いていただいて大変恐縮ですが、技術的、関数自体は当初から一切問題視していません。
論点としては「関数の使われ方」です。
具体的なケースですと、RVAL関数を使用し関数電卓を作ったとして、任意でユーザが値を入れられる状態ではどうでしょうか。安全でしょうか。
もし私が注意喚起をするならば「当該関数に、想定外の値を渡らないように実装してください。」でしょうか。
これを「プチコン3号では考える必要はありません。」との帰結は流石に違うかなぁと。違和感を感じます。
0そうだね プレイ済み
言葉が悪いのをご容赦頂くとして、少々短絡的ではないでしょうか。
先のれいさんの発言は、「関数の目的以外のことを、ユーザの悪意で可能で有る」ことを問題点として示唆されている訳で。
不要なコードを実行できてしまうのが問題であり、実行後を前提とした回答は、答えになっていないかと。
簡単に対策出来るとはいえ、ダイアログ地獄でも初心者には驚異と言えるでしょうから「実装者の意図しないプログラムの実行を可能」とする実装には慎重になった方が良いのは、と。
例えば「実行する演算子や関数の制限対応」か、制限をかけないのであれば「充分な危険性の周知」が必要かもしれません。
非常に強力なコードの後に、思考停止とも取れる発言を伺ったので老婆心と思いながら書き込ませて頂きました。
長文、乱文失礼しました。
0そうだね プレイ済み
猫のダメージモーションが素敵です。
なぜかクルクル回したくなります
剣振るアクションと言えば、基本画像でゼルダ風のアクションが作りやすそうな気がするのですが、意外にいらっしゃらないですね。
1そうだね プレイ済み
>みけらんジェロさん
アンドゥ、リドゥは考えていませんでしたが、データ履歴を蓄積できる様にスロットに出力すれば、結構な量の情報を保存できそうです。盲点でした。
今さっき気が付きましたが、DATA文にしてスロット跨ぎでデータ読み込みをしてやれば、実装は随分簡素になるなぁと。
連番ラベルをつければ、履歴でも耐えれそうです。
0そうだね プレイ済み
よく考えたらプログラム終了時に走る関数があると、ダイアログ地獄が再現できるから危ないですね。
そういうわけで、常時セーブが必要なタイプの、例えばRPGの中間セーブとか、ハイスコアを常に更新するゲームとかで、もしかしたら使える方法かもしれません。
0そうだね プレイ済み
SAVEのダイアログがウザイなら別スロットに吐けば良いじゃない。
と、スロットをフルに使う方を無視したクイックセーブ簡易実装。
スロットを消すまでデータをセーブしている感じです>曖昧
プログラム終了時に実行される関数とか有れば、終了時にデータセーブ出来るから要らなくなるよなぁ、と思いつつ。
8そうだね プレイ済み
「言語うんぬん」は別として、
有るとハッピーになりそうな機能は
「ファイルの保存日取得かダウンロード履歴」
「削除したファイルの復活機能(ゴミ箱機能)」
「スクリーンキャプチャ」
「公開キーの先行取得か、公開キーの固定」
あたりでしょうか。
5そうだね プレイ済み
公開キー その後にバグが! 後悔キー
よくある話で。おっさんらしく、ダジャレで一つ
1そうだね プレイ済み
公開ー2K73S3K4
新機能内容は私のトピックで。
限界を回避出来ましたーとか言えれば格好もつくのですが、書き味は前回と変わりません。ジュゲムを描かれた時の構造のが描きやすいのかぁと。
こりんごさん>
4ドットずつ塗られないようにするのは正攻法では、なかなか無さそうなのが頭いたい所ですね。
宣伝するのもなんですが、拡張して背景色変更対応しました。
表現力が多少上がったと思うので
変わったツール好きな方や、手軽にパラパラアニメ作りたい方は、是非試して頂ければと
0そうだね プレイ済み
公開キー 2K73S3K4
アルファ版その2
.スピードの問題を改善
.LRボタン押しながら色変更で背景色変更に対応
.簡易ぬりつぶし機能(つくりかけ)
0そうだね プレイ済み