gpt4 book ai didi

java字母游戏[家庭作业]

转载 作者:行者123 更新时间:2023-11-29 03:49:08 25 4
gpt4 key购买 nike

我的家庭作业有问题。我不要求任何代码。我所要求的只是关于如何实现作业的某些部分的一些建议。

分配如下:N 名玩家(n 由用户指定)和一个带有字母的“框”(A-Z,未指定字母数或如问题中所述:无限制)。每个字母都有一个索引。 A=0,B=1,..,Z=25。每个玩家都会收到一封随机字母。第一个组成大小为 p >= 3(p 由用户给定)且具有以下属性的单词的玩家:字母的索引应按等差顺序排列。例如,如果 p=3,则 ABC 或 ZXV 是获胜组合。

程序应该在每次迭代时显示每个玩家的字母。当一名玩家获胜时,程序应显示获胜的玩家和获胜词。

建议是:使用 Math.random() 和 StringBuilder 处理字符串。

我认为这个程序的入口点是要求用户提供玩家数量。之后我应该生成 N 个对象(给定一个 Player 类)。第一个愚蠢的问题:如何生成 N 个对象。像这样的东西:

for (int i = 0 ; i < n ; i++) {
Player player1 = new Player();
//how do I allocate the other objects?
}

有没有办法为字母分配索引?我所能想到的就是用类似的东西生成随机字母:

    Random r = new Random();
box = new char[9999];
for (int i = 0; i < 9999; i++){
box[i]= (char)(r.nextInt(25)+65); //there are 26 letters and A starts on position 65
}

还有其他想法吗?非常感谢有关如何思考解决此问题的任何建议。

最佳答案

how do I generate N objects

使用列表或数组。大多数惯用的 Java 代码使用列表而不是数组

List<Player> players = new ArrayList<Player>();
for (int i = 0; i < n; i++) {
players.add(new Player());
}

现在 players 包含所有 n 玩家,要引用特定玩家 k(从 0 到 n - 1),您使用players.get(k) 例如

players.get(k).takeTurn();

会对第 k 个玩家调用 takeTurn

Is there a way to assign indexes to letters?

我不太清楚你的意思,或者你为什么要生成 9999 个字符,但是你生成 9999 个随机字符的方式现在不起作用,因为它会排除“Z”。每当您调用 r.nextInt 时,您实际上指定的 1 超出了您想要的上限。因此,要生成从“A”到“Z”的 9999 个随机字符,您需要

Random r = new Random();
box = new char[9999];
for (int i = 0; i < 9999; i++){
box[i] = (char)(r.nextInt((int)'Z' - (int)'A' + 1) + 'A');
}

它利用了 char 与 Java 中的整型数字类型共享许多特征这一事实。

关于java字母游戏[家庭作业],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com