我目前正在尝试制作一个赛车模拟器,以便学习一些Java。我制作了每个车手和他们的车的对象:
public static Driver drivers[] = new Driver[18];
每个车手都有许多价值观,这些价值观决定了他在比赛中的表现:
int overall;
int rating;
int corners;
int straightaways;
int rain;
int skill;
int experience;
int pace;
int awareness;
然后,当我进入比赛状态并尝试模拟第一场比赛时,我得到了车手总体的变量(值为50-100),并在总体上添加了一个“运气”因素以获得结果。
package races;
import racers.CreateDrivers;
import racers.Driver;
public class RaceSimulator {
//duplicating drivers Array... Do not know if I need this.
public Driver currentRace[] = CreateDrivers.drivers.clone();
public static void SimulateNextRace() {
System.out.println("\nFirst Race is Beginning!!\n");
int racedayLuck;
int raceFinishUnsorted;
for(int i = 0; i < CreateDrivers.drivers.length; i++) {
racedayLuck = (int) (Math.random() * 20 + 1);
raceFinishUnsorted = racedayLuck + CreateDrivers.drivers[i].getOverall();
CreateDrivers.drivers[i].setRacedayFinish(raceFinishUnsorted);
System.out.println(CreateDrivers.drivers[i].getName() + ": " + CreateDrivers.drivers[i].getRacedayFinish());
}
//TODO Trying to Rank the drivers against each other and set drivers[i].setPoint
}
public static void getRank() {
//
}
}
控制台输出示例:
First Race is Beginning!!
Joseph Morgan: 90
Malachi Nguyen: 90
Greg Hart: 76
Ian Banks: 78
Gabriel Mcdonald: 84
Spencer Meyer: 94
Jordan Soto: 95
Abraham Wells: 94
Charles Frederiks: 82
Trevor Fleming: 92
Nathaniel Nguyen: 67
Johnathan Herrera: 79
Derek Miller: 88
Grant Reynolds: 86
Kyle Bailey: 82
Conner Sullivan: 98
Paul Perry: 96
Antonio Larson: 87
我不知道如何在不排序的情况下对“CreateDrivers.drivers[x]”的所有值进行排名。
换言之:我如何在不改变任何值的情况下对车手进行排名,同时也允许自己添加到他们的“季节积分”中
我尝试向驱动程序添加一个“id”值,并将该值排序为一个数组,然后再次查找id。。。但似乎必须有一种更简单的方法来排名18个整数。
提前感谢您的帮助!
我很不明白你想做什么,但我以为你想得到比赛的排名你可以只排序数组由Driver.getRacedayFinish();
使用比较器在java和分配它的索引1它的排名像:-
Arrays.sort(CreateDrivers.drivers, new Comparator<Integer>(){
@Override
public int compare(Driver d1, Driver d2) {
// You can create compareTo method for that but I will just use this
if (d1.getRacedayFinish() == d2.getRacedayFinish()) return 0;
else if (d1.getRacedayFinish() < d2.getRacedayFinish()) return -1;
return 1;
}
});
这将对数组进行排序,然后只需将其索引指定为其秩,如:-
for (int i = 1; i <= drivers.length; i++) {
drivers.setPoint[i-1] = i;
}
我希望我能给你你想要的答案,如果你没有得到你想要的,那么你可以在问题部分解释得更清楚。
我有一个如下所示的Powershell数组: 我需要找到TSMserver和集群的所有VM都具有相同的值。 我需要一个命令来检索(例如)这两个VM,因为它们共享相同的第一个值。 所以实际上我需要将数组中的每个对象与其他对象进行比较,以找到前两个属性的公共值。 提前非常感谢!
我理解A,我们在那里有一个原语;没有引用。by-复制。 我希望B和C的行为与D相同——根据它们被给予的引用而改变。 为什么这个对象引用另一个对象只对用户定义的对象“起作用”,而不是整数、字符串等。?
问题内容: 我有上述2个类(POJO),它们都是绝对相同的(除了课程名称),我将它们添加到两个数组列表:aListA和aListB。我需要比较两个对象是否相同。如果它们相同,则需要将它们添加到另一个列表(commonList)中,如果它们恰好是不同的,则需要将它们添加到另一个列表(differentList)中。我写了以下代码: 我的问题是,即使两个不同POJO中的数据(变量,firstId和se
我正在尝试创建一个二进制搜索程序,该程序可以使用各种类型的变量(int、float、string等)来查看数组中是否存在元素。我正试图找出如何比较变量。下面是我正在使用的内容的草图: 我甚至不确定使用对象是否是最好的方法。
两个 NavigableString 或 Tag 对象具有相同的HTML或XML结构时, Beautiful Soup就判断这两个对象相同. 这个例子中, 2个 <b> 标签在 BS 中是相同的, 尽管他们在文档树的不同位置, 但是具有相同的表象: “<b>pizza</b>” markup = "<p>I want <b>pizza</b> and more <b>pizza</b>!</p>"
两个 NavigableString 或 Tag 对象具有相同的HTML或XML结构时, Beautiful Soup就判断这两个对象相同. 这个例子中, 2个 <b> 标签在 BS 中是相同的, 尽管他们在文档树的不同位置, 但是具有相同的表象: “<b>pizza</b>” markup = "<p>I want <b>pizza</b> and more <b>pizza</b>!</p>"