シミュレーションツール

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
キャベツ太郎

シミュレーションツール

#1

投稿記事 by キャベツ太郎 » 15年前

はじめまして。
さっそくですが、みんなdeクエストという携帯ゲームを知ってるでしょうか?
それはキャラに複数のパラメーターがありスキルには係数があります。
また武器にも攻撃力があり、これは±25%の乱数によって決まり、
ダメージを敵に与えて5ターン以内に倒すゲームです。
逆に敵からもダメージをくらい、行動順なども敏捷というパラメーターの値
±25%の乱数によって前後します。
さらに敵の攻撃はいくつかある中からランダムなどの場合もありますので、
その結果は何千万通りとあります。
そういったゲームのシミュレーションとなるツールみたいなのを作りたいんですが、
この場合何からはじめればいいのでしょうか?
自分にはプログラミングの知識など皆無で、もしかしたらここに書き込むこと事態、
見当違いなのかもしれませんが、知っていたら教えてください。
グラフィックなどはまったく使わず、計算のみになると思いますので、
おそらく先行確率計算プログラムみたいな感じになるんでしょうか?

softya

Re:シミュレーションツール

#2

投稿記事 by softya » 15年前

「みんなdeクエスト」の事は良く知りませんが、
携帯電話で動くものを作りたいのでしょうか?
それともパソコンで遊べるものでしょうか?
ブラウザだけで遊べるゲームってのもあります。
ここをはっきりしないと
>この場合何からはじめればいいのでしょうか?
ターゲットなる物で色々やり方が変わるので、もう少し詳しくお願いします。

>グラフィックなどはまったく使わず、計算のみになると思いますので、
「みんなdeクエスト」にはあるみたいですが、いらないのでしょうか?
テキストだけのゲームだとしたらレトロで、それはそれで面白いのですが。

>おそらく先行確率計算プログラムみたいな感じになるんでしょうか?
意味不明ですので補足をお願いします。

Mist

Re:シミュレーションツール

#3

投稿記事 by Mist » 15年前

「みんなdeクエスト」の戦闘結果シミュレータが欲しいってことだと思いますけど。
コンソールアプリでいいのであれば、開発環境(VC++、BCC等)を用意してC言語を勉強すれば出来ると思いますけど。
「みんなdeクエスト」の乱数生成アルゴリズムが判らないと思った結果にはならないかもしれませんね。

たいちう

Re:シミュレーションツール

#4

投稿記事 by たいちう » 15年前

サイコロの期待値を求めるプログラムです。
携帯ゲームを単純化して1つのサイコロにしたもの、
シミュレーションについても、
期待値のみを結果として出力しています。

まずこれを理解し、徐々に複雑なものに改良して、
望むものを作ってみてはいかがでしょうか。

サイコロのシミュレーション

攻撃力のシミュレーション

複数回の攻撃のシミュレーション

攻撃のバリエーションを考慮



等と発展させる方法です。
プログラムを作っていくに従い、自分が何を求めているのか、
うまく説明できるようになるのではないでしょうか。
#include <stdio.h>

#define N 10000

int dice() {
    return rand() % 6 + 1;
}

int main() {
    int i, sum = 0;
    srand((unsigned int)time(NULL));
    for (i = 0; i < N; i++)
        sum += dice();
    printf("期待値 = %f\n", 1. * sum / N);

    return 0;
}

キャベツ太郎

Re:シミュレーションツール

#5

投稿記事 by キャベツ太郎 » 15年前

回答ありがとうございます。
正直、遊ぶというよりは結果を見るといった感じです。

>「みんなdeクエスト」にはあるみたいですが、いらないのでしょうか?
「みんなdeクエスト」というゲームは、敵が使用したスキルを
確認してから次のスキルを選択するというゲームではなく、
使用するスキルを最初にセットし、時間がきたら勝手に戦い、
その内容をテキストによって確認します。
ですので、確認するときには戦闘は終わっており、勝っているか、負けているか
になります。
グラフィックは動いたりもせず、ただキャラやアイテムを判別するためのものなので
必要ないと思います。

私が作りたいのはあくまでツールになりますので、計算表みたいのだと思います。
例えば

力100に対し、係数3のスキルを使用すると300のダメージを与える。

といったものを力の項目に100と打ち込むだけで300という数字が割り出せるような
そんなツールです。
しかし実際はそこに武器の攻撃力も乱数によって出されるし、敵に先手をとられて
パラメータを下げられた場合、次の攻撃のダメージも変わってきます。
そういった複雑な計算を入力するだけで結果が出せるようなツールを作りたいです。
計算は乱数が使われるので、毎回結果は違いますがそれはしかたないです。

