こんにちは、スタック オーバーフローの世界 :3 私の名前は Chris です。ちょっとした問題があります。そのため、この形式で問題を提示します。 パート 1 現在、その IS で作業している資料とコード スニペットを提示します。 . パート 2 目標を達成するための、私が望む新しい方法を最善を尽くして説明します。 パート 3 では、私がすべての作業をあなたに任せているわけではないと思われているかもしれませんが、先に進んで、上記の目標に対する私の試みと、私が完全には理解していなかった研究が掘り起こした方法を紹介します.
パート1
mobDB.csv 例:
ID Sprite kName iName LV HP SP EXP JEXP Range1 ATK1 ATK2 DEF MDEF STR AGI VIT INT DEX LUK Range2 Range3 Scale Race Element Mode Speed aDelay aMotion dMotion MEXP ExpPer MVP1id MVP1per MVP2id MVP2per MVP3id MVP3per Drop1id Drop1per Drop2id Drop2per Drop3id Drop3per Drop4id Drop4per Drop5id Drop5per Drop6id Drop6per Drop7id Drop7per Drop8id Drop8per Drop9id Drop9per DropCardid DropCardper
1001 SCORPION Scorpion Scorpion 24 1109 0 287 176 1 80 135 30 0 1 24 24 5 52 5 10 12 0 4 23 12693 200 1564 864 576 0 0 0 0 0 0 0 0 990 70 904 5500 757 57 943 210 7041 100 508 200 625 20 0 0 0 0 4068 1
1002 PORING Poring Poring 1 50 0 2 1 1 7 10 0 5 1 1 1 0 6 30 10 12 1 3 21 131 400 1872 672 480 0 0 0 0 0 0 0 0 909 7000 1202 100 938 400 512 1000 713 1500 512 150 619 20 0 0 0 0 4001 1
1004 HORNET Hornet Hornet 8 169 0 19 15 1 22 27 5 5 6 20 8 10 17 5 10 12 0 4 24 4489 150 1292 792 216 0 0 0 0 0 0 0 0 992 80 939 9000 909 3500 1208 15 511 350 518 150 0 0 0 0 0 0 4019 1
1005 FARMILIAR Familiar Familiar 8 155 0 28 15 1 20 28 0 0 1 12 8 5 28 0 10 12 0 2 27 14469 150 1276 576 384 0 0 0 0 0 0 0 0 913 5500 1105 20 2209 15 601 50 514 100 507 700 645 50 0 0 0 0 4020 1
1007 FABRE Fabre Fabre 2 63 0 3 2 1 8 11 0 0 1 2 4 0 7 5 10 12 0 4 22 385 400 1672 672 480 0 0 0 0 0 0 0 0 914 6500 949 500 1502 80 721 5 511 700 705 1000 1501 200 0 0 0 0 4002 1
1008 PUPA Pupa Pupa 2 427 0 2 4 0 1 2 0 20 1 1 1 0 1 20 10 12 0 4 22 256 1000 1001 1 1 0 0 0 0 0 0 0 0 1010 80 915 5500 938 600 2102 2 935 1000 938 600 1002 200 0 0 0 0 4003 1
1009 CONDOR Condor Condor 5 92 0 6 5 1 11 14 0 0 1 13 5 0 13 10 10 12 1 2 24 4233 150 1148 648 480 0 0 0 0 0 0 0 0 917 9000 1702 150 715 80 1750 5500 517 400 916 2000 582 600 0 0 0 0 4015 1
1010 WILOW Willow Willow 4 95 0 5 4 1 9 12 5 15 1 4 8 30 9 10 10 12 1 3 22 129 200 1672 672 432 0 0 0 0 0 0 0 0 902 9000 1019 100 907 1500 516 700 1068 3500 1067 2000 1066 1000 0 0 0 0 4010 1
1011 CHONCHON Chonchon Chonchon 4 67 0 5 4 1 10 13 10 0 1 10 4 5 12 2 10 12 0 4 24 385 200 1076 576 480 0 0 0 0 0 0 0 0 998 50 935 6500 909 1500 1205 55 601 100 742 5 1002 150 0 0 0 0 4009 1
これは私が持っているスプレッドシートの例です..これは、私の理想的な目標で使用したいものです。私が現在使用しているものではありません..MS Excel 2010で、列A〜BFと行1〜993を使用して行われました
現在、作業コードの私の形式は、手動で実装された配列を使用しています..たとえば、私が持っている iName の場合:
char iName[16][25] = {"Scorpion", "Poring", "Hornet", "Familiar", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null"};
ヘッダー ファイル (bSystem.h) で定義されて適用されるようになりました。ヘルス変数としましょう。次のように、対応する順序で同じヘッダーに別の配列が必要です。
int HP[16] = {1109, 50, 169, 155, 95, 95, 118, 118, 142, 142, 167, 167, 193, 193, 220, 220};
問題は、モンスター、アイテム、呪文、スキルなどに必要なさまざまなファイルにハードコードする大量のデータがあることです.特定のシステムを作成するための元の小規模では、それは問題ありませんでした..ヘッダーファイルでさまざまなボイドを使用して、呼び出されたときにファイルからファイルにデータを転送します..しかし、1,000以上のモンスターを扱っていて、これらすべての変数を使用する必要がある場合..手動でそれらを入れるのはちょっと..ばかげていますか? 笑...
パート2
これに対する私の理想的なシステムは、.CSV ファイルを使用してデータをロードできるようにすることです..このタスクでは、かなりの量のさまざまな問題に遭遇しました..Names から取得したデータを Char 配列に変換するなど、実際にCSVファイルからデータを引き出し、特定のセクションを特定の配列に割り当てます...私が念頭に置いている主なアイデアは、私が到達できないように見えることです。
これらのさまざまな変数をCSVファイルから読み取る方法を見つけたいと思います...したがって、次のような変数を呼び出すと:
cout << name << "(" << health << " health) VS. " << iName[enemy] << "(" << HP[enemy] << " health)";
ここ[enemy]
で、ID になります。敵との遭遇は別のヘッダー (lSystem.h) にあり、基本的には次のようになります。
case 0:
enemy = 0;
0 は、モンスターを含む配列の最初のデータになります..特定の順序にする必要があるのは嫌いです..敵 = 1002; と言えるようにしたいと思います。そのため、戦闘システムが開始すると、必要な変数を ID 1002 の敵から取得できます。
私はいつもいくつかの異なる問題に遭遇します.ファイルからプログラムにデータをプルすることはできません..できるときは、int値をint配列に格納することしかできません.変換するのに問題があります.文字列をchar配列に..次に提示される問題は、それと実際の保存部分を思い出すことです...これがパート3の出番です:3
パート 3
これまでにいくつかの異なることを試み、これを達成する方法について調査しました..これまでに出くわしたのは..
たとえばmobDBからデータを読み取り、それを配列に記録してから.datに出力する関数を作成できますか? したがって、変数をリコールする必要がある場合は、変更可能な CSV の代わりに .dat からいくつかの操作を実行できます。読み取りと変換に関する限り、同じ問題が発生しました。
SQL ルートに進むことはできますが、SQL からデータを取得する方法を理解するのに多くの問題がありましたか? 家にはデータを保存する PowerEdge 2003 Server ボックスがあり、NavicatSQL Premium がセットアップされています。そのため、SQL ルートに関する主な 2 つの質問は、SQLServer に直接接続できるかどうか、および更新時にデータベース、クライアントが実行されると、変数とデータをDBからプルするだけですか? それとも、SQL ファイルのコンパイルで行き詰まるでしょうか... オンライン ゲームの場合、サーバーからクライアントに転送するために何かを使用する必要があることはわかっています。構築するために、SQLサーバーを使用できると確信していますか? 誰かがこれがどのように機能するかをよく理解しているなら、私はSQLルートを取りたい..
私が行った試みは、標準ライブラリの代わりにCSVからのデータを解析するためにブーストを使用しています..同じ問題が提示されました..文字列を文字に変換することについて読みました..データ、変換できませんでしたか? ...
私はADO C++ルートも試しました..そこで行き止まり..
全体として、私はこれに先週かそこらを費やしました..実際に変数を更新するようにSQLサーバーをセットアップしたいと思います.データ量..
私はすべての助けに感謝します..誰かがこれのための動作するコードを取得するのを手伝おうとする場合、説明する必要があると感じる部分にコメントを追加するのがそれほど面倒ではない場合? 誰かに簡単な修正をしてもらいたくありません..実際に自分が何を使用しているかを学び、理解したいと思っています。どうもありがとうございました:)
-クリス