请给出具体示例代码
时间: 2023-07-29 20:07:47 浏览: 202
好的,下面是一个简单的示例代码,它实现了上述需求的一部分功能,您可以参考它来编写自己的代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
public class IdiomGame extends JFrame implements ActionListener {
private JTabbedPane tabbedPane;
private JPanel gamePanel;
private JLabel idiomLabel, scoreLabel, hintLabel;
private JTextField inputField;
private JButton confirmButton, hintButton;
private ArrayList<String> idiomList;
private int score;
private String currentIdiom;
public static void main(String[] args) {
IdiomGame game = new IdiomGame();
game.setVisible(true);
}
public IdiomGame() {
setTitle("成语接龙游戏");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建选项卡
tabbedPane = new JTabbedPane();
getContentPane().add(tabbedPane);
// 创建游戏模式面板
gamePanel = new JPanel();
gamePanel.setLayout(new BorderLayout());
tabbedPane.addTab("挑战模式", gamePanel);
// 创建成语标签
idiomLabel = new JLabel();
idiomLabel.setFont(new Font("宋体", Font.PLAIN, 20));
idiomLabel.setHorizontalAlignment(SwingConstants.CENTER);
gamePanel.add(idiomLabel, BorderLayout.NORTH);
// 创建输入框、确认按钮和提示按钮
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new FlowLayout());
inputField = new JTextField(10);
inputPanel.add(inputField);
confirmButton = new JButton("确认");
confirmButton.addActionListener(this);
inputPanel.add(confirmButton);
hintButton = new JButton("提示");
hintButton.addActionListener(this);
inputPanel.add(hintButton);
gamePanel.add(inputPanel, BorderLayout.CENTER);
// 创建得分和提示标签
JPanel infoPanel = new JPanel();
infoPanel.setLayout(new GridLayout(1, 2));
scoreLabel = new JLabel("得分: 0");
scoreLabel.setFont(new Font("宋体", Font.PLAIN, 16));
scoreLabel.setHorizontalAlignment(SwingConstants.CENTER);
infoPanel.add(scoreLabel);
hintLabel = new JLabel("");
hintLabel.setFont(new Font("宋体", Font.PLAIN, 16));
hintLabel.setHorizontalAlignment(SwingConstants.CENTER);
infoPanel.add(hintLabel);
gamePanel.add(infoPanel, BorderLayout.SOUTH);
// 初始化成语列表和分数
idiomList = new ArrayList<>();
idiomList.add("千姿百态");
idiomList.add("天伦之乐");
idiomList.add("饮食男女");
idiomList.add("相见恨晚");
score = 0;
// 随机选择一个成语作为起始成语
currentIdiom = idiomList.get(new Random().nextInt(idiomList.size()));
idiomLabel.setText(currentIdiom);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == confirmButton) {
// 获取用户输入的成语
String inputIdiom = inputField.getText().trim();
// 判断成语是否符合规则
if (inputIdiom.length() == 4 && inputIdiom.charAt(0) == currentIdiom.charAt(3)) {
// 计算分数并更新得分标签
score += 10;
scoreLabel.setText("得分: " + score);
// 随机选择一个新的成语作为起始成语
currentIdiom = idiomList.get(new Random().nextInt(idiomList.size()));
idiomLabel.setText(currentIdiom);
// 清空输入框和提示标签
inputField.setText("");
hintLabel.setText("");
} else {
// 显示错误提示
JOptionPane.showMessageDialog(this, "成语不符合规则,请重新输入!", "错误", JOptionPane.ERROR_MESSAGE);
}
} else if (e.getSource() == hintButton) {
// 随机选择一个提示
String hint = "下一个字是" + currentIdiom.charAt(3);
hintLabel.setText(hint);
}
}
}
```
这个代码实现了一个简单的成语接龙游戏,包括了选择游戏模式、显示成语、输入成语、判断成语是否符合规则、计算分数、随机选择新的成语、显示提示等功能。您可以运行它来看看效果。当然,它还有很多不足之处,需要根据您的具体需求进行修改和完善。
阅读全文