In the following grid, all "b"s are 4-connected to the one "a":

-, b, -
b, a, b
-, b, -

So for the sample grid
-1,-1,-1
-1,-1,04
-1,-1,04

the cells which are 4-connected to the initialized cells are here marked
with xx:

-1,-1,xx
-1,xx,04
-1,xx,04

In other words, the cells to randomly choose the new tile placement from are
the ones at the boundary of the already-initialized region.

In the initial description of the problem it sounded like valid paths did
not include diagonals, which is why I say 4-connected.  If diagonals are OK,
use 8-connected.

Dave

On Wed, Mar 11, 2009 at 1:49 PM, Anthony Pace <[email protected]>wrote:

> I just wanted to mention that I don't think it should be entirely random.
> Perhaps you may want to add restrictions as I mentioned before, yet, make
> sure it has a maximum that steps higher and higher based on availability,
> and alternate between diagonal and side to side.
>
> So if there is no way 2 can be side by side or diagonal anymore, than max
> distance plus 1, check for a max distance of 1 square/slot between from
> available slots in the array, and so on.
>
> This would allow it to build out and use all available squares.
>
>
> Paul Steven wrote:
>
>> Thanks David for your suggested solution - it looks very promising. I am
>> not
>> sure what 4-connected means? But I think I understand the general idea
>>
>> I am just wondering if your solution would guarantee that there will
>> always
>> be a matching tile within a clear path?
>>
>> For example if the random sequence is
>>
>> 4,4,27,27,1,1,36,36, <BLANK>
>>
>> -1,-1,-1
>> -1,-1,-1
>> -1,-1,-1
>>
>> then
>>
>> -1,-1,-1
>> -1,-1,04
>> -1,-1,-1
>>
>> then
>>
>> -1,-1,-1
>> -1,-1,04
>> -1,-1,04
>>
>> then
>>
>> -1,-1,27
>> -1,-1,04
>> -1,-1,04
>>
>> then
>>
>> -1,-1,27
>> -1,-1,04
>> -1,27,04
>>
>> then
>>
>> -1,-1,27
>> -1,01,04
>> -1,27,04
>>
>> then
>>
>> -1,-1,27
>> -1,01,04
>> 01,27,04
>>
>> then
>>
>> -1,36,27
>> -1,01,04
>> 01,27,04
>>
>> then
>>
>> -1,36,27
>> 36,01,04
>> 01,27,04
>>
>> then
>>
>> 00,36,27
>> 36,01,04
>> 01,27,04
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of David
>> Hershberger
>> Sent: 11 March 2009 17:40
>> To: Flash Coders List
>> Subject: Re: [Flashcoders] Advice on creating random grid of pairs for a
>> game
>>
>> My first thought for your algorithm is to essentially follow the solution
>> path that your user might end up taking.  Your user will be clearing areas
>> out, opening them up.  Your algorithm could start with an empty grid and
>> fill in around a starting seed, growing the tile array outward.
>>
>> 1) empty grid
>> 2) generate random sequence of pairs with the blank embedded in it, such
>> as
>> 4,4,27,27,1,1,36,<blank>,36, etc
>> 3) choose random location for first tile, and place it there, and take it
>> off the pair queue.
>> 4) choose an unfilled location which is 4-connected to any filled
>> location,
>> and put the next tile from the queue in it.
>> 5) repeat 4) until the queue is empty.
>>
>> In this system, putting the "blank" in a location counts as filling that
>> location, so the value for "blank" needs to be different than the initial
>> values in the grid.
>>
>> So for example, if -1 means uninitialized and 0 means blank:
>>
>> -1,-1,-1
>> -1,-1,-1
>> -1,-1,-1
>> then
>> -1,-1,-1
>> -1,-1,04
>> -1,-1,-1
>> then
>> -1,-1,04
>> -1,-1,04
>> -1,-1,-1
>> then
>> -1,-1,04
>> -1,27,04
>> -1,-1,-1
>> then
>> -1,-1,04
>> -1,27,04
>> -1,27,-1
>> then
>> -1,-1,04
>> 01,27,04
>> -1,27,-1
>> then
>> -1,-1,04
>> 01,27,04
>> -1,27,01
>> then
>> 36,-1,04
>> 01,27,04
>> -1,27,01
>> then
>> 36,00,04
>> 01,27,04
>> -1,27,01
>> then
>> 36,00,04
>> 01,27,04
>> 36,27,01
>>
>> This guarantees that a solution exists, because the algorithm essentially
>> traces out the solution as it generates the level.
>>
>> This presumes that players are not allowed to move tiles around yet leave
>> them on the board while solving the puzzle - it assumes that tiles just
>> disappear from the grid when the user selects a pair which has a clear
>> path
>> between it, and that's the only interaction allowed.  If they can slide
>> them
>> around, my algorithm will still produce solve-able puzzles, but they won't
>> be as difficult as they could be, I think. :)
>>
>> Interesting problem!
>>
>> /mailman/listinfo/flashcoders
>>
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>>
>>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to