package net.jrtechs.setgame;
|
|
|
|
public class Card
|
|
{
|
|
//color,number, shape, shading
|
|
private final int number; //0,1,2
|
|
private final int color; //0-red,1-blue,2-green
|
|
private final int shape; //0-square,1-triangle,2-circle
|
|
private final int shading; //0-solid, 1-striped, 2-clear
|
|
private boolean inUse = true;
|
|
//constructor
|
|
Card(int num, int col, int shap, int shad)
|
|
{
|
|
number = num;
|
|
color = col;
|
|
shape = shap;
|
|
shading = shad;
|
|
}
|
|
public int getNumber()
|
|
{
|
|
return number;
|
|
}
|
|
public int getColor()
|
|
{
|
|
return color;
|
|
}
|
|
public int getShape()
|
|
{
|
|
return shape;
|
|
}
|
|
public int getShading()
|
|
{
|
|
return shading;
|
|
}
|
|
public boolean getInUse()
|
|
{
|
|
return inUse;
|
|
}
|
|
public void setInUse(boolean change)
|
|
{
|
|
inUse = change;
|
|
}
|
|
public String toString()
|
|
{
|
|
String dis = new String();
|
|
switch(number)
|
|
{
|
|
case 0: dis = "1";
|
|
break;
|
|
case 1: dis = "2";
|
|
break;
|
|
case 2: dis = "3";
|
|
}
|
|
switch(color)
|
|
{
|
|
case 0: dis += " red";
|
|
break;
|
|
case 1: dis += " blue";
|
|
break;
|
|
case 2: dis += " green";
|
|
}
|
|
switch(shape)
|
|
{
|
|
case 0: dis += " square";
|
|
break;
|
|
case 1: dis += " triangle";
|
|
break;
|
|
case 2: dis += " circle";
|
|
}
|
|
switch(shading)
|
|
{
|
|
case 0: dis += " solid";
|
|
break;
|
|
case 1: dis += " striped";
|
|
break;
|
|
case 2: dis += " clear";
|
|
}
|
|
|
|
return dis;
|
|
}
|
|
public boolean equals(Card check)
|
|
{
|
|
if(check.shape == this.shape && check.color == this.color && check.number == this.number && check.shading == this.shading)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
public static boolean equals(Card one, Card two, Card three)
|
|
{
|
|
if(one.equals(two) || one.equals(three) || two.equals(three))
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
//compares the colors of three cards
|
|
public static boolean compare_color(Card one, Card two, Card three)
|
|
{
|
|
if(one.color == two.color && one.color == three.color)
|
|
{
|
|
return true;
|
|
}
|
|
else if(one.color != two.color && one.color != three.color && two.color != three.color)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
//compares the number of three cards
|
|
public static boolean compare_number(Card one, Card two, Card three)
|
|
{
|
|
if(one.number == two.number && one.number == three.number)
|
|
{
|
|
return true;
|
|
}
|
|
else if(one.number != two.number && one.number != three.number && two.number != three.number)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
//compares the shading of the three cards
|
|
public static boolean compare_shading(Card one, Card two, Card three)
|
|
{
|
|
if(one.shading == two.shading && one.shading == three.shading)
|
|
{
|
|
return true;
|
|
}
|
|
else if(one.shading != two.shading && one.shading != three.shading && two.shading != three.shading)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
//checks to see if three cards have the same shale
|
|
public static boolean compare_shape(Card one, Card two, Card three)
|
|
{
|
|
if(one.shape == two.shape && one.shape == three.shape)
|
|
{
|
|
return true;
|
|
}
|
|
else if(one.shape != two.shape && one.shape != three.shape && two.shape != three.shape)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
//checks to see if three cards are a set
|
|
public static boolean isSet(Card one, Card two, Card three)
|
|
{
|
|
if(Card.compare_color(one, two, three) && Card.compare_number(one, two, three) && Card.compare_shading(one, two, three) && Card.compare_shape(one, two, three))
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|