0
0
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ドラゴンクエストXでの裁縫職人のミニゲームにおいて、状態を入力すると「現時点での最善手」が出る様にしたい。
前提
今までExcelなどで手順をまとめており、すべてではありませんが殆どの手順を書き記してExcelのセルに現在の数字を入力すると「今ここに〇〇をすると62%の確率で規定数値に収まる」様なデータ取りを行っておりました。
Ruby等は過去に学習したのですが、その際はブラウザゲーの作成に多少かじった程度で、他の言語についてあまり詳しくありません。
イメージとしてはチェスなどの詰将棋の計算の部分をアナログから言語を使ってステップアップしようと考えております。
発生している問題・エラーメッセージ
・様々なサイトを閲覧してみましたが、内容的にはPythonが最も適しているかと推測してはいますが、C++などの方が適しているのでしょうか?
現在、多くの情報をひとつのExcelファイルに入れてしまっているため、そのファイルを開く・マクロを起動するだけでもかなり動作が重くなり辟易しております…。
最終的には、ソフトウェアとしてコンパイルしたいと考えておりますが、何分無知な故、上記の内容に適した言語・もしくはオススメの書籍等御教示頂けないでしょうか?
宜しくお願いします。
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答18件
#1
総合スコア14001
投稿2023/03/09 06:49
編集2023/03/10 01:17募集者の気分を害しててしまったようなので削除します。
#2
総合スコア317
投稿2023/03/09 08:14
ガワとしては、下記の裁縫シミュレータのようなモノに、次の手を
表示させたいみたいな感じでしょうか。
(こちらは2013年のデータなので、現在は実用できないと思います。)
http://bluish.sakura.ne.jp/?p=1006
おそらく自分だけが使用する、ゲーム内で稼ぐための補助ツールの位置
づけだと推測しますが、目的を明確にしておいた方が意見が出やすいかと
思います。
「今ここに〇〇をすると62%の確率で規定数値に収まる」まで表示できる
ような仕組みとしては、現在の数値から大成功で完成するまでの全行程
シミュレーションとかが必要そうに思えますが、すでにそのあたりの
手順はExcel VBAで書ききっているのでしょうか。
(個人的には、そこまでデータをそろえて手順を考えてひとつの言語で
書ききれる能力があるなら、他言語への移植なんて適当にネットに
落ちてるリファレンスマニュアル見ながら鼻歌交じりに書けそうな気が
しますが…。)
「今アナログで行っている」が示す内容が「人が経験に基づくカンで
方針を決定している」という意味なら、どんなプログラム言語を選択
しても書けません。
既に指摘がある通り、そのあたりの、できていることとできていない
ことを明確にすると良いかと思います。
とりあえずExcelの動作については「Excel 動作 遅い」とかで検索すると
「自動計算オフにしろ」とかいろいろ書いてあるので、ダメ元で実施して
みてもいいかもしれません。
あと2018年の資料ですが、ファイル分割したりAccessのデータベースに
データを外出しすると軽くなるかも、みたいな話もあります。
https://atmarkit.itmedia.co.jp/ait/articles/1712/01/news152.html
完成品の基準値とか縫いの威力とか乱数とかのマスタデータは外出し
してもいいかもですね。
質問文に書いてありませんが、PCのスペックとか、Excelファイルの
データ量なんかの情報もあると「使ってるPCしょぼいんじゃないの」
みたいな心配をしなくてすみます。
参考までに。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
#1
TakaiY様
回答ありがとうございます。
稚拙な文となってしまい大変申し訳ありません。
アナログの部分と言うのは、総当たりで結果を計算し、それをExcelに読み込ませ参照している。と言う流れになります。
例として
A:20 B:30 C:40
D:50 D:50 D:50
という決まった数字に近付けさせるミニゲームがあり、特技やランダム会心率(実際には内部的に数値化されている会心率)の組み合わせをいくつもサンプリングして、現在の数字を入力することで確率的に最適な答えを表示させる。というやり方をしております。
Excelマクロの部分に置いては「ボタンを押したらクリア」や「ボタンを押したら最適手順を表示」と言う程度です。
実際には、詰将棋の樹形図の様な形で無計画にExcelページを作ってしまったため、それを整理する目的で今回プログラミング言語を使ってソフトウェアとして作れれば、と考えております。
スマホアプリやフリーソフトウェアとして公開する予定は無く、自分が使えればいいや。程度のものを考えておりました。
しかしながら、どうせ作るならコマンドプロンプトやらでにらめっこしながらやるよりも、皆々様が作られているフリーソフトの様にexeファイルで、しっかりとした様式で完成させる事が出来れば、自分自身のスキルアップにも繋がると思い相談させて頂きました。
#2
poto568様
回答ありがとうございます。
言葉足らずで申し訳ありません。VBAで本格的にコードを書いて…と言うよりは、ネットにあるコードを若干いじりながら補助的に使わせて頂いているため、VBAの知識は皆無に等しいです。
またRuby言語自体、14,5年前にブラウザゲー厶(バトルロワイヤル系やグリードアイランド系)で使用したきり「これこれこう言うことは出来る」程度でしか今は知識を持ち合わせておりません。
また、初心者タグをつけさせて頂き、アドバイスとして質問を建てさせていただいたことから状況を伺えるかと思いますが、今保持しているデータを活用して更に自分に対してユーザビリティが高い物に昇華させるためにはどの様な言語が良いか、と言う質問に対して「言語を習得しているのであれば、全てのデータが出揃っているなら見ながら出来るのが普通」と思われるのは心外です。
また、「かじった程度」と表現をさせて頂きましたが、より詳細に経緯をお話するとRuby言語を覚える際C等にも触れたこともあります。
同じ様で同じでは無い構文がいくつかあるのは承知しております。
もちろん、言語によって転用出来る物もありますが「作るもの」が変わればまた別の分野での理解を深めるのが一般的な考えでは無いでしょうか?
また、環境構築の部分等に於いてはあえて触れていなかった為、パソコンのスペック等々の問題を一番に例として挙げるのは正しいかと思われますが、仮に例に挙げた「エクセルファイルの容量」等を情報として掲載しても「中身のデータの参照の仕方次第」でいかようにも動作が重くなると言う要因は考えられると判断し、掲載を取りやめておりました。
ACCESSなどはリスト化では非常に使いやすく重宝しておりましたが、現在の使用用途となると「見えている数字を計算し出力する」という使い方では今のままExcel使用が妥当だと思われますが、それでもACCESSにデータの一部を出力させ、それをExcelで読み込む方が早くなるのであればそちらも検討してみます。
最後に、決してこちらの質問で全ての問題を解決すると言う甘い考えでお話したつもりは御座いません。
自身の質問の仕方にも不明瞭な部分があり、回答者のお二方には大変ご迷惑をお掛けしてしまいましたが、あくまで「データベース参照」や「今あるデータを使い、それをExcel内で行っていた事」を別言語に切り替えてより適している言語は何がオススメでしょうか、と言う内容になります。
Google等で同様の検索は既に行いましたが、出来る事の幅がより広かった物がPythonやC++だったと言う事しか絞り込む事が出来ませんでした。
Cであればより多言語にもシフトしやすい、Pythonなら画像を含めたディープラーニング等、やりやすい環境を整えやすいと言う点で候補に挙げさせて頂いておりました。
重ね重ね申し上げますが、ステップアップの為に言語習得するなら皆様が経験された足跡を私も辿ろうと思いご質問させて頂いたまでですので、もう少し考えてみます。
ありがとうございました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア14001
投稿2023/03/09 14:44
編集2023/03/10 01:16募集者が気分を害されてしまったようなので削除します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア28671
投稿2023/03/10 00:21
編集2023/03/10 00:22ああ、言い忘れましたけど、あなたの聖人さんですが、よく読めば自分は文盲の質問者のせいで心が壊れた回答者だと言っているのがわかると思いますよ。
https://qiita.com/miyabisun/items/0f386848a119c74471f4
長文を読める人と読めない人に別々の意味が伝わるテクニックで書かれています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
#4
TakaiY様
いえ、まず質問の仕方が間違っていたとも理解している為、問題ありません。
私の方こそ大変失礼致しました。
#5
#6
Zuishin様
回答ありがとうございます。
Rubyが得意とは一言も申していないつもりです。他のお二方の様に改善の余地があると言う部分を指摘しながらも、その中でも「こう言う方法もある」と言う様な助言もして下さっています。
もちろん、言葉の伝え方や受け取り方次第でそれぞれ思う事はあるかと思います。
それに関して、こちらで暴言を吐いたつもりもありませんし、御教示して頂いた情報に対して心から感謝したつもりです。
あなたのその一部分のみ掻い摘んでただ攻撃したいと言う考えは社会人として恥ずべき物と思います。
外部の個人SNSへ誘導までして何がしたいのでしょうか?
SNSでの内容を見て頂ければ分かる通り、苦言を呈しておりますが、個人が分かる情報は何も書いておりませんよね?
あなたがした行為は、そのSNS利用者を含めこちらに回答して頂いた回答者様にも迷惑が掛かってしまった事を自覚して下さい。
個人的には名誉毀損として訴えたいレベルで不快ですので、該当URLを訂正出来ますか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア12038
投稿2023/03/10 05:47
編集2023/03/10 05:52話の内容が明確にわかりませんが,使う言語等に候補があり迷っている(?)とかであれば,
「それぞれでちょっとだけやってみて,感触を得てみる」のが良いのではないでしょうか.
作る物が
(1)ユーザが状態を入力 → (2)何かしらの計算が走る → (3)結果が表示される
という動作フローなのだとして…
(2)の純然たる計算処理部分というのは,どんな言語で書こうが 処理アルゴリズムやデータ量等は同じ なのでしょうから,
そのツール(?)を作るうえでの面倒さが 作るのに使う物によって大きく変わる部分 というのは実は (1) や (3) だったりするのかもしれません.
なので(?),とりあえず最初は上記(2)の部分については何かしらの小規模なダミー的な内容(実際の問題のごく一部分のみ,だとか,あるいは実際の物を模したような何か)にでもしておいて,とにかく入力から出力までが一通り動作する状態を作ってみるのが良いのではないでしょうか.
で,たまたま最初に試した物で十分いけそうであればそのまま続けて作れば良いかもしれませんし,「コレで作るのは 労力がかかりすぎる/難しすぎる/etc」だとか,そういうことが見えてくれば,その経験に基づいて別のを選んで試してみる…みたいな.
※もちろん,(2)の演算部分が「自分で実装するには高難易なアルゴリズムを必要とする」だとかそういう場合には,「こっちのやつだとそれ系の部分で使えるライブラリがある」みたいな面も重要な選択理由となり得る.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#13
総合スコア28671
投稿2023/03/10 06:07
編集2023/03/10 06:10あのすみませんが、なぜ私のTwitterに固執するのでしょうか…。
「あなたの」なんですか?
私を脅迫したことについて謝罪がありませんが、それはあなたにとって何でもない日常風景だから気にもとめていないということですか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#14
#12
#13
Twitterはあくまで、私個人の意見を書くツールと考えておりTwitterのプライバシーポリシーに沿って個人を攻撃した内容は投稿しておりません。
また脅迫と仰っしゃりましたが、意図しない形で個人情報を含む情報を不特定多数が特定出来る形で公開した場合、名誉毀損にはあたります。
名誉毀損は厳密には親告罪ではありませんが、その権利は私が保持しています。
これを行使するつもりは現時点ではありません。出来れば両者穏便に事を済ませられればと思います。
本音で話をすれば上記です。
しかしながら、陰口を見たことによってZuishin様が「teratail」と「今回解答して下さった方」に失礼と判断した上での行動であれば理解出来ます。
どの様に謝罪をすれば宜しいでしょうか?
もしくは、該当ツイートを削除も可能です。
御検討宜しくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#17
総合スコア28671
投稿2023/03/13 03:55
編集2023/03/14 02:18何分無知な故、上記の内容に適した言語・もしくはオススメの書籍等御教示頂けないでしょうか?
無知な人におすすめの書籍はありません。
もし謙遜なのであれば、どの程度知っているのか、ツイッターではなくここで、具体的に書くのが良いでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。