gpt4 book ai didi

java - 选择可能的最大数字

转载 作者:行者123 更新时间:2023-12-01 18:32:12 25 4
gpt4 key购买 nike

我正在用java做纸牌游戏,有一个简单的规则,你必须选择等于上一个或更低的数字。我无法让程序选择与之前相同或更少的数字。

public static void main(String[] args) throws InterruptedException {
Random First = new Random();
TimeUnit.MILLISECONDS.sleep(1000);
System.out.print("First card is: ");
int FirstCard = 8;
int Losowa = First.nextInt(FirstCard);
System.out.println(Losowa);
TimeUnit.MILLISECONDS.sleep(600);
Random il_kart = new Random();
System.out.print("Your cards: ");
for (int i = tablica[0]; i < 5; i++) {
int upperbound = 8;
tablica[i] = il_kart.nextInt(upperbound);
System.out.print(tablica[i] + " ");
TimeUnit.MILLISECONDS.sleep(250);


}


Random Enemy_cards = new Random();
System.out.print("enemy's card is: ");
for (int i = EnemyTab[0]; i < 5; i++) {
int upperbound = 8;
EnemyTab[i] = il_kart.nextInt(upperbound);
System.out.print(EnemyTab[i] + " ");
TimeUnit.MILLISECONDS.sleep(250);
}
TimeUnit.MILLISECONDS.sleep(800);
System.out.println(" ");
System.out.println("Your turn!");

if (tablica[0] <= Losowa || tablica[1] <= Losowa || tablica[2] <= Losowa || tablica[3] <= Losowa || tablica[4] <= Losowa) {

Scanner choose = new Scanner(System.in);
int wyb = choose.nextInt();
if (wyb <= tablica[0] || wyb <= tablica[1] || wyb <= tablica[2] || wyb <= tablica[3] || wyb <= tablica[4]) {
System.out.println("You choose " + wyb);
}
while (wyb > Losowa) {
System.out.print("You can't play this");
System.out.println("Choose another card");
choose = new Scanner(System.in);
wyb = choose.nextInt();
System.out.println("You choose " + wyb);
}

} else if (tablica[0] != Losowa || tablica[1] != Losowa || tablica[2] != Losowa || tablica[3] != Losowa || tablica[4] != Losowa) {
System.out.println("You can't play any card");
}

TimeUnit.MILLISECONDS.sleep(800);
System.out.println("Enemy's turn...");
TimeUnit.MILLISECONDS.sleep(800);
System.out.print("Your opponent plays: ");

if (EnemyTab[0] <= Losowa || EnemyTab[0] <= tablica[wyb] || EnemyTab[1] <= Losowa || EnemyTab[1] <= tablica[wyb] || EnemyTab[2] <= Losowa || EnemyTab[2] <= tablica[wyb] || EnemyTab[3] <= Losowa || EnemyTab[3] <= tablica[wyb] || EnemyTab[4] <= Losowa || EnemyTab[4] <= tablica[wyb]) {
int odp = tablica[wyb];
for (int i = 0; i <= EnemyTab.length; i++)
System.out.println(odp);

TimeUnit.MILLISECONDS.sleep(800);




}

输出为:

First card: 5
Your cards are: 1 4 7 0 4
enemy's card is: 6 7 6 6 3
Your turn!
4
You choose: 4
Enemy's turn...
Your enemy plays: 7
7
7
7
7
7
Round 2
Your turn!

我该怎么做才能让计算机选择等于或小于我的数字? Losowa是第一张随机卡,wyb是Scanner(选择卡)

最佳答案

一种方法是构造一个名为 equalOrLower 的 ArrayList,每当计算机需要选择时,就会创建一个新的 ArrayList,它将存储所有值小于玩家数量的敌人可能的牌。然后敌人(计算机)只能从新创建的 ArrayList 中选择一个值。

 int playerNumber = 5;
int[] enemyPossibleCards = {1,2,6,4,9};

ArrayList<Integer> equalOrLess = new ArrayList<>();

equalOrLess.clear();
for(int i = 0; i < enemyPossibleCards.length; i++){
if(enemyPossibleCards[i] < playerNumber)
equalOrLess.add(enemyPossibleCards[i]);
}

这是一些示例代码,可以帮助您理解我的答案。每次调用该函数时都会清除 ArrayList,以确保删除以前的值。如果您还有任何疑问,请联系我们:)

关于java - 选择可能的最大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60141690/

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