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

Java钓鱼游戏中的不等式、循环和计分失败

冯良才
2023-03-14

我正在尝试编写一个钓鱼游戏的代码。但我正在为寻找代码中的失败而苦苦挣扎。其中一个问题是如何进行循环。即使我选Y或Y,游戏也结束了。但是我想要在输入“y”或“y”时对程序进行限制。

另一个问题是:计分是错误的。我该怎么修好它?

import java.util.Random;
import java.util.Scanner;

public class fishinggame {

    public static void main(String[] args) {
        Random dice = new Random();
        Scanner kenny = new Scanner(System.in);
        int randomGuess;
        String choice = "sj";
        int score = 0;
        int points = 0;
        int counter = 0;

        //Opening statement
        System.out.println("Let's go fishing!!!");
        System.out.println();

        System.out.println("Would you like to fish?");
        System.out.println("Type Y or y for yes");
        System.out.println("Type anything for no");

        //Variables set

        // 

        while (choice == "Y" ||choice =="y");{
            randomGuess = dice.nextInt(7);
            choice = kenny.next();

            if (randomGuess == 1){
                System.out.println("You caught an old shoe.");
            points += 1;}

            if (randomGuess == 2){
                System.out.println("You caught a huge fish!");
            points += 100;}

            if (randomGuess == 3){
                System.out.println("You caught a leaf ");
            points += 2;}

            if (randomGuess == 4){
                System.out.println("You caught a small fish ");
            points += 50;}

            if (randomGuess == 5){
                System.out.println("You caught a rock ");
            points += 3;}

            if (randomGuess == 6){
                System.out.println("You caught a garbage ");
                points += 0;}

            System.out.println();

            if (randomGuess == 5)
                System.out.println("You caught: Iggy Azalea's newest album. Burn it. Now. -20");
            points -= 20;

            System.out.println("Would you like to fish?");
            System.out.println("Type 1 for yes");
            System.out.println("Type 2 for no");

            counter++;

        }

        if (!"Y".equals(choice) ||!"y".equals(choice) ) {

            System.out.println("Game Over");
            System.out.println();
            System.out.println("Your final score is: " + (points));

            if (points > 0)
                System.out.println("Yay! you won!");
            if (points < 0)
                System.out.println("Oh no! You lost :(");
            System.out.println("Thanks for playing!");
        }
    }
}

共有1个答案

包承望
2023-03-14

您的语句始终为假:choice==“y”choice==“y”

请阅读如何比较2个字符串在Java:我如何比较字符串在Java?

此外,在您的代码中,选项始终是“sj”。因此choice.equals(“y”)choice.equals(“y”)将始终为false。

 类似资料:
  • 包含在程序启动时启动的线程。这个线程包含一个循环,每40毫秒更新一次游戏并重新绘制()board。 备选办法B: 板创建一个摆动计时器。这个计时器的动作监听器是板本身。actionPerformed()方法每40毫秒运行一次,并更新game+repaints Board()。 谢谢

  • 问题内容: 我写一个游戏循环,我发现在例如下面的代码在这里。我还研究了进行游戏循环的其他方法,例如本文。但是我无法让这些工作。因此,我保留了第一个链接中的那个。 我想知道的是: 我编写游戏循环的方式是否是实现此目标的好方法? 有什么建议? 我应该在游戏循环中使用吗? 这是我当前的代码: 问题答案: 最终,您将想要移至LWJGL之类的地方,但让我强调一下,请继续做您现在在这里所做的事情。它将教您基本

  • 本食谱演示了使用组合流来创建游戏循环的一种方式。本食谱旨在突出如何用响应式的方式来重新思考现有问题。在这个示例中,我们将提供整体循环以及自上帧以来的增量时间。与此相结合的是用户输入流,以及当前的游戏状态,我们可以用它来更新我们的对象,并根据每帧的发出来将其渲染到屏幕上。 示例代码 ( StackBlitz ) import { BehaviorSubject, Observable, of, fr

  • 本文向大家介绍iOS 动画实战之钓鱼小游戏实例代码,包括了iOS 动画实战之钓鱼小游戏实例代码的使用技巧和注意事项,需要的朋友参考一下 前言 最近写了一款钓鱼小游戏,自己平时也没做过游戏,本来以为这种游戏要用cocos2d什么的实现,后来发现其实动画就可以实现很棒的效果,先看看效果图。 思维导图 首先我们看下思维导图,本游戏主要分为4大块,其中鱼的实现最为复杂 思维导图 项目结构 准备工作 首先将

  • 本协议或类似协议的广泛部署,可能导致最终用户变成习惯于被重定向到要求输入他们的密码的网站的做法。 如果最终用户在输入他们的凭据前不注意辨别这些网站的真伪,这将使攻击者利用这种做法窃取资源所有者的密码成为可能。 服务提供者应尝试教育最终用户有关钓鱼攻击构成的风险,并且应该为最终用户提供使确认它们的站点的真伪变得简单的机制。客户端开发者应该考虑他们如何与用户代理(例如,外部的和嵌入式的)交互的安全启示

  • 一款建立於Android(G-phone)平台上的RPG GAME(釣魚達人,fishman) 遊戲畫面 故事簡介 原本平和無憂的魚國嘎利基大陸,突然發生了怪事,原本在海裡的魚突然爬上岸開始生活,有的更是在寒冷的冰脈,並且開始具有攻擊性, 除了用本身的牙齒、魚鰭攻擊外,也開始會使用各種武器,而且部分突變的魚類也開始會說簡單的人話,並成立了自己的軍團,名為考機腿軍團。 嘎利基大陸的人們為了保護自己,