2011-09-02 5 views
3

안녕하세요 저는 PHP를 사용하여 점진적 맵을 생성하는 스크립트를 작성하는 데 며칠을 노력했습니다. 내가 달성하기 위해하지만 성공이 같은 것하려고 해요 : 무작위 임의의 번호를 추가 요컨대 enter image description herePHP 프로그레시브 맵 생성

내가 (예를 들어) XY에 5,6로 정의 된 "노드"가 "선수"의 "노드"에 가깝습니다. 여기에서 가장 가까운 "플레이어"를 노드에 연결하고 "플레이어"가 연결될 노드 (해당 노드에 대해 얼마나 많은 연결이 있는지, 최대 연결 수는 얼마인지 등)를 결정하는 기준 목록을 갖고 싶습니다. . 필자는 어떤 코드를 아직 작성하지 않았는데, 정확히 어디에서 시작해야할지 모르거나 시작해야하는 이유가 있기 때문에 필자는 PHP로 수학만으로는 그다지 훌륭하지 않다. Andy 아이디어 나 조언을 환영합니다.

+0

당신이 보여 주거나 실제로 그 이미지에 묘사 된 것처럼 작동하는 라우팅 메커니즘의 일부 유형을 생성하는 것과 같은 그래픽을 생성하려고합니까? – thwd

+0

단순한 게임을위한지도가 필요하지 않습니다. 청색 포인트는 플레이어이고 빨간 하나는 "노드"로, 인터넷 연결을 제공하는 노드가있는 컴퓨터 네트워크 또는 나머지 사용자와의 네트워크 연결을 생각할 수 있습니다. – Bogdan

+0

GDLib 기능을 사용하여 지도 그래픽을 생성하십시오. http://php.net/manual/en/ref.image.php – thwd

답변

1

음 개까지, 난 당신이 루트로 인터넷 제공자를 가진 네트워크의 토폴로지를 만들 생각합니다.

그럼, 가장 좋은 방법은 그래프를 만드는 것이라고 생각합니다. 루트는 빨간 점입니다. 그것에 연결된 선수보다. 이미 연결된 플레이어 등에 연결된 플레이어보다. 이 같은

뭔가 지금

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

. 그래프의 각 노드는 관련 정보를 가질 수 있습니다 : type : player | 노드 coordX : 5 coordY : 당신이 나무를 걸어 자신의 위치에, 당신은 연결을 기반으로 선을 그릴 수있는 기반 요소를 그릴 수 있다는 것을 의미한다지도를 표시 6 등 ...

.

토폴로지가주기를 반복하는 경우 player1이 player1에 연결된 player2에 연결된 player1은 player1에 연결되어 있으며 그래프 구조가 필요합니다.

트리/그래프 알고리즘, 구문 분석 방법 등에 관한 기사를 찾은 것보다 문제를 올바르게 설명하면 작업을 수행 할 수 있어야합니다.

+0

Dan 나는 graph algo를 보았을 것이고, 그때 나는 회신으로 돌아올 것이다 :-). 그리고 예, 빨간색 도트에서 시작하여 빨간색 점 (시각적 표현과 특정 점에 가까운 점을 선택하여 xy 맵에 있음)으로 시작하는 플레이어를 찾는 것입니다. – Bogdan

1

상호 작용하는 색 제거 기능을 갖춘 게임 보드 10 x 10을 만들었습니다.

배열을 사용하여 먼저 격자를 정의합니다. 아래는 100 개의 객체 슬롯이있는 배열을 만듭니다.

샘플 : http://apps.facebook.com/AnotherGrid/에서 게임하기 게임에 로그인하여 실제 그리드를 확인하십시오. 이 배열은 내 게임에 동적으로 1000 개의 격자를 생성합니다.

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

격자를 작성 및 표시 정의하는 CSS를 사용 :

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

는 전 사용으로 각 DIV 인라인 블록.

각각의 위치 지정은 배열 객체의 위치를 ​​기반으로합니다. = "0"> 것이 가장 먼저 광장 < DIV ID는 99

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

게임은 꽤 멋져 보인다 :-) – Bogdan

관련 문제