刽子手图片不显示?

时间:2013-11-15 02:47:14

标签: java

好的,所以我在java中制作一个刽子手游戏,但我唯一的问题是该程序没有正确显示实际的“刽子手”。这是我的代码:

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”的帧,并且每当猜到错误的字母时它都不会输出其余的图片。

2 个答案:

答案 0 :(得分:0)

JOptionPaneString作为参数显示给它。你不能使用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变量,因此每次在单词中找不到猜到的字母时,它自然会递增,但是只有在它增加时才会增加在这个词中没有找到任何猜测的信件。如果你只输入错误的字母,你会看到这个男人一件一件地出现。

问题是递增qp==0控制,p设置为1 c == character || array[i]==true,其中array是所有记录以前正确猜到的字母。您只需在p = 1时设置c == character,而不是其他任何内容。

您可能还想考虑使用更具描述性的变量名称,因为这可以帮助您发现这些问题。