3

こんにちは私は数日間、PHPを使用してプログレッシブマップを生成するスクリプトを作成しようとしています。私が達成しようとしているが成功しなかったのは、次のようなものです。 ここに画像の説明を入力してください

要するに、(例として)xyで5,6として定義された「ノード」があり、「ノード」の近くにランダムな数の「プレーヤー」をランダムに追加します。ここから、「プレーヤー」がどのノードに接続されるかを決定する基準のリストを持ちながら、最も近い「プレーヤー」をノードに接続したいと思います(そのノードの接続数、接続の最大数など) 。数学はあまり得意ではないので、どこから始めればいいのか、何から始めればいいのかわからないので、まだコードを書いていません。アンディのアイデアやアドバイスはどんな助けでも歓迎します。

4

2 に答える 2

1

相互作用する色の除去でゲームボードを10x10にしました。

最初にグリッドを定義するために配列を使用します。以下は、100個のオブジェクトスロットを持つ配列を作成します。

サンプル:http ://apps.facebook.com/AnotherGrid/のゲーム ログインしてプレイし、グリッドの動作を確認してください。この配列は、私のゲーム用に1000グリッドを動的に生成します。

<?php
$lvl = array(
/* row0 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row1 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row2 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row3 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row4 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row5 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row6 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row7 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row8 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row9 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
);
?>

それから私は使用しました:

foreach ($lvl as $key => $value) {
echo '<div class="grid" id="'.$key.'"onclick="null">'.$value.'</div>';
}

グリッドを作成し、CSSを使用してdisplay:inline-blockを各divに定義しました。

それぞれの配置は、配列オブジェクトの位置に基づいています。<div id = "0">は、99までの最初の正方形になります。

<?php
$lvl = array(
/* row0 */'black', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row1 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row2 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row3 */' ', ' ', ' ', ' ', 'yellow', ' ', ' ', ' ', ' ', ' ',
/* row4 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row5 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row6 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row7 */' ', ' ', ' ', 'blue', ' ', ' ', ' ', 'green', ' ', ' ',
/* row8 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
/* row9 */' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
);
?>
于 2011-09-04T00:40:55.927 に答える
1

さて、あなたはインターネットプロバイダーをルートとして持つネットワークのトポロジーを作りたいと思います。

ですから、グラフを作成するのが一番いい方法だと思います。ルートは赤い点です。それに付けられたプレイヤーより。すでに接続されているプレーヤーなどに接続されているプレーヤーよりも。

このようなもの :

            *
         /  |  \
         O  O   O
       / |  |    |
      O  O  O    O

今。グラフの各ノードには、いくつかの情報を関連付けることができます。タイプ:プレーヤー| node coordX:5 coordY:6など..

マップを表示するということは、ツリーを歩き、それらの位置に基づいて要素を描画できることを意味します。接続に基づいて線を描画できます。

トポロジにサイクルが含まれている場合、つまり、player1がplayer2に接続され、player2がplayer3に接続されている場合、つまり、player1に接続されているplayer nは、グラフ構造が必要です。

私があなたの問題を正しく説明した場合、あなたはツリー/グラフアルゴリズム、それらを解析する方法などに関するいくつかの記事を見つけるはずであり、あなたの仕事をすることができるはずです。

于 2011-09-22T15:30:11.517 に答える