【解説】1000枚のオリカを作る

  • 1125/09/29(月) 18:34:27

    AIを酷使しオリジナルカードゲームでカードを1000枚作ります
    ゼアル始まるまでに解説を終えなければいけない

  • 2125/09/29(月) 18:36:48

    事の発端はこのスレ

    個人的にこういうカードゲームがあったらいいなっていうモノなんだけど|あにまん掲示板DCGカードの種類が文字通り星の数ほどあって、デッキ制作の再現性がほぼ皆無パックを開けても開けても同じカードが出てくることはない(ただし一度手に入れたカードはポイントで複製可能)一期一会で出会ったカー…bbs.animanch.com

    自分はこのスレの1ではないけど、「カードがすごいいっぱいあるカードゲーム」ってのはちょっと面白く思った

    しかしカードをたくさん作るのは時間がかかるので、どうにかしてプログラムで作れるようにしたい

    そう考えてpythonを取り出した

  • 3125/09/29(月) 18:38:10
  • 4125/09/29(月) 18:41:16

    まずはカードゲームのルールを作ろう
    ここは重要じゃないのでさっさと決めてAIに要約を頼んだのがこちら
    モンスターの戦闘ルールとかバトルフェイズ云々を決めるの面倒だから呪文だけしかないカードゲームを作ることにする


    ルール概要(最新版)
    デッキ:10種×3枚=30枚
    初期手札:4枚
    ライフ:30(上限30)

    ターン進行
    スタート:1ドロー、マナ+3(後攻初ターンのみ+4)。未使用マナは持ち越し可能。
    メイン:マナを支払い魔法カードを使用、効果解決後墓地へ。
    エンド:ターン終了。

    その他
    山札切れ時は墓地を山札に戻してシャッフル。
    相手のライフを0にしたら勝利。

  • 5125/09/29(月) 18:49:43

    次にpythonくんにカードの画像を書いてもらう
    テキストファイルに別途カード名とか効果を書いておいて、それをjpg画像にしてもらうというプログラムをAIで作る

  • 6125/09/29(月) 18:51:10

    右上にコスト、左上に名前、中央にカードテキスト、右下に呪文属性としか位置を指定していなくても、こんな感じにカード情報を配置して書いてくれた
    かなりいい感じ

  • 7二次元好きの匿名さん25/09/29(月) 18:54:11

    python君でカード画像作れるんだ
    勉強がてらにやってるのかな?

  • 8125/09/29(月) 18:54:49

    次に、コストと効果テキストの組み合わせを自動で作ってくれるプログラムをAIに出してもらう
    こんな感じの長文の命令文により一発でちゃんと動くpythonプログラムを生成できた


    カードのテキストを自動で作るプログラムを作る。手順はこう。
    まず最初にcardtext.txtを作る。
    ①1-8の中の数字1つを選ぶ。それはカードのコストである。
    ②コスト×100の「ポイント」を得る。
    ③乱数によって数字を2個選択。

    乱数は効果を選択する。効果には効果ポイントが割り振られている。例えば

    乱数:3
    効果ポイント:50
    効果テキスト:相手に2ダメージ。

    と言う風に。乱数を2個選択するので、カード1枚あたりには効果テキストが2個ある。

    ④乱数によって設定された効果の効果ポイントの合計が、②で得られた「効果ポイント」と10以上の差がある場合、③からやり直す。もし無い場合は、選んだ効果の効果テキスト2つをつなげた文字列をカードの効果テキストとし続行。

    ⑤魔法系統を決定。「火魔法」「水魔法」「地魔法」「風魔法」の4種類からランダムに1つを選んで決定。

    ⑥今、カードのコスト、効果テキスト、魔法系統を決定した。カード名は「仮」とする。cardtext.txtの1~4行目にこれの結果を書き込む。

    ⑦以降同様にして2枚め、3枚め…とカードを作成し、5行目以降に情報を書き込む。100行目まで作成すること。

  • 9125/09/29(月) 18:58:15

    カードのコストをランダムにまず決めてから
    効果を数値で表して予めプログラムに登録し、そこから2つ引っ張ってコストに見合った効果になるように自動調節してくれる

    これでカードの生成と、カード効果の生成の双方がうまくいった

  • 10125/09/29(月) 19:01:18

    そうして大体1分で1000枚のカードの作成が完了した

    プログラム自体は1時間、効果をたくさん(100個)考えるのに1時間半

    計だいたい3時間


    >>7

    プログラムはAI出力から変数以外弄ってないので勉強にはならないけど思考実験として

    実際これプレイしてどうなるか試して見たさもあるし

  • 11125/09/29(月) 19:08:12

    実行速度から考えると1万枚カードを作っても10分かからず、300MB程度のデータでしかないから作れる
    カード名はもう考えるのがめんどくさいので使う人が勝手に名前を考えていいことにすれば簡単だ

    しかしプレイ環境をどうするかだけが課題かな…discordかudonariumあたりか
    おしまい

オススメ

このスレッドは過去ログ倉庫に格納されています