>携帯電話で動くものを作りたいのでしょうか?
作ったものは携帯でもパソコンでも使えるようにしたいです。

>>おそらく先行確率計算プログラムみたいな感じになるんでしょうか?
>意味不明ですので補足をお願いします。
すいません。忘れてください。

バグ

Re:シミュレーションツール

#6

投稿記事 by バグ » 15年前

携帯でもPCでも動くとなると、Webアプリですかねぇ…
それはともかく、まずは計算式が分からない事にはどうしようもないかな?と思います。処理自体はそんなに複雑ではないようですが、全く同じ物が欲しいとなると、オリジナルアプリの計算式や乱数発生アルゴリズムが分からないと無理でしょうね。
似たような物であれば可能でしょうけど…

softya

Re:シミュレーションツール

#7

投稿記事 by softya » 15年前

>作ったものは携帯でもパソコンでも使えるようにしたいです。
その前提であれば、リアルタイム性も必要ないですのでPerlやPHPなどWEB系開発言語を使われると良いと思います。CGIと呼ばれているものですね。
ブラウザで数値を入力してもらって、サーバーで計算して結果を表示するものになります。

これは信長の野望関係みたいですが、こんな感じですかね。
http://chika-rsin.jp/n/i/ikusa.cgi

キャベツ太郎

Re:シミュレーションツール

#8

投稿記事 by キャベツ太郎 » 15年前

>「みんなdeクエスト」の戦闘結果シミュレータが欲しいってことだと思いますけど。
まさにそのとおりです。

>計算式が分からない事にはどうしようもないかな?と思います。
ダメージなどの検証により、それを逆算して乱数±25%というのは
わかりました。
ダメージを割り出すことだけを見るとしても、それだけでは
情報不足でしょうか?
ほかにもいくつかの計算式といいますか、乱数などはわかっています。

>似たような物であれば可能でしょうけど…
乱数の全ては逆算によって出されたものなので、
確かにオリジナルの計算式とは違うかもしれませんが、
それに近いものだとも思いますので、似たような物であれば十分です。

>これは信長の野望関係みたいですが、こんな感じですかね。
そうです。そういったものでダメージだけを割り出すツールは「みんなdeクエスト」にも
あるんですが、それでは敵がAの攻撃をした場合のダメージ、Bの攻撃をした場合のダメージ
などがわからず負けるときがありますので、いったんシミュレートできるような
ツールを作りたいです。

softya

Re:シミュレーションツール

#9

投稿記事 by softya » 15年前

>などがわからず負けるときがありますので、いったんシミュレートできるようなツールを作りたいです。

私のオススメは、PHPですね。
http://www.standpower.com/
完全なプログラミング初心者なら書籍を買った方が良いと思います。
PHP4とPHP5で大分違いますので、レンタルサーバを借りる前に下調べを十分に行って下さい。
無料で借りれるレンタルサーバーもあります(広告が入りますが)。

キャベツ太郎

Re:シミュレーションツール

#10

投稿記事 by キャベツ太郎 » 15年前

なるほど。
こういったところから始めればよろしいですか。
回答してくださったみなさま本当にありがとうございました。
私は素人のあまり伝わりにくかった部分がたくさんあったのに
みなさん回答はとてもわかりやすかったです。
これらを参考に少しずつ勉強していこうと思います。
ありがとうございました。

kazuoni

Re:シミュレーションツール

#11

投稿記事 by kazuoni » 15年前

自分もPHPやってみたかったんですよね^^;
この機にちょっとやってみようかなぁ・・・。
○チスロ解析アプリぐらいなら作れるかな・・・?

#キャベツ太郎は自分の生涯を通して一番好きなお菓子です。


余談失礼しましたorz

softya

Re:シミュレーションツール

#12

投稿記事 by softya » 15年前

>>kazuonさん
C言語が分かっていれば、さほど難しくはありません。
C言語よりも楽に文字列処理も出来ますし、正規表現も使えて便利です。
一応クラスも使えますので、C言語よりも気の利いた記述が出来ます。
豊富なライブラリがあり、HTMLコードの生成が楽に行えるsmartyなんか気に入って使っています。

C/C++経験者なら、こちらのサイトが手っ取り早いと思います。
http://www.phppro.jp/phpmanual/php/index.html

たかぎ

Re:シミュレーションツール

#13

投稿記事 by たかぎ » 15年前

実は、最近はコマンドラインツールを作るのもPHPで作っていたりします。
PHPとC++を合わせれば非常に強力なタッグになりますね(それぞれ得意分野が異なるので)。

閉鎖

“C言語何でも質問掲示板” へ戻る