<?php
/*
Start by changing the layout of your map store to y coordinate first. ie
$map[$y][$x] rather than $map[$x][$y]. This make it easier to store rows of the
map though in this case we are just using basic arrays.
The next thing is to store integers in your map, not images, this will help when
you start to look at larger maps; consider what happens when you need a world
with 1,000x1,000 cells. Actually there are a lot of tricks to get around this;
sparse arrays, segmented maps etc.
*/
// Create blank map array [y][x]
// Plant a few trees
for ($i = 0; $i < (WIDTH * HEIGHT) / 15; $i++) {
}
// Translation table for integers to images
GRASS => 'grass.png',
TREE => 'tree.png',
);
// Display the map (Note that the \t and \n chars are simply for clarity)
echo '<table>' . "\n";
for ($y = 0; $y < HEIGHT; $y++)
{
echo "\t" . '<tr>' . "\n";
for ($x = 0; $x < WIDTH; $x++) {
echo "\t\t" . '<td><img src="' . $image[$map[$y][$x]] . '"></td>' . "\n";
}
echo "\t" . '</tr>' . "\n";
}
echo '</table>';
PD9waHAKLyoKU3RhcnQgYnkgY2hhbmdpbmcgdGhlIGxheW91dCBvZiB5b3VyIG1hcCBzdG9yZSB0byB5IGNvb3JkaW5hdGUgZmlyc3QuIGllCiRtYXBbJHldWyR4XSByYXRoZXIgdGhhbiAkbWFwWyR4XVskeV0uIFRoaXMgbWFrZSBpdCBlYXNpZXIgdG8gc3RvcmUgcm93cyBvZiB0aGUKbWFwIHRob3VnaCBpbiB0aGlzIGNhc2Ugd2UgYXJlIGp1c3QgdXNpbmcgYmFzaWMgYXJyYXlzLgoKVGhlIG5leHQgdGhpbmcgaXMgdG8gc3RvcmUgaW50ZWdlcnMgaW4geW91ciBtYXAsIG5vdCBpbWFnZXMsIHRoaXMgd2lsbCBoZWxwIHdoZW4KeW91IHN0YXJ0IHRvIGxvb2sgYXQgbGFyZ2VyIG1hcHM7IGNvbnNpZGVyIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBuZWVkIGEgd29ybGQKd2l0aCAxLDAwMHgxLDAwMCBjZWxscy4gQWN0dWFsbHkgdGhlcmUgYXJlIGEgbG90IG9mIHRyaWNrcyB0byBnZXQgYXJvdW5kIHRoaXM7CnNwYXJzZSBhcnJheXMsIHNlZ21lbnRlZCBtYXBzIGV0Yy4KKi8KCmRlZmluZSgnSEVJR0hUJywgMTApOwpkZWZpbmUoJ1dJRFRIJywgIDEwKTsKCmRlZmluZSgnR1JBU1MnLCAgIDApOwpkZWZpbmUoJ1RSRUUnLCAgICAxKTsKCi8vIENyZWF0ZSBibGFuayBtYXAgYXJyYXkgW3ldW3hdCiRtYXAgPSBhcnJheV9maWxsKDAsIEhFSUdIVCwgYXJyYXlfZmlsbCgwLCBXSURUSCwgR1JBU1MpKTsKCi8vIFBsYW50IGEgZmV3IHRyZWVzCmZvciAoJGkgPSAwOyAkaSA8IChXSURUSCAqIEhFSUdIVCkgLyAxNTsgJGkrKykgewoJJG1hcFsgbXRfcmFuZCgwLCBIRUlHSFQgLSAxKSBdWyBtdF9yYW5kKDAsIFdJRFRIIC0gMSkgXSA9IFRSRUU7Cn0KCi8vIFRyYW5zbGF0aW9uIHRhYmxlIGZvciBpbnRlZ2VycyB0byBpbWFnZXMKJGltYWdlID0gYXJyYXkoCiAgICBHUkFTUyA9PiAnZ3Jhc3MucG5nJywKICAgIFRSRUUgID0+ICd0cmVlLnBuZycsCik7CgovLyBEaXNwbGF5IHRoZSBtYXAgKE5vdGUgdGhhdCB0aGUgXHQgYW5kIFxuIGNoYXJzIGFyZSBzaW1wbHkgZm9yIGNsYXJpdHkpCmVjaG8gJzx0YWJsZT4nIC4gIlxuIjsKZm9yICgkeSA9IDA7ICR5IDwgSEVJR0hUOyAkeSsrKQp7CiAgICBlY2hvICJcdCIgLiAnPHRyPicgLiAiXG4iOwogICAgZm9yICgkeCA9IDA7ICR4IDwgV0lEVEg7ICR4KyspIHsKICAgIAllY2hvICJcdFx0IiAuICc8dGQ+PGltZyBzcmM9IicgLiAkaW1hZ2VbJG1hcFskeV1bJHhdXSAuICciPjwvdGQ+JyAuICJcbiI7CiAgICB9CiAgICBlY2hvICJcdCIgLiAnPC90cj4nIC4gIlxuIjsKfQplY2hvICc8L3RhYmxlPic7Cg==