当前位置: 首页 > 知识库问答 >
问题:

重做21点游戏

赵景曜
2023-03-14

我正在尝试创建一个21点游戏,玩家以2张牌开始,然后询问他/她是否想要另一张牌(用户输入:是或否),如果是,则在总数中添加另一张牌。如果没有,游戏就会终止。

下面是我试图获得的示例输出:

这是我到目前为止的结果(可能是错误的位置):

import java.util.Scanner;

public class BlackJackGame {
    public static void main(String[] args) {

        int randomnum1 = (int) (1 + Math.random() * 10);
        int randomnum2 = (int) (1 + Math.random() * 10);
        int randomnum3 = (int) (1 + Math.random() * 10);
        int total;
        char anotherCard = 'y';

        Scanner input = new Scanner(System.in);

        System.out.println("First cards: " + randomnum1 + ", " + randomnum2);

        total = randomnum1 + randomnum2;

        System.out.println("Total: " + total);

        while (anotherCard != 'n')
        {   
            System.out.print("Card: " + randomnum3);

            System.out.print("Do you want another card? (y/n): ");
            anotherCard = input.next().charAt(0);           
        }   
    }
}

提示和重新工作的源代码将得到高度赞赏。

共有2个答案

耿锦
2023-03-14

以下是您要求的提示:

  • 您需要引入一个变量来跟踪您的总和。例如,您可以使用int sum=randomnum1+randomnum2;初始化它,并在循环中继续向它添加下一张卡片:sum+=randomnum3;
  • 您需要在while循环内生成randomnum3。这样,你每次都会得到一张不同的卡。基本上,每次生成卡片时都要调用随机函数,而不是只调用一次。否则,randomnum3的值将保持不变,您将反复获得相同的卡。
  • 要在到达21时退出,您必须在循环中使用ifbreak(一旦您将当前卡添加到总和中):if(sum>21){break;}
  • 或者,您可以将anothercard的值设置为'n'而不是使用break
  • 如果要模拟实际的牌组,您应该跟踪用户已经获得了哪些牌。不过,对于您正在编写的程序而言,这在技术上并不是必需的。
商宝
2023-03-14

就纸牌游戏而言,一副牌里有52张牌,我假设只有一副牌。

如果你希望这是一场公平的比赛,那么你必须记住这一点。

但如果只想让输出看起来正确,就必须避免获得4个以上的ACE、2个、3个和4个。

实现这一点的一种方法是制作一个大小为52的int数组,每个数组中有4个。我想Ace是1和10,J,Q,K是10,所以会有16个10。

获取一个介于0和51之间的随机数,以获取要使用的数组的索引。使用该索引后,将数组的值设置为-1,并在使用该索引之前始终检查-1,如果是-1,则获得另一个随机值。

int [] deck = size 52 array with 4 of each card.
int random = get random number between 0 and 51.

while(deck[random] == -1){
   random = get random number between 0 and 51.
}
int card1 = deck[random]
deck[random] = -1;

差不多...我只是做得很快,希望你能明白。

 类似资料:
  • 我目前正在编写一个使用Python2.7的21点游戏。作为应用程序游戏流的一部分,我定义了一个名为的新函数,在这个函数中,我需要一个用户输入,该输入会导致不同的场景(“hit”会给玩家另一张牌,“hold”会结束玩家的回合并将其传递给发牌人。否则会导致自定义错误) 值得一提的是,该代码最初是用python 3.7编写的,后来进行了更改。该代码在3.7中工作得很好。 现在我得到了这个错误: 我希望得

  • 我有一个黑杰克游戏,我需要制作,它被分离成两个文件,一个处理牌洗牌和另一个是关于实际的游戏 我的问题是,我可以得到代码,以打印两张牌的球员和经销商,虽然我需要打印的格式,如这样 玩家的手牌是3:1的球杆2的红心 不是这样的 ['1c','2h'] 显示总数并将卡片分开 这是管理游戏的第一个文件,另一个是纸牌 这是另一个文件,但任务说我不能修改它,我只是添加了它,使它更容易理解

  • 本文向大家介绍JQuery做的一个简单的点灯游戏分享,包括了JQuery做的一个简单的点灯游戏分享的使用技巧和注意事项,需要的朋友参考一下 最近屌丝被迫学习TypeScript(不学就会被开除,5555),所以得先学JavaScript,这下可好,所有网页相关的东西都得要有所了解,否则没法忽悠BOSS。 今天学了一小会JavaScript,这里先做了一个简单的点灯游戏,算是练手吧。其中用到了JQu

  • 在讲述有关list的时候,提到做游戏的事情,后来这个事情一直没有接续。不是忘记了,是在想在哪个阶段做最合适。经过一段时间学习,看官已经不是纯粹小白了,已经属于python初级者了。现在就是开始做那个游戏的时候了。 游戏内容:猜数字游戏 太简单了吧。是的,游戏难度不大,不过这个游戏中蕴含的东西可是值得玩味的。 游戏过程描述 程序运行起来,随机在某个范围内选择一个整数。 提示用户输入数字,也就是猜程序

  • ChatGPT能做什么?ChatGPT可以做的21件事情

  • 缘起 我记得自己很小的时候(大概3岁还是4岁),我爸喜欢用红白机玩坦克大战和魂斗罗。但是我妈不喜欢,她认为打游戏会影响休息,而且伤眼睛,还减少电视机的寿命。我印象里面他们为此吵过架,我妈赢了,还把游戏机摔坏了,我们就没得玩了。 直到再后来我快10岁,我爸以学电脑、练五笔打字为由,又弄回来一台小霸王学习机。放假的时候我们爷俩终于又可以一起通关魂斗罗了。但是平时我妈依然不让我玩,而且这次我爸也跟她站在