Thanks Richard,
I'm trying to have each agent portrayed with it's own particular
color. I tried your code suggestion (I may not be doing something
correct), and all the CoordinationPlayer agents have the same color,
either red or yellow, in this case.
I'd like a blend of different colored agents portrayed, and the color
is determined within the single agent class, like CoordinationPlayer.
Thanks for your help,
Randy Latimer
On 20.03.2012 04:20, Richard O. Legendi wrote:
> 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/ [2]
>
> 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 [1]
>>
>> 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
>
>
> Links:
> ------
> [1] http://ascape.sourceforge.net/manual/Section3.html
> [2] http://people.inf.elte.hu/legendi/
|