基本上程序非常简单:
它需要一个名单列表,并使每个玩家对每个玩家说一次但只有一次...
所以ceri会连续玩5场比赛,但我想要发生的事情就是它是随机的......
public class hatpicking {
public static void main(String[] args) {
String[] Names = { "Ceri", "Matthew", "Harry", "Lewis", "Kwok", "James"};
List<String> Matches = new ArrayList<String>();
for(int i = 0; i < Names.length; i++){
for(int j = i + 1; j <Names.length; j++){
if(Names[i].equals(Names[j])){
continue;
}else{
Matches.add(Names[i] + " v" Names[j]);
System.out.println(Names[i] + " v " + Names[j]);
}
}
}
}
}
我确信有一种更简单的随机化方式,但我只是回到编程中,所以我需要尽可能的工作......
我想分配: (姓名[i] +&#34; v&#34;姓名[j]); 到ArrayList - 匹配但很明显
Matches.add(Names[i] + " v" Names[j]);
不起作用,有什么提示吗?
答案 0 :(得分:2)
Matches.add(Names[i] + " v" Names[j]);
应该是
Matches.add(Names[i] + " v" + Names[j]);
答案 1 :(得分:1)
Eran的回答是正确的,并将修复你的错误。但是,在旁注中,有关Java命名约定的说法。在Java中,类名应始终以大写字母开头,因此class hatpicking
应为class Hatpicking
。此外,变量名称应以小写字母开头,因此Names
和Matches
应为names
和matches
。
答案 2 :(得分:0)
我的猜测是你只想将比赛随机化。因此,只需使用现有的代码,然后将输出混乱。
有关最佳洗牌结果,请参阅此链接中的改组部分。 http://bost.ocks.org/mike/algorithms/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class RandomMatch {
public void matchGenerator() {
List<String> availablePlayers = Arrays.asList("Ceri", "Matthew", "Harry", "Lewis", "Kwok", "James");
List<String> matches = new ArrayList<String>();
int MAX_PLAYERS = availablePlayers.size();
for(int i=0; i<MAX_PLAYERS; i++) {
String homePlayer = availablePlayers.get(i);
for(int j=i+1; j<MAX_PLAYERS; j++) {
String awayPlayer = availablePlayers.get(j);
if(!homePlayer.equals(awayPlayer)) {
String match = homePlayer + " vs. " + awayPlayer;
matches.add(match);
}
}
}
System.out.println("Match List\n");
for(String match : matches)
System.out.println(match);
shuffle(matches);
System.out.println("Shuffled Match List\n");
for(String match : matches)
System.out.println(match);
}
public void shuffle(List<String> matches) {
long seed = System.currentTimeMillis();
Collections.shuffle(matches, new Random(seed));
seed = System.currentTimeMillis();
Collections.shuffle(matches, new Random(seed));
}
public static void main(String[] args) {
RandomMatch randomMatch = new RandomMatch();
randomMatch.matchGenerator();
}
}