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:
[log in to unmask]"
type="cite">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