我遇到了课堂项目的问题,特别是其中的一部分。
这就是作业所说的 编写一个程序,管理最多10个玩家的列表及其在计算机内存中的高分 - 不要写入磁盘。使用一个Player对象数组。 Player类应该存储玩家的名字和分数,以及合适的构造函数,访问器和mutator。 Player类还应该适当地覆盖equals和toString方法。您的高分计划应支持以下功能: - 添加新玩家并获得分数 - 打印所有玩家'名称及其在屏幕上的分数 - 允许用户输入玩家的姓名并输出该玩家的得分或者如果该玩家的姓名尚未输入则输出该消息 - 允许用户输入播放器的名称并从列表中删除播放器
创建一个菜单系统,允许用户选择要调用的选项。
到目前为止,我已经能够创建一个菜单,添加一个玩家和一个分数,并打印所有添加的玩家。我遇到的问题是在数组中搜索特定名称,然后能够删除该播放器。
下面的是我处理信息的处理程序类的片段。
public void removePlayer(String playerName)
{
//remove player from player array
//it doesn't work and I do not know how to get it to work
//the issue I have is I dont know how to compare a string to
//an array of players it doesnt compile correctly
//with the error "Incompatible Operand types players and String".
for (int i = 0; i< players.length; i++)
{
if(this.players[i] == playerName)
{
for (int x = i; x<players.length; x++)
{
this.players[x] = this.players[x+1];
}
}
}
}
我明白这是错的,但我不知道如何做才能使其正确。 这是接收信息的玩家类。
public class players {
private String playerName;
private int playerScore;
public players(){
}
public players(String newName, int newScore){
playerName = newName;
playerScore = newScore;
}
@Override
public boolean equals(Object otherPlayer){
return false;
}
@Override
public String toString(){
return playerName + " " + playerScore;
}
}
最后是数组的处理程序代码。以及如何增加球员。
public class highScoreHandler {
private final static int PLAYER_LIMIT=10;
private players[] players;
private int pointer;
public highScoreHandler(){
this.players = new players[PLAYER_LIMIT];
for (int i = 0; i< players.length; i++)
{
this.players[i] = new players();
}
this.pointer = 0;
}
public boolean addPlayer(players newPlayer)
{
//add new player to player array
if(this.pointer > this.players.length-1)
{
System.out.println("please remove a player.");
return false;
}
else
{
this.players[this.pointer] = newPlayer;
this.pointer +=1;
System.out.println("Player has been added!");
return true;
}
}
任何帮助将不胜感激,谢谢。