簡體   English   中英

需要幫助編碼Hang子手

[英]Need help coding Hangman

這是我為計算機科學決賽編寫的子手代碼。 我需要幫助弄清楚如果他們猜出一個已經猜到的字母,該如何告訴玩家選擇另一個字母。 任何建議將不勝感激!

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class HangmanJava
{
    public static void main(String[] args)             
    {
        String input;
        boolean NotFullMan = true;                    
        char guessedLetter = ' ';                          
        Scanner hm = new Scanner(System.in);
        System.out.println("Enter the hangman word");
        input = hm.nextLine();                          
        List<String> letterGuesses = new ArrayList<String>();

        char[] charArray = input.toCharArray();             
        StringBuffer buffer = new StringBuffer(input.length());          
        int totalCorrect = 0;     

        for (int i = 0; i < input.length(); i++)
            buffer.append('_');

        while (NotFullMan){
            System.out.println("Enter a letter");
            guessedLetter = hm.nextLine().charAt(0);         
            int correct = 0;

            for (int i=0; i < charArray.length; i++){                
                if(guessedLetter == charArray[i] && buffer.charAt(i) == '_'){ 
                    correct++;
                    totalCorrect++;                         
                    buffer.setCharAt(i, guessedLetter);
                }
            }
            System.out.println("You got " + correct + " correct!");
            System.out.println(buffer.toString());

            if (letterGuesses.contains(guessedLetter)){
                System.out.println("Letter already chosen. Please pick another.");
            }
            else {
                letterGuesses.append(guessedLetter);
            }

            if (totalCorrect == input.length()){
                System.out.println("You win!");
                return;
            } 
        }
    }
}

您需要將猜測的字母添加到以前的猜測列表中。 此外,您先前的猜測List<Character>可能應該是List<Character>而不是String以便您可以直接添加並與您猜測的字符輸入進行比較。

將letterGuesses的類型更改為ArrayList,然后將append添加為add,如下所示。

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class HangmanJava {
    public static void main(String[] args) {
        String input;
        boolean NotFullMan = true;                    
        char guessedLetter = ' ';                          
        Scanner hm = new Scanner(System.in);
        System.out.println("Enter the hangman word");
        input = hm.nextLine();                          
        List<Character> letterGuesses = new ArrayList<Character>();


        char[] charArray = input.toCharArray();             
        StringBuffer buffer = new StringBuffer(input.length());          
        int totalCorrect = 0;     

        for (int i = 0; i < input.length(); i++)           
            buffer.append('_');

        while (NotFullMan)
        {
            System.out.println("Enter a letter");
            guessedLetter = hm.nextLine().charAt(0);         
            int correct = 0;

            for ( int i=0; i < charArray.length; i++)
            {                
                if(guessedLetter == charArray[i] && buffer.charAt(i) == '_')
                { 
                    correct++;
                    totalCorrect++;                         
                    buffer.setCharAt(i, guessedLetter);
                }
            }
            System.out.println("You got " + correct + " correct!");
            System.out.println(buffer.toString());

            if (letterGuesses.contains(guessedLetter))
            {
                System.out.println("Letter already chosen. Please pick another.");
            }
            else 
            {
                letterGuesses.add(guessedLetter);
            }


            if (totalCorrect == input.length())   
            {
                System.out.println("You win!");
                return;
            }

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM