【发布时间】:2014-11-01 04:00:57
【问题描述】:
我尝试在网上查找并没有罚款任何有用的东西,我正在制作一个刽子手游戏,我想要一个可以从一大堆单词中随机获取一个单词的字符串,我想如果我让我的所有单词变量像word1,并创建了一个等于单词加上随机整数 Ex 的字符串。 String randomWord = word+randomInt; 然后制作了一个随机数生成器,它将生成一个随机数并将其设置为 randomInt,但是当我这样做时它告诉我 word 不是变量,我尝试将 ' 这些东西放在整个语句中,但它没有不行,我怎么能这样?
代码:
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.applet.*;
import java.lang.*;
public class hangMan {
public static void main(String[] arg) {
Random random = new Random();
int randomInt = random.nextInt(2) + 1;
System.out.println("Random Integer in Java: " + randomInt);
//word letters
final String word1Letter1 = "l";
final String word1Letter2 = "u";
final String word1Letter3 = "d";
final String word1Letter4 = "e";
final String word1 = "lude";
final String word2Letter1 = "l";
final String word2Letter2 = "o";
final String word2Letter3 = "s";
final String word2Letter4 = "e";
final String word2 = "lose";
final String word3Letter1 = "s";
final String word3Letter2 = "t";
final String word3Letter3 = "o";
final String word3Letter4 = "p";
final String word3 = "stop";
//fault counter
final int faultCounter = 8;
String randomWord = word+randomInt;
//looks for the game ----------------------------------------------------------------------------------
JFrame hangPanel = new JFrame("Hang Game");
hangPanel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hangPanel.setLocationRelativeTo(null);
JPanel northContainer = new JPanel();
northContainer.setVisible(true);
northContainer.setBackground(Color.gray);
JPanel southContainer = new JPanel();
southContainer.setVisible(true);
southContainer.setBackground(Color.gray);
final JEditorPane outComunication = new JEditorPane();
outComunication.setVisible(true);
outComunication.setBackground(Color.lightGray);
outComunication.setEditable(false);
outComunication.setSize(300,50);
final JEditorPane counterOutComunication = new JEditorPane();
counterOutComunication.setVisible(true);
counterOutComunication.setBackground(Color.lightGray);
counterOutComunication.setEditable(false);
counterOutComunication.setSize(90,50);
counterOutComunication.setText("Tries left: " + faultCounter);
JPanel wordLayer = new JPanel();
wordLayer.setVisible(true);
wordLayer.setBackground(Color.lightGray);
final JTextField wordLayerLetter1 = new JTextField(2);
wordLayerLetter1.setVisible(true);
wordLayerLetter1.setEditable(false);
final JTextField wordLayerLetter2 = new JTextField(2);
wordLayerLetter2.setVisible(true);
wordLayerLetter2.setEditable(false);
final JTextField wordLayerLetter3 = new JTextField(2);
wordLayerLetter3.setVisible(true);
wordLayerLetter3.setEditable(false);
final JTextField wordLayerLetter4 = new JTextField(2);
wordLayerLetter4.setVisible(true);
wordLayerLetter4.setEditable(false);
final JButton nextWord = new JButton("Next Word");
nextWord.setVisible(false);
final JTextField guessField = new JTextField(10);
guessField.setVisible(true);
//Functionality of the game --------------------------------------------------------------------------
guessField.addActionListener(
new ActionListener()
{
public int innerFaultCounter = faultCounter;
public void actionPerformed(ActionEvent event)
{
String enteredText = guessField.getText();
guessField.setEditable(true);
if(enteredText.equals(word1Letter1))
{
outComunication.setText("The letter \"" + enteredText + "\" is correct");
wordLayerLetter1.setText(word1Letter1);
guessField.setText("");
} else if(enteredText.equals(word1Letter2)) {
outComunication.setText("The letter \"" + enteredText + "\" is correct");
wordLayerLetter2.setText(word1Letter2);
guessField.setText("");
} else if(enteredText.equals(word1Letter3)) {
outComunication.setText("The letter \"" + enteredText + "\" is correct");
wordLayerLetter3.setText(word1Letter3);
guessField.setText("");
} else if(enteredText.equals(word1Letter4)) {
outComunication.setText("The letter \"" + enteredText + "\" is correct");
wordLayerLetter4.setText(word1Letter4);
guessField.setText("");
} else if(enteredText.equals(word1)) {
outComunication.setText("The word \"" + enteredText + "\" is correct");
wordLayerLetter1.setText(word1Letter1);
wordLayerLetter2.setText(word1Letter2);
wordLayerLetter3.setText(word1Letter3);
wordLayerLetter4.setText(word1Letter4);
guessField.setText("");
} else if(enteredText.equals("")) {
outComunication.setText("Please type something");
guessField.setText("");
} else {
outComunication.setText("The letter/Word \"" + enteredText + "\" is wrong");
guessField.setText("");
innerFaultCounter = innerFaultCounter - 1;
counterOutComunication.setText("Tries left: " + innerFaultCounter);
}
//make an if statement that sets the correct word if tries = 0
if(innerFaultCounter == 0) {
guessField.setEditable(false);
nextWord.setVisible(true);
innerFaultCounter = faultCounter;
counterOutComunication.setText("Tries left: " + innerFaultCounter);
outComunication.setText("The correct word is \"" + word1 + "\"");
}
String letterWordLayerLetter1 = wordLayerLetter1.getText();
String letterWordLayerLetter2 = wordLayerLetter2.getText();
String letterWordLayerLetter3 = wordLayerLetter3.getText();
String letterWordLayerLetter4 = wordLayerLetter4.getText();
if(letterWordLayerLetter1.equals(word1Letter1)) {
if(letterWordLayerLetter2.equals(word1Letter2)) {
if(letterWordLayerLetter3.equals(word1Letter3)) {
if(letterWordLayerLetter4.equals(word1Letter4)) {
nextWord.setVisible(true);
guessField.setEditable(false);
innerFaultCounter = faultCounter;
counterOutComunication.setText("Tries left: " + innerFaultCounter);
outComunication.setText("The word \"" + word1 + "\" is correct");
}
}
}
}
}
}
);
nextWord.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
guessField.setEditable(true);
nextWord.setVisible(false);
wordLayerLetter1.setText("");
wordLayerLetter2.setText("");
wordLayerLetter3.setText("");
wordLayerLetter4.setText("");
outComunication.setText("");
}
}
);
//Sorting the pecies of the program intothe display
wordLayer.add(wordLayerLetter1);
wordLayer.add(wordLayerLetter2);
wordLayer.add(wordLayerLetter3);
wordLayer.add(wordLayerLetter4);
wordLayer.add(nextWord);
northContainer.add(guessField, BorderLayout.NORTH);
northContainer.add(wordLayer, BorderLayout.SOUTH);
southContainer.add(outComunication, BorderLayout.EAST);
southContainer.add(counterOutComunication, BorderLayout.WEST);
hangPanel.add(southContainer, BorderLayout.SOUTH);
hangPanel.add(northContainer, BorderLayout.NORTH);
hangPanel.pack();
hangPanel.setVisible(true);
}
}
现在唯一相关的部分是第一行,剩下的就是整个游戏功能,我没有将actionListener中的if语句设置为randomWord,因为直到@987654326我才会这样做@ 工作正常,我该如何解决这个问题?
【问题讨论】:
-
now the only part that is relavent is the first bunch of lines... -
天哪,是时候了解
arrays了。 -
我想是时候打开程序员最好的朋友 API 了
标签: java string variables random int