2014-11-16 5 views
-3

Я пытаюсь создать программу палача, и у меня нет ошибок, но программа будет просто закончена, когда я запустил ее. Вы видите какие-либо проблемы с моим кодом? Могу ли я добавить StringBuilder в строки, которые меняют в моем коде? Я также хотел создать класс драйвера, но не уверен, что его вставить.Я не могу заставить свою рабочую программу java java работать

package hangman; 

import java.util.Random; 


public class hangman 
{ 
    public static void main1(String[] args){ 
    } 




    //the word to be guessed 

    private String word = null; 

    // the array of possible words */ 
    private String[] wordArray = {"help","word","work","pant", "farm", "blue", "swim", "bike", "jump", "snow"}; 

    // the random number generator */ 
    private Random randNumGen = new Random(); 

    // the characters that were guessed that were wrong */ 
    private String wrongGuesses = ""; 

    // the characters that were guessed that were right */ 
    private char[] rightGuesses = {' ',' ',' ', ' '}; 



    // Randomly picks the word from the wordArray 

    public hangman() 
    { 
    int index = randNumGen.nextInt(wordArray.length); 
    word = wordArray[index]; 
    } 





    public boolean guess() 
    { 
    boolean done = false; 

    Object SimpleInput; 
    // get input from user 
    String guessStr = ("Enter a letter"); 

    // check if still have at least one letter 
    if (guessStr.length() > 0) 
    { 
     // get first letter 
     char guessChar = guessStr.charAt(0); 

     // check this letter 
     done = this.guess(guessChar); 
    } 
    return done; 
    } 

    //Method to guess a letter 

    public boolean guess(char guessChar) 
    { 
    int index = word.indexOf(guessChar); 
    boolean done = false; 

    // if the letter is in the word 
    if (index >= 0) 
    { 


     // add letter to correctly guessed letters 
     rightGuesses[index] = guessChar; 


     // check if the user won 
     int numRightGuesses = 0; 
    if (numRightGuesses == 4) 
     { 

     done = true; 
     } 
    } 
    else 
    { 
     // add letter to string with wrong letters 
     wrongGuesses = wrongGuesses + guessChar + " "; 





     int numWrongGuesses = 0; 
    // check if this was the last wrong guess 
     if (numWrongGuesses == 6) 
     { 
     done = true; 
     } 
    } 
    return done; 
    } 

    /** 
    * Method to play the game till the user 
    * wins or loses 
    */ 
    public void playGame() 
    { 
    boolean done = false; 
    // loop while we haven't reached the end of the game 
    while (!(done = guess())) 
    {} 
    } 




} 
+0

Во-первых, основной метод ** требует ** для обозначения основного, а не основного1. Во-вторых, это то, что вызывается, когда ваше приложение запущено, поэтому вся ваша логика запуска должна идти туда :) –

+1

u должен начать с практики с программой «hello world» – nafas

ответ

0

Ваш основной() метод пуст. Это основная точка входа в ваше приложение, и она ничего не делает, поэтому программа выходит из строя. Успех ...?

0

заменить основной метод с помощью следующего кода, он будет создавать объект вашего класса и код внутри конструктора будет выполнен

public static void main(String[] args){ 
     hangman game = new hangman(); 
     game.PlayGame(); 
    } 
1

Вам нужен для вашой начальной программы. Компьютер должен знать, где начинается ваша программа.

Ваш метод public static void main(String[] args) в начале имеет «1» после «основного», что означает одну точку. Другое дело, что вы должны назвать свою игру основным методом.

public static void main(String[] args) { 
    hangman game = new hangman(); 
    game.playGame(); 
} 
+0

спасибо, что я собираюсь проголосовать за вас :) – Muhammad

+0

было бы любая другая причина, по которой все еще не будет работать после того, как я изменил свой основной метод на вышеупомянутое? – user3587461

Смежные вопросы