質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

意見交換

クローズ

18回答

2987閲覧

とあるオンラインゲームにおいて、今アナログで行っている事をプログラミング言語を使用して分かりやすくしたい。

Tahkun

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/03/09 05:59

0

0

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • ドラゴンクエストXでの裁縫職人のミニゲームにおいて、状態を入力すると「現時点での最善手」が出る様にしたい。

前提

今までExcelなどで手順をまとめており、すべてではありませんが殆どの手順を書き記してExcelのセルに現在の数字を入力すると「今ここに〇〇をすると62%の確率で規定数値に収まる」様なデータ取りを行っておりました。

Ruby等は過去に学習したのですが、その際はブラウザゲーの作成に多少かじった程度で、他の言語についてあまり詳しくありません。

イメージとしてはチェスなどの詰将棋の計算の部分をアナログから言語を使ってステップアップしようと考えております。

発生している問題・エラーメッセージ

・様々なサイトを閲覧してみましたが、内容的にはPythonが最も適しているかと推測してはいますが、C++などの方が適しているのでしょうか?

現在、多くの情報をひとつのExcelファイルに入れてしまっているため、そのファイルを開く・マクロを起動するだけでもかなり動作が重くなり辟易しております…。

最終的には、ソフトウェアとしてコンパイルしたいと考えておりますが、何分無知な故、上記の内容に適した言語・もしくはオススメの書籍等御教示頂けないでしょうか?

宜しくお願いします。

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答18

#1

TakaiY

総合スコア12765

投稿2023/03/09 06:49

編集2023/03/10 01:17

募集者の気分を害しててしまったようなので削除します。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

poto568

総合スコア258

投稿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

Tahkun

総合スコア2

投稿2023/03/09 11:16

#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

TakaiY

総合スコア12765

投稿2023/03/09 14:44

編集2023/03/10 01:16

募集者が気分を害されてしまったようなので削除します。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

Zuishin

総合スコア28660

投稿2023/03/09 23:43

それぞれの言語で得意分野が違うので、どの言語が適しているかという問いに答えるなら、実際に何をやっているかを聞かなければどうにもなりません。

そんなにイライラしてる間に得意の Ruby で作ればいいんじゃないですかね。

●●●●

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

Zuishin

総合スコア28660

投稿2023/03/10 00:21

編集2023/03/10 00:22

ああ、言い忘れましたけど、あなたの聖人さんですが、よく読めば自分は文盲の質問者のせいで心が壊れた回答者だと言っているのがわかると思いますよ。

https://qiita.com/miyabisun/items/0f386848a119c74471f4

長文を読める人と読めない人に別々の意味が伝わるテクニックで書かれています。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

Tahkun

総合スコア2

投稿2023/03/10 04:38

#4
TakaiY様
いえ、まず質問の仕方が間違っていたとも理解している為、問題ありません。
私の方こそ大変失礼致しました。

#5
#6
Zuishin様
回答ありがとうございます。
Rubyが得意とは一言も申していないつもりです。他のお二方の様に改善の余地があると言う部分を指摘しながらも、その中でも「こう言う方法もある」と言う様な助言もして下さっています。
もちろん、言葉の伝え方や受け取り方次第でそれぞれ思う事はあるかと思います。
それに関して、こちらで暴言を吐いたつもりもありませんし、御教示して頂いた情報に対して心から感謝したつもりです。

あなたのその一部分のみ掻い摘んでただ攻撃したいと言う考えは社会人として恥ずべき物と思います。
外部の個人SNSへ誘導までして何がしたいのでしょうか?
SNSでの内容を見て頂ければ分かる通り、苦言を呈しておりますが、個人が分かる情報は何も書いておりませんよね?
あなたがした行為は、そのSNS利用者を含めこちらに回答して頂いた回答者様にも迷惑が掛かってしまった事を自覚して下さい。

個人的には名誉毀損として訴えたいレベルで不快ですので、該当URLを訂正出来ますか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

fana

総合スコア11658

投稿2023/03/10 05:47

編集2023/03/10 05:52

話の内容が明確にわかりませんが,使う言語等に候補があり迷っている(?)とかであれば,
「それぞれでちょっとだけやってみて,感触を得てみる」のが良いのではないでしょうか.
作る物が

(1)ユーザが状態を入力 → (2)何かしらの計算が走る → (3)結果が表示される

という動作フローなのだとして…

(2)の純然たる計算処理部分というのは,どんな言語で書こうが 処理アルゴリズムやデータ量等は同じ なのでしょうから,
そのツール(?)を作るうえでの面倒さが 作るのに使う物によって大きく変わる部分 というのは実は (1) や (3) だったりするのかもしれません.

なので(?),とりあえず最初は上記(2)の部分については何かしらの小規模なダミー的な内容(実際の問題のごく一部分のみ,だとか,あるいは実際の物を模したような何か)にでもしておいて,とにかく入力から出力までが一通り動作する状態を作ってみるのが良いのではないでしょうか.
で,たまたま最初に試した物で十分いけそうであればそのまま続けて作れば良いかもしれませんし,「コレで作るのは 労力がかかりすぎる/難しすぎる/etc」だとか,そういうことが見えてくれば,その経験に基づいて別のを選んで試してみる…みたいな.


