# Rock paper scissors population algorithm, need help!!!

Discussion in 'C++' started by hAmmeRoL@gmail.com, Aug 9, 2007.

1. ### Guest

The problem is described below:

There are three kinds of units in the map, known as Rock Paper and
Scissors(randomly generated). Each cell of the map is occupied with
one of the three units (assume there are no empty cells). Each turn,
the three units will fight for their terrirory in the map and they can
only fight in the four directions (up, down, right, left). Rules are
typical RPS rules. For example, a cell of rock surrounded by four
scissors will remain rock and the four adjacent cells will be rock in
the next generation. And a paper cell with at least one adjacent
scissors cell will be scissors cell in the next generation.

And now an algorithm is needed to calculate the Nth generation of the
map.

My thought now is to check each cell and its adjacent cells. If there
are at least one cell that can beat this cell, then in the next
generation the cell will change to that. And we do this method N times
to calculate the map.
But I wonder is there some kind of direct approach to this algorithm??
Or can this algorithm optimize in some way??

, Aug 9, 2007

2. ### Victor BazarovGuest

wrote:
> The problem is described below:
>
> There are three kinds of units in the map, known as Rock Paper and
> Scissors(randomly generated). Each cell of the map is occupied with
> one of the three units (assume there are no empty cells). Each turn,
> the three units will fight for their terrirory in the map and they can
> only fight in the four directions (up, down, right, left). Rules are
> typical RPS rules. For example, a cell of rock surrounded by four
> scissors will remain rock and the four adjacent cells will be rock in
> the next generation. And a paper cell with at least one adjacent
> scissors cell will be scissors cell in the next generation.
>
> And now an algorithm is needed to calculate the Nth generation of the
> map.
>
> My thought now is to check each cell and its adjacent cells. If there
> are at least one cell that can beat this cell, then in the next
> generation the cell will change to that. And we do this method N times
> to calculate the map.
> But I wonder is there some kind of direct approach to this algorithm??
> Or can this algorithm optimize in some way??

I don't see a C++ language question here. Could it be you've got
confused and posted here instead of 'comp.programming'?

V
--

Victor Bazarov, Aug 9, 2007

3. ### Guest

On Aug 9, 8:20 pm, "Victor Bazarov" <> wrote:
> wrote:
> > The problem is described below:

>
> > There are three kinds of units in the map, known as Rock Paper and
> > Scissors(randomly generated). Each cell of the map is occupied with
> > one of the three units (assume there are no empty cells). Each turn,
> > the three units will fight for their terrirory in the map and they can
> > only fight in the four directions (up, down, right, left). Rules are
> > typical RPS rules. For example, a cell of rock surrounded by four
> > scissors will remain rock and the four adjacent cells will be rock in
> > the next generation. And a paper cell with at least one adjacent
> > scissors cell will be scissors cell in the next generation.

>
> > And now an algorithm is needed to calculate the Nth generation of the
> > map.

>
> > My thought now is to check each cell and its adjacent cells. If there
> > are at least one cell that can beat this cell, then in the next
> > generation the cell will change to that. And we do this method N times
> > to calculate the map.
> > But I wonder is there some kind of direct approach to this algorithm??
> > Or can this algorithm optimize in some way??

>
> I don't see a C++ language question here. Could it be you've got
> confused and posted here instead of 'comp.programming'?
>
> V
> --