[英]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.