※もちろん,(2)の演算部分が「自分で実装するには高難易なアルゴリズムを必要とする」だとかそういう場合には,「こっちのやつだとそれ系の部分で使えるライブラリがある」みたいな面も重要な選択理由となり得る.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

Zuishin

総合スコア28660

投稿2023/03/10 05:55

●●●●

それはお気の毒に。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

Tahkun

総合スコア2

投稿2023/03/10 06:00

#8
fana様
出した情報が少ない中でありながら、回答ありがとうございます。
仰る通り、今あるものを大規模制作で考えておりましたので、まずは小規模の同じモデルの物を言語拘らず試してみたいと思います。
言語によっての癖も経験した上で、本格始動の為の言語を選んでみようと思います。
スレッドが荒れてしまった状態にも関わらず回答頂き本当にありがとうございます。

また、他の回答者様にも私が無知が故に気分を害してしまい大変申し訳ありませんでした。
もう少し今ある情報でトライアンドエラーを愉しみたいと思います。

ありがとうございました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#11

Tahkun

総合スコア2

投稿2023/03/10 06:06

#9
あのすみませんが、なぜ私のTwitterに固執するのでしょうか…。
何か最初に私の方から失礼な事をあなたに申し上げたのでしょうか?
それであれば、大変申し訳ありませんでした。
その上で再度お願いとなりますが、そちらのTwitterには私の個人情報も多く載っている物になります。
また、このような形で公開するつもりは無いので、該当箇所を削除して頂けますか?

宜しくお願いします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#12

Zuishin

総合スコア28660

投稿2023/03/10 06:07

無知が故にじゃなく、陰で好き放題言ったからですよ。
そこを間違えてはいけません。
そういう「自分が無知だからマウントを取られてるんだ」という変な被害者意識がありますね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#13

Zuishin

総合スコア28660

投稿2023/03/10 06:07

編集2023/03/10 06:10

あのすみませんが、なぜ私のTwitterに固執するのでしょうか…。

「あなたの」なんですか?

私を脅迫したことについて謝罪がありませんが、それはあなたにとって何でもない日常風景だから気にもとめていないということですか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#14

Tahkun

総合スコア2

投稿2023/03/10 06:22

#12
#13
Twitterはあくまで、私個人の意見を書くツールと考えておりTwitterのプライバシーポリシーに沿って個人を攻撃した内容は投稿しておりません。
また脅迫と仰っしゃりましたが、意図しない形で個人情報を含む情報を不特定多数が特定出来る形で公開した場合、名誉毀損にはあたります。
名誉毀損は厳密には親告罪ではありませんが、その権利は私が保持しています。
これを行使するつもりは現時点ではありません。出来れば両者穏便に事を済ませられればと思います。

本音で話をすれば上記です。
しかしながら、陰口を見たことによってZuishin様が「teratail」と「今回解答して下さった方」に失礼と判断した上での行動であれば理解出来ます。

どの様に謝罪をすれば宜しいでしょうか?
もしくは、該当ツイートを削除も可能です。
御検討宜しくお願いします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#15

Zuishin

総合スコア28660

投稿2023/03/10 06:25

どのようにもこのようにも、まだ脅迫でどうにかなると思ってる人にまともな謝罪ができると思っていないので、塩対応を続けるだけです。

ツイッターが不特定多数が閲覧できるところだと思っていないのは驚きましたが、今の世の中、こう思っている人も珍しくないんでしょうね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#16

Tahkun

総合スコア2

投稿2023/03/10 06:38

編集2023/03/10 06:48

#15
承知致しました。
それではどうやっても折り合いが付かないと言うのは私にはどうしょうもない部分でありますので、teratail運営先のレバレジーズ株式会社様へ直接電話にて御連絡・御相談させて頂きました。
話し合いの折り合いがつかず非常に残念に思います。

それでは失礼します。

追記:
こちらで張れる予防線として名前を変更しました。
また問題が解決するまで該当Twitterをロックする形になりました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#17

Zuishin

総合スコア28660

投稿2023/03/13 03:55

編集2023/03/14 02:18

何分無知な故、上記の内容に適した言語・もしくはオススメの書籍等御教示頂けないでしょうか?

無知な人におすすめの書籍はありません。
もし謙遜なのであれば、どの程度知っているのか、ツイッターではなくここで、具体的に書くのが良いでしょう。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#18

Tahkun

総合スコア2

投稿2023/03/14 07:05

編集2023/03/14 07:44

#17
ありがとうございます。
私も現時点での自分のスキルを上手く言語化出来ない無知のため、いくつもの言語・書籍を辿ってから出直して来ます。
解答有難う御座いました。

追記
質問に関係無い解答と御指摘頂いた為追記します。
「ここで具体的に書くのが良いでしょう」と言う提案を頂きましたが、皆様の御意見や過去の質問等に再度目を通した所、まだ自分自身が質問出来るレベルでは無い為「プログラミング言語とは何か」と言う基礎的な部分から調べ直したいと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問