我正在尝试制作一个刽子手游戏,但是我还在玩数组这样的东西

时间:2017-09-22 03:31:10

标签: java

import java.util.Scanner;
import java.util.ArrayList;

public class hangman {

    public static void ttt(String inputWord) {
        int wordLength = inputWord.length();
        String blanks = "";
        for (int i = 0; i < wordLength; i++) {
            blanks = blanks.concat("_ ");
        }
        // System.out.print(wordLength);
        System.out.println(blanks);
        int points = 0;
        int counter = 0;
        ArrayList<String> usedChars = new ArrayList<String>();
        while (points < wordLength) {
            Scanner reader = new Scanner(System.in);
            System.out.println("Guess: ");
            String guess = reader.next();
            // int checker = 0;
            // for(int k = 0; k < usedChars.size(); k++) {
            // if(usedChars.get(k) != guess) {
            // checker = checker + 1;
            // }
            // else {}
            // }
            // if(checker == usedChars.size()) {
            for (int i = 0; i < wordLength; i++) {
                if (guess == inputWord.substring(i, i + 1)) {
                    points = points + 1;
                    usedChars.add(guess);
                    System.out.println("hit"); // this is me trying to see if
                                               // this part is working
                } else {
                }

            }
            System.out.println("Used letters: " + usedChars);
            // }
            // else {
            // System.out.print("Sorry, that letter has already been used");
            // }
            counter = counter + 1;
            if (counter == 5) {
                points = wordLength;
            }

        }

        System.out.println("Game over");
    }

    public static void main(String[] args) {
        ttt("to");

    }

}

不要担心已注释掉的代码,只是我试图阻止重复猜测,但更重要的是我让其余的代码工作更重要第一

无论如何,我的代码中唯一似乎正在工作的部分是对应部分。你可以自己尝试一下,但看起来所有这一切都需要5次猜测(5种生命,随机的)和打印游戏。

编辑:事后我需要重新审视那个反驳部分,因为它只会因错误的猜测而增加

我注意到的第一件事是我的阵列无法正常工作。它并不是.add()就像我要求它添加我的猜测一样。 (来源:https://beginnersbook.com/2013/12/java-arraylist-add-method-example/

然后,更严重的代码问题甚至无法记录正确的猜测:/

我开始在我学校的java课程中编写代码并决定自己尝试这个以获得乐趣,任何帮助都将不胜感激! :P

1 个答案:

答案 0 :(得分:0)

更改以下布尔表达式

guess == inputWord.substring(i, i + 1)

guess.equals(inputWord.substring(i, i + 1))

因为guess是一个String对象。使用&#39; ==&#39;运算符只会比较参考值,而不是值。

您也可以使用

String guess = reader.nextLine();

而不是

String guess = reader.next();