坚持创造刽子手游戏

时间:2013-06-09 16:45:52

标签: java substring

package Hangman;
import java.util.*;
public class Hangman {

    /**
     * @param args
     */

        public static void main(String[] args) {
        // TODO Auto-generated method stub

        //Setup Variables
        String name;
        int diff, countwrong=0, guesses=0;

        Scanner input = new Scanner (System.in);

无聊的介绍部分。

        //Introduction for the Hangman game.
        System.out.println(" Welcome to Hangman. What is your name?");
        name=input.nextLine();

        System.out.println(" Hello "+name+" You will be playing a Hangman game.");
        System.out.println(" ");

        //Give instructions.
        System.out.println(" This game will have basics Hangman rules.");
        System.out.println(" There will be a certain number of blanks on the screen, resembling the letters of a particular word.");
        System.out.println(" You will have to try and determine the word by guessing letters used in the word.");
        System.out.println(" You will be allotted  7 mistakes to find the word");
        System.out.println(" ");
        System.out.println(" There will be 3 difficulties you can choose form and it will get progressively harder as you go higher.");
        System.out.println(" 1 being words with 5 letters, 2 being words with 7 letters, and 3 being words with 9 letters.");
        System.out.println(" ");

        //Ask user which difficulty they would like to play on.
        System.out.println(" Which difficulty do you want? (1-3)");
        diff=input.nextInt();

我将使用的词语。

        //Setup level arrays.
        String [] wordsl1 = {"apple","truck","phone","paper","funny"};
        String [] wordsl2 = {"garbage","program","variety","comment","teacher"};
        String [] wordsl3 = {"yesterday","geography", "character","knowledge", "chemistry"};    

        //Setup main array.
        String [] gameword = new String [5];

        //Loop for them to choose difficulty.
        for (int i=0;i<5;i++){

        //If they user chose the easiest difficulty.
        if (diff==1){

            //Put Level one words into game array.
            gameword [i] = wordsl1[i];
        }

        //If they user chose the medium difficulty.
        else if (diff==2){

            //Put Level one words into game array.
            gameword [i] = wordsl2[i];
        }

        //If they user chose the hardest difficulty.
        else if (diff==3){

            //Put Level one words into game array.
            gameword [i] = wordsl3[i];      
            } 

        }

        //Randomly choose 1 word.
        int n=(int)(Math.random()* 6+ 0);
        String guessword = gameword[n];

        //Find the length of the word in the array.
        String leng = guessword;

        //Out put the number of letters in the word.
        System.out.println(" There are "+leng.length()+" letters in the word.");

        System.out.println(" ");

        //Create an array for the individual letters.
        String [] secretword = new String [leng.length()];

        //Create a for loop to add the words to the array.
        for (int i=0;i<leng.length();i++){

            //Add each letter to the secret array.
            secretword[i] = guessword.substring(i,i+1);
        }

        //Create an array for the blanks replacing the letters.
        String [] temp = new String [leng.length()];

        //Create a for loop to add the blanks to the temporary array.
        for (int i=0;i<leng.length();i++){

            //Fill the array with the dashes.
            temp[i] = "_";

            //Print the array
            System.out.print(temp[i]+"  ");
        }

        //While statement to check if its over.
        while (countwrong!=6 || gameword[n] != temp[n] || guesses!=26)  {

        System.out.println(" ");

        //Ask the user to guess a letter.
        System.out.println(" Guess a letter:");
        String a = input.next();

        //For loop to check the letter to see if it is part of the word.
        for (int i=0;i<leng.length();i++){

这是让我搞砸的部分。我知道这是错的,我不知道该怎么做!

            **//Check if the letter is in the word.

            //If it is.
            if (a == guessword.substring(i,i+1)){
             System.out.println("This letter is in the "+guessword.indexOf(a)+"th place.");
             temp[i] = temp[i].replace("_", a);
            }

            //If it isn't.
            else {

                //Increase the wrong count by one.
                countwrong++;
            }

我只应该使用我上面的索引替换单个部分,但我不知道如何。

            //Print the modified array.
            System.out.print(temp[i]+"  ");

        }**

        //Increase number of guesses by one.
        guesses++;

        }

Boring Outro。

            //If the user guessed correctly.
        if (gameword[n] == temp[n]){
            System.out.println(" You have guessed the word correctly! Congratulations!");
        }

        //If the user could not guess the word.
        else if (countwrong == 6){
            System.out.println(" Sorry. You have not guessed the word.");
            System.out.println(" The word was "+guessword+" .");
        }

            //Output the number of guesses the user took and how many times they got one wrong.
            System.out.println(" You took "+guesses+" guesses to get it right.");
            System.out.println(" You got a incorrect letter "+countwrong+" times.");        
    }

}

1 个答案:

答案 0 :(得分:1)

另一个String equals question: -

使用String#equals来比较Strings==运算符比较对象引用

if (a == guessword.substring(i,i+1)) {

应该是

if (a.equals(guessword.substring(i,i+1))){

另外,替换

if (gameword[n] == temp[n]) {

if (gameword[n].equals(temp[n])) {