🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

874閲覧

属性の勝ち負けのプログラム(ポケモン)

kousuke.py

総合スコア5

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/10/22 14:49

編集2019/10/23 02:39

jupyterで、ポケモンを2体対戦させた時の勝ち負けを判断するように学習させたいのですが、判断材料は、属性と個体値の合計を比べた物にしたいと思っています。
どうすれば良いでしょうか

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

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

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

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

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

hermit19901127

2019/10/22 15:19 編集

そもそも、Pythonを学習仕立てと見受けられますが ・ポケモン2体の定義(Classで定義しましょう) ・そのポケモンの「属性の定義」 ・属性を定義するための「enum宣言」 ・その「enum」も駆使した「二次元配列」の構築 こちらのほう、学んだほうがよいと思う所存です…。 主の目的を達成する場合、Pythonにおける、この学が必要となります…
hermit19901127

2019/10/22 15:21

恐らくですが、ちょっとギャグ的というか、Undertale的に表現しましょうか… * あなたは コーディングのフェーズを強いられている そのような状態です。 先ほど、csvをどうこうしてましたが、それは「データを読み込んだだけ」だと思います。 そのデータを「コーディング」でどうにしかしないといけない段階にある次第だと思います…
hermit19901127

2019/10/22 15:23

軽くヒントですが、あなたは「ポケモン」クラスを定義する必要があります。 そのポケモンには、現状「属性」の定義が必要になるでしょう。 そのうえで、そのポケモンをインスタンスとして「2体」newする必要があります。 ここまで出来たら、属性による攻防の処理の定義が始められます。 あなたが学ぶべきは、最低限のコーディングによる、「enum」と「class」の定義と「インスタンスの作り方」になる印象です…
guest

回答2

0

タグと「学習」という言葉から察するに,

  • ポケモンとやらを「属性」と「個体値」で表現する

詳しくわからんけども,「属性」も1つのパラメータとして数値で表現すれば良いのでは.

  • 2体のポケモン{A,B}が戦うとどっちが勝つのか,というデータを教師データとしてたくさん用意する
  • 学習器に学ばせる

みたいなことをするんじゃないですかね.きっと.

投稿2019/10/23 01:29

fana

総合スコア11985

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

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

kousuke.py

2019/10/23 01:41

いいアイデアをありがとうございます、活用していきたいと思います
fana

2019/10/23 01:53

「個体値」とやらでググってきたけど,同じ種類のポケモンでも微妙にパラメータの差があるという話ですかね. で,その微妙な差が勝敗を分けるという話(?)なのであれば,教師データには「個体値」の差によって勝ち負けが逆転するようなパターンを適当に相当数含ませておく必要がある気がしますね.
guest

0

ベストアンサー

属性なら、二次元配列で定義して、そこに倍率を定義するのがよろしいかと…

「攻撃する側に対する防御側のテーブル」が必要です。

たとえば、「攻撃する側に対する防御側のテーブル」で考えると、
「電気ショック」を「水タイプに浴びせる場合」
二次元配列で辿ると、「電気」の列に「水」の行があり、そこには2.0の数値があるので、
攻撃力に、その2.0を乗算すればいいのです。

攻撃を受ける側が2タイプあると、アルゴリズムが変わるので、
まずは「1タイプのみ」で考えるのが賢明かと存じます…。

まずはそのシステムを完成させてから「個体値」などを考慮すればよいかと思います。
ポケモンのような、数字の殴り合いのゲームを再現するのは、一筋縄ではいかないと存じます…。

投稿2019/10/22 15:08

編集2019/10/22 15:10
hermit19901127

総合スコア368

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

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

kousuke.py

2019/10/23 01:00

一応僕が作りたいのはゲームではなくポケモン2体を比べてどっちが勝つかというものを作りたいと思っています
hermit19901127

2019/10/23 14:39

ベストアンサーを頂きかつ、すでに終わってる状態なので、恐縮ですが、一応最低限のポケモンの知識として 「どっちが勝つか」と言う計算機能を作ると ・属性 ・個体値 以外に、命中率もそうですし、「相手の一撃必殺を防御する」スキル等も考慮する事になると思います…。 端的に申し上げると、「属性」「個体値」だけでシミュレーターを作ると、「命中率」や「一撃必殺防止のスキル」等が考慮されない為 常に相手より先に動けて「ぜったいれいど(ツノドリルやハサミギロチンはゴーストに無効の為…)」を連発したヤツが勝つ、地獄絵図の環境になるかと思われます…。 見た目的には単純に見えるポケモンの論理計算も、実はスキル等のイレギュラー系が多く、とても複雑です…が、 その複雑さを乗り越えて常に最新のポケモンシミュレーターを作ることができれば、貴殿がポケモン界隈のプログラマー枠として時の人になれるとは思います。 以外に
kousuke.py

2019/10/23 15:04

やっぱりできればすごいですよね!時間をかけていいものを作れるように頑張ります
hermit19901127

2019/10/23 15:11

ツイッターでも若干言ってたのですが… 「ポケモンの弱点相性」「ステータス値」「複合タイプが無い」「努力値」「個体値(初代ポケモンはこのパラメータがございますでしょうか…?)程度しか能力の差分を示す要素が無い」しかない「初代環境」のシミュレーターなら いささか作りやすいと思う次第であります… 初代のデータを再現した後に、後から追加された概念を追実装するアプローチはいかがでしょうか… 最初からポケモンのスキルのようなイレギュラーまで考慮したら、おそらく最低限が実現する前に、やる気が無くなるのを危惧する次第です…。 プログラムに必要なのは「目標に確実に近づいてる確信」だと思う次第です…。
hermit19901127

2019/10/23 15:15

個人的に「努力値、個体値、技」等、全てを適用した上でパーティーに入れたいポケモン6体を指定して、仮想敵を指定したり、現環境ではやってる構成を抽出した6体を相手に、1000回ぐらい相手にした体で計算し、勝てる計算に至った回数等を独自アルゴリズムで検算して導くエミュレーター等を作ると面白そうだなと思う次第です…。
hermit19901127

2019/10/23 15:17

囲碁の世界でも、AlphaGoみたいに、囲碁のプロをAIが打ち負かすような時代はすでに訪れてるので、ポケモンのプロをAIが打ち倒すような時代が来てもおかしくないかもしれませんね。 kousukeさんがそのパイオニアになるのも面白そうだと思う次第です…。
hermit19901127

2019/10/23 15:18

思い出しましたが、pythonは機械学習や深層学習に強い分野なので、そういうAIの開発には強いと思う次第です…
kousuke.py

2019/10/24 06:31

いろいろな意見をありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問