パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

常に一番イヤなブロックが落ちてくるテトリス「Hatetris」 」記事へのコメント

  • by Anonymous Coward

    プレイしてみましたが、乱数要素がなさそうなので、詰め将棋に近いものがありますね。
    一手読みしかしてないみたいですし、上手く考えればアルゴリズムを引っ掛けられるかも

    • Re: (スコア:3, 参考になる)

      30分程頑張ってみたけど11linesが限界なので、軽くソースを読んでみました。

      > 一手読みしかしてないみたい
      機能は殺されているようですが、沢山読めるようにはなっているみたいですね。
      startGame(1)で「三手の読み」startGame(2)で「五手の読み」・・・。

      HTML上ののエントリポイント(ここで0を入れてstartGame()を呼んでいるので深読みしない)
      <span class="button" onclick="startGame(0);">start new game</span><br />

      以下はjavascriptのソースより。コメントは私の追加。

      var searchDepth; // グローバル変数

      function startGame(thisSearchDepth) {
      ...
      searc
      --
      Best regards, でぃーすけ
      • Re: (スコア:2, 参考になる)

        startGame(1)はまだ動きますが、startGame(2)はもはや動かなくて実用になりませんでした。
        --
        Best regards, でぃーすけ
        • by Anonymous Coward

          まあ実用レベルになるのも時間の問題だろうけどね。
          #そもそも将棋やチェスの世界観からすれば、一手に3分くらいは許容範囲な気もする。

          それとブラウザは何を使ったの?
          JavaScriptエンジンによって性能は随分違うはずだけど。

          • by Deasuke (34806) on 2010年05月04日 10時02分 (#1758475) 日記
            アルゴリズムがしょぼすぎてお話になりません。現状アルゴリズムだとO(数百のn乗)なのでアルゴリズムを進化させる必要があります。
            主な改善点は下記の通り。

            ・現状は"O"テトロミノのように回転しても変化しないブロックも回転させている
             (ブロックの位置のhashCode()を計算しているがこれらを区別している)
             →これを改善すると数百という数字が何とかなると思う
            ・dfpnないしはdfpn+を採用
             →これで問題のない時間である程度の手を読めるようになると思います。
            --
            Best regards, でぃーすけ
            親コメント
            • by Anonymous Coward

              >・dfpnないしはdfpn+を採用
              この場合「詰んだ」条件て何?

              • by Deasuke (34806) on 2010年05月04日 13時41分 (#1758533) 日記
                > この場合「詰んだ」条件て何?
                お望みの条件を「詰み」と定義すれば良いと思います。

                例えば現状、私は手で30ライン消す方法を発見しています(#1758529参照)から、31ライン消すことを「詰み」と定義してdfpnを適用してみるのはありかと。
                (31ライン消した時点で途中でも「詰み」とします)
                この場合もちろん「不詰」は「30ライン以下でゲームオーバーになること」となります。

                これで「不詰」が証明されたりすると私の方法が最適(の一つ)であることが分かりますし、31ラインの方法が発見されれば今度は32ラインを「詰み」と定義して繰り返す訳です。

                dfpn+の場合の評価関数としては別のところでも挙げましたが、(ライン数/積み段数)がパラメータとして利用できるのではないかと考えます。
                --
                Best regards, でぃーすけ
                親コメント
              • すいません。30ライン消せているのは今のアルゴリズムがヘボいからなので、もっと少ないライン数から始めないと駄目ですね。
                しかし「詰み」の条件も反復進化させれば良い、という意味での議論の大筋には変化ありません。
                --
                Best regards, でぃーすけ
                親コメント

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

処理中...