我正在学校制作一个垄断的程序,我将所有自己的属性设置为属性类中的对象,我希望能够通过它们的位置值搜索属性。因此,如果玩家的位置是3(在我的代码中是波罗的海大道),我希望能够搜索位置为3的所有自有房产,然后让玩家购买/支付房产租金。这是可能的,还是我应该从另一个角度解决问题?
public class property
{
String owner;
int position;
int price;
int rent;
public property(int startPrice, int startPosition, int startRent)
{
price = startPrice;
position = startPosition;
owner = "none";
rent = startRent;
}
public void setOwn(String newOwn)
{
owner = newOwn;
}
public void changePrice(int newprice)
{
price = newprice;
}
public void changeRent(int newRent)
{
rent = newRent;
}
public int getprice()
{
return price;
}
public int getpos()
{
return position;
}
public String getown()
{
return owner;
}
public int getrent()
{
return rent;
}
}
答案 0 :(得分:0)
首先,我有一些数据结构来跟踪可以购买的属性。 HashSet是最好的,因为顺序无关紧要,您可以快速添加和删除元素。将其设置为包含可以购买的属性。然后我会制作这个方法:(不要把它放在你的Property类中)
private static Property getPropertyAtPos(Player player, HashSet buyableProperties) {
for(Property p : buyableProperties) {
if(p.position == player.position) {
return p;
}
}
return null;
}
调用此方法获取该玩家可以购买的属性。希望这会有所帮助。