import java.io.File;
import java.util.*;
import javax.swing.JOptionPane;
public class Hangman1 {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
Random ran = new Random();
Scanner file = new Scanner(new File("word.txt"));
String dictionary = file.nextLine();
char array2[];
String wordlist[] = {"accoutrements","acumen","anomalistic","auspicious","bellwether","callipygian","circumlocution"};
int number = ran.nextInt(7);
String in = null;
in = wordlist[number];
//System.out.println(number);
String guess;
int numofchances = 9,k=0,p=0,q=0;
array2 = new char[numofchances+1];
boolean array[],b=true;
array = new boolean[in.length()];
for (int u=0;u<in.length();u++)
{
array[u]=false;
}
while(numofchances >= 1 && b){
numofchances--;
System.out.println("Enter your guess: ");
guess = input.nextLine();
if (q==0)
{
System.out.println("-------------");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if (q==1)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==2)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==3)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| / ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==4)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| /| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==5)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| /|\\ ");
System.out.println("| ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==6)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| /|\\ ");
System.out.println("| | ");
System.out.println("| ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==7)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| /|\\ ");
System.out.println("| | ");
System.out.println("| / ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
else if(q==8)
{
System.out.println("-------------");
System.out.println("| | ");
System.out.println("| o ");
System.out.println("| /|\\ ");
System.out.println("| | ");
System.out.println("| / \\ ");
System.out.println("| ");
System.out.println("|");
System.out.println("-------------");
}
char character = guess.charAt(0);
array2[k] = character;
k++;
p = 0;
for(int i=0;i<in.length();i++){
char c = in.charAt(i);
if(c == character || array[i]==true){
System.out.print(c+" ");
array[i] = true;
p = 1;
}else{
System.out.print("_ ");
}
}
if (p==0)
q++;
System.out.println();
for(int i=0;i<k;i++){
System.out.print(array2[i]+" ");
}
System.out.println();
b = false;
System.out.println();
for (int i=0;i<in.length();i++){
if (array[i]==false)
b=true;
}
}
if(b){
System.out.println("You lose.");
}
else{
System.out.println("You won.");
}
}
}
程序总是输出“hangman”的帧,并且每当猜到错误的字母时它都不会输出其余的图片。
答案 0 :(得分:0)
JOptionPane
将String
作为参数显示给它。你不能使用println()来打印它。
您需要将String与\n
连接起来,而不是打印。这样的事情。
import javax.swing.JOptionPane;
public class Test {
public static void main(String[] args){
String hangman =
"-------------" + "\n" +
"| | " + "\n" +
"| o " + "\n" +
"| /|\\ " + "\n" +
"| | " + "\n" +
"| / \\ " + "\n" +
"| " + "\n" +
"|" + "\n" +
"-------------";
JOptionPane.showMessageDialog(null,hangman);
}
}
测试这个简单的程序,看看我在说什么。
答案 1 :(得分:0)
您正在打印的被绞死的人的版本基于q
变量,因此每次在单词中找不到猜到的字母时,它自然会递增,但是只有在它增加时才会增加在这个词中没有找到任何猜测的信件。如果你只输入错误的字母,你会看到这个男人一件一件地出现。
问题是递增q
由p==0
控制,p
设置为1 c == character || array[i]==true
,其中array
是所有记录以前正确猜到的字母。您只需在p = 1
时设置c == character
,而不是其他任何内容。
您可能还想考虑使用更具描述性的变量名称,因为这可以帮助您发现这些问题。