Print

Print


Hi Randy,

I'm a bit unsure if it helps you, but you can simply subclass 
/RectanglePortrayal2D/ directly with /CoordinationPlayers/, something 
like the following code (haven't tested).

This way you'll have a /color/ variable (called /paint/) by default.

    public class CoordinationPlayer
             extends RectanglePortrayal2D
             implements Steppable {

         private static final double DIAMETER = 6.0;

         public CoordinationPlayer() {
             super(DIAMETER);
             paint = (random.nextInt(2) == 0) ? Color.RED : Color.YELLOW;
         }

         ...
    }

This way you don't need the magic in the /setupPortroyals()/ function.

HTH,
Richard

--
Richard O. Legendi
Software developer
Intelligent Applications and Web Services
AITIA International, Inc.
http://people.inf.elte.hu/legendi/

On 2012.03.19. 14:53, Randolph Latimer wrote:
> I'm starting out again with Mason and will appreciate some help with 
> what I expect are fairly simple questions.
>
> I'm transferring a Coordination Game model from Ascape to Mason.
> The Ascape code is described here, if anyone's interested -
> http://ascape.sourceforge.net/manual/Section3.html
>
> In Mason, I'm using the Schoolyard model as a starter.
> In Coordination Game, each agent needs a variable for its color.
> I'm trying something like this (I don't think I'm implementing Mason 
> SimpleColorMap correctly):
>
> public class CoordinationPlayer implements Steppable
> {
>     //public static final double MAX_FORCE = 3.0;
>     protected SimpleColorMap colormap = new 
> SimpleColorMap(0,1,Color.black,Color.white);
>     public Color color;
>     public  MersenneTwisterFast random = new MersenneTwisterFast();
>
>     public CoordinationPlayer()
>     {
>         if (random.nextInt(2) == 0)
>             color = Color.red;// colormap.getColor(.2);
>         else color = Color.yellow; //colormap.getColor(.7);
>     }
>
>     public Color getColor()
>     {
>          return color;
>     }
>
> In CoordinationGameWithUI, - the color is displayed here, in this 
> hybrid code from the Schoolyard model.
> I'm trying to set the color with setPortryalForClass, where each class 
> object has its own color.
> This isn't working correctly:
>
>     public void setupPortrayals()
>     {
>         CoordinationPlayers students = (CoordinationPlayers) state;
>
>         yardgridPortrayal.setField(students.yardgrid);
> I'M TRYING TO SET THE COLOR HERE:
>         yardgridPortrayal.setPortrayalForClass(CoordinationPlayer.class,
>                      new 
> RectanglePortrayal2D(CoordinationPlayer.getColor(),true)); //new
>                                                  
> RectanglePortrayal2D(Color.red,true));
>         yardgridPortrayal.setPortrayalForNull(new 
> RectanglePortrayal2D(Color.blue,true));
>
>
> Thanks for any help -
> Randy Latimer