• ベストアンサー

ぷよぷよの消去アルゴリズムがわかりません

javascriptでぷよぷよを作っているのですが、ぷよが4個以上そろうと消去されるというアルゴリズムがわかりません。windowsプログラミング研究所というサイトに載っているアルゴリズムでは、オーバーフロウを起こしてしまいます。どなたか、オーバーフロウを起こさないようなアルゴリズムもしくはそのようなアルゴリズムが載っているサイトを教えていただけませんか。

  • 117m
  • お礼率100% (2/2)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

今書いているプログラムを示してもらった方が 良いような気がしますが、 勝手な予想を書けば、オーバーフローが起こる原因は、 一度調べたブロックを何度も調べていることで 無限ループが起きているんじゃないかと思います。 (x,y) -> (x-1,y) -> (x-1+1,y) のように、右を見て、その左を見て、としてしまうと 最初に戻ってしまうということはないでしょうか? 位置と色とを対応づける配列以外に その位置を調べたかを記録する配列を用意したらどうだろうと思います。

117m
質問者

お礼

回答していただいてありがとうございます。アドバイスを参考に、もう一度やり直してみたいと思います。

関連するQ&A

  • アルゴリズムについて

    最近プログラミングに興味を持ち出して勉強しているんですが、探索とかでいろんなアルゴリズムが出てきてプログラムで説明がしてあり、あまり理解できません。  図などで分かりやすくアルゴリズムについて説明しているサイトや、お勧めの文献があったら教えてください。お願いします。

  • アルゴリズムについて

    あるプログラミングのテストでソートのアルゴリズムを書けというお題が出ました。 残念ながらアルゴリズムをいちいち覚えていなかったので回答を書けなかったんですが、皆さんは例えばクイックソートのアルゴリズムを書けと言われたら書けますか? やっぱり覚えておくべきなんでしょうか?

  • 量子アルゴリズムについて

    今、量子アルゴリズムの代表として挙げられているGroverアルゴリズムがあるのですが、そのアルゴリズムのプログラミングを作るのに手間取っています。 わがままなお願いですが、Groverアルゴリズムのプログラミングを教えてください(または、そのプログラミングをください。)。 それが無理ならば、プログラミングのヒントを教えてください。 P.S.努力が足りないと思はれるかもしれないが、提出期限まで残り2か月なのでなんとかしたいです。おねがいします。

  • 翻訳アルゴリズムのソースコード

    大学4年で自然言語処理について研究しているものです。 現在、webサイトを対象とした翻訳の精度向上に関する研究をしています。そこで機械翻訳のプログラミングをしたいのですが一からプログラムするのは時間がかかってしまうのでインターネットで公開されている翻訳のソースコードをしようと考えています。 どなたかもしよろしければインターネットで翻訳アルゴリズムのソースコードを公開しているサイトを知っている方いらっしゃいましたら教えていただけないでしょうか?

  • プログラミングにおけるアルゴリズムって、

    プログラミングにおけるアルゴリズムって、 目的に沿うように、いくつかの単純な命令を組み合わせているものですよね? リニアサーチや、バイナリサーチなどの アルゴリズムの型のようなものがありますが、 目的に沿えば、自分で命令を組み合わせアルゴリズムを作ることは可能でしょうか?

  • 定番アルゴリズムを知らないとどう問題が起きる?

    プログラミングにおいて、最低限の定番アルゴリズムを知っておいたほうが良いと言われますが、アルゴリズムの考案において最低限の定番アルゴリズムを知っておかないと現場とかでどういった問題が起きると思われますか? 逆に(最低限の)定番アルゴリズムを知っておくと何が嬉しいのでしょうか? 例えば、「時間がかかる」とか「肥大化しがち」とかです。 よろしくお願いします

  • 遺伝的アルゴリズムの研究について

    私は大学で遺伝的アルゴリズムを使って何か研究テーマとして扱おうと思っています。特に、人工知能の分野を扱ってみたいと考えています。 例えば、​http://www.nicovideo.jp/watch/sm6392515(​要アカウント) のような運動学習などがおもしろいと考えているのですが、どういう研究テーマにすればいいか、研究として扱うにはどうすればいいか悩んでいます。 どなたか知恵を貸していただけないでしょうか。 また、このほかに遺伝的アルゴリズムを使っての研究テーマでお勧めやらこういうのもあるよなどもあげられていただけたらと思います。 よろしくお願いします。

  • 遺伝的アルゴリズム

    10個の荷物(1.0キログラム、5.0、2.0、…etc)が一つずつあるとして、それらの荷物を一つずつリュックサックに入れるとき、総重量が30キロを越えないようにしたい、という問題を遺伝的アルゴリズムでプログラミングしたいのですが、その荷物を入れる場合は1、入れない場合は0というようにする場合、どうプログラミングすればよいのでしょうか。どうしても分からないので、プログラムをそのまま記述して頂けると非常にありがたいです。よろしくお願いします。

  • 暗号化・復号化のアルゴリズムにはどんなものがありますか?

    Cでプログラミングを勉強しており、20文字ほどの文字列を暗号化・復号化するプログラムを考えていますが、ネットを検索しても暗号化アルゴリズムでなかなかいいものが見つかりません。 私のリクエストとしては ・暗号化対象は半角英数字、半角記号のみ。 ・単に文字コードを1つずつずらしたような簡単な暗号ではなく、複雑なアルゴリズムを使用したい。 ・アルゴリズムは複雑でもプログラムは簡潔にできるものがいい。(長くても数百行程度)。 ・アルゴリズム自体の仕様が公開されている。 ・アルゴリズムは数学式で表せるものがいい。 ・スーパーコンピュータを使わなければ解けないほど時間がかかる暗号化アルゴリズムでなくてもいい。 ・暗号化のライブラリファイルは使わず、自前で全部コードを書きたい。 ・公開鍵や秘密鍵を使わなくてもいい。 上記の条件を満たす暗号化アルゴリズムでいいものがありましたら、教えてください。 以上、よろしくお願いします。

  • diffのアルゴリズムについて詳しく書いてあるページを教えてくれませんでしょうか。

    現在私はjavaScriptで2つの文字列を比べて その差分を取れるようなプログラムを書きたいのです。 そこでdiffのアルゴリズムをパクれば(失礼) とてもスマートなものが出来上がるのではないだろうかと 期待してgoogle使って検索してみたりしたのですが、 diffのアルゴリズムらしきもの見つかりませんでした。 そこでどなたかdiffのアルゴリズムについて書かれたURLを 教えていただけないでしょうか? (・・・できるだけ日本語のページが良いのですが・・・)

専門家に質問してみよう