Java实现数独游戏源代码,包含界面

  • i0_382243
    了解作者
  • 21KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-23 10:50
    上传日期
由于学生水平有限,所以只是实现了数独的功能,作为一个练习题并为考虑算法效率。
ShuDuGameFinalVesion.zip
  • ShuDuGameFinalVesion
  • src
  • GameCore.java
    3KB
  • GameFrame.java
    24.1KB
  • .settings
  • org.eclipse.jdt.core.prefs
    629B
  • bin
  • GameFrame$2.class
    971B
  • GameFrame$3.class
    779B
  • GameFrame$1.class
    799B
  • GameFrame$5.class
    888B
  • GameCore.class
    2.4KB
  • GameFrame.class
    14.9KB
  • GameFrame$4.class
    876B
  • .project
    396B
  • .classpath
    301B
内容介绍
import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.ButtonGroup; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JRadioButton; import java.awt.GridLayout; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.Iterator; import java.util.Stack; import java.util.Vector; import java.util.zip.ZipEntry; public class GameFrame extends JFrame implements ActionListener{ private JPanel contentPane; private Vector<JButton> buttonsVector; //存放81个按钮 private Vector<JButton> numberButtonVector; //存放9个数字键 private Vector<JRadioButton> radioButtonsvVector; //存放3个单选框 private JButton choosedButton; //当前被选中的按钮,表示将要被修改 private GameCore core; //游戏内核,含有游戏算法 private int holeNumber = 25; //默认为简单,挖25空 private int[][] backup; //用来备份游戏,用于清除后重新导入 private JButton btnNewButton; //重新开始按钮 public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { GameFrame frame = new GameFrame(); frame.setVisible(true); frame.setResizable(false); frame.setTitle("数独游戏"); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public GameFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 460, 545); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu mnNewMenu = new JMenu("\u83DC\u5355"); menuBar.add(mnNewMenu); JMenuItem menuItem = new JMenuItem("\u6E38\u620F\u89C4\u5219"); menuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, "数独(すうどく,Sudoku)是一种运用纸、\n" + "笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足\n" + "每一行、每一列、每一个粗线宫内的数字均含1-9,不重复"); } }); mnNewMenu.add(menuItem); JMenuItem mntmNewMenuItem = new JMenuItem("\u7248\u672C\u4FE1\u606F"); mntmNewMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, "版本:数独1.0\n" + "开发者:李繁\n" + "开发时间:2014年7月16日"); } }); mnNewMenu.add(mntmNewMenuItem); JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u4F7F\u7528\u624B\u518C"); mntmNewMenuItem_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, "该游戏有”简单“、”一般“、”困难“三个难度级别\n" + "“开始新游戏”开始新的一局游戏,”清除已填“则清除当前已填数字"); } }); mnNewMenu.add(mntmNewMenuItem_1); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.SOUTH); panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); JButton button = new JButton("1"); button.setFont(new Font("Batang", Font.PLAIN, 10)); panel.add(button); JButton button_1 = new JButton("2"); button_1.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_1); JButton button_2 = new JButton("3"); button_2.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_2); JButton button_3 = new JButton("4"); button_3.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_3); JButton button_4 = new JButton("5"); button_4.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_4); JButton button_5 = new JButton("6"); button_5.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_5); JButton button_6 = new JButton("7"); button_6.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_6); JButton button_7 = new JButton("8"); button_7.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_7); JButton button_8 = new JButton("9"); button_8.setFont(new Font("宋体", Font.PLAIN, 10)); panel.add(button_8); JPanel panel_1 = new JPanel(); contentPane.add(panel_1, BorderLayout.NORTH); panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); btnNewButton = new JButton("\u5F00\u59CB\u65B0\u6E38\u620F"); btnNewButton.addActionListener(this); panel_1.add(btnNewButton); JButton btnNewButton_1 = new JButton("\u6E05\u9664\u5DF2\u586B"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {//清除所有按钮监听器 for (int i = 0; i < 9; i ++) { for (int j = 0; j < 9; j ++) { core.test[i][j] = backup[i][j]; } } initGame(); } }); panel_1.add(btnNewButton_1); //默认为单选按钮 “简单”被选中 JRadioButton rdbtnNewRadioButton = new JRadioButton("\u7B80\u5355", true); panel_1.add(rdbtnNewRadioButton); JRadioButton radioButton = new JRadioButton("\u4E00\u822C"); panel_1.add(radioButton); JRadioButton radioButton_1 = new JRadioButton("\u96BE"); panel_1.add(radioButton_1); //单选按钮组,让三个按钮互斥 ButtonGroup group = new ButtonGroup(); group.add(rdbtnNewRadioButton); group.add(radioButton); group.add(radioButton_1); JPanel panel_2 = new JPanel(); contentPane.add(panel_2, BorderLayout.CENTER); panel_2.setLayout(new GridLayout(9, 9, 0, 0)); JButton btnNewButton_2 = new JButton(""); btnNewButton_2.setForeground(Color.BLACK); btnNewButton_2.setBackground(Color.PINK); panel_2.add(btnNewButton_2); JButton btnNewButton_3 = new JButton(""); btnNewButton_3.setBackground(Color.PINK); panel_2.add(btnNewButton_3); JButton btnNewButton_4 = new JButton(""); btnNewButton_4.setBackground(Color.PINK); panel_2.add(btnNewButton_4); JButton btnNewButton_5 = new JButton(""); btnNewButton_5.setBackground(Color.CYAN); panel_2.add(btnNewButton_5); JButton btnNewButton_6 = new JButton(""); btnNewButton_6.setBackground(Color.CYAN); btnNewButton_6.addActionListener(this); panel_2.add(btnNewButton_6); JButton btnNewButton_7 = new JButton(""); btnNewButton_7.setBackground(Color.CYAN); panel_2.add(btnNewButton_7); JButton btnNewButton_8 = new JButton(""); btnNewButton_8.setBackground(Color.PINK); panel_2.add(btnNewButton_8); JButton btnNewButton_9 = new JButton(""); btnNewButton_9.setBackground(Color.PINK); panel_2.add(btnNewButton_9); JButton btnNewButton_10 = new JButton(""); btnNewButton_10.setBackground(Color.PINK); panel_2.add(btnNewButton_10); JButton btnNewButton_11 = new JButton(""); btnNewButton_11.setBackground(Color.PINK); panel_2.add(btnNewButton_11); JButton btnNewButton_12 = new JButton(""); btnNewButton_12.setBackground(Color.PINK); panel_2.add(btnNewButton_12); JButton btnNewButton_13 = new JButton(""); btnNewButton_13.setBackground(Color.PINK); panel_2.add(btnNewButton_13); JButton btnNewButton_14 = new JButton(""); btnNewButton_14.setBackground(Color.CYAN); panel_2.add(btnNewButton_14); JButton btnNewButton_15 = new JButton(""); btnNewButton_15.setBackground(Color.CYAN); panel_2.add(btnNewButton_15); JButton btnNewButton_16 = new JButton(""); btnNewButton_16.setBackground(Color.CYAN); panel_2.add(btnNewButton_16); JButton btnNewButton_17 = new JButton(""); btnNewButton_17.setBackground(Color.PINK); panel_2.add(btnNewButton_17); JButton btnNewButton_18 = new JButton(""); btnNewB
评论
    相关推荐
    • SVM 算法 java 实现
      SVM 算法 java 实现了调用接口,只要传入数据即可,调用了encog这个开源包的SVM算法,也是官方libsvm的。
    • 经典算法Java实现
      包括JAVA的经典算法和实现,用于JAVA的学习和研究
    • 遗传算法java工程
      工程利用遗传算法解决多路复用器的模拟状态,里面有充分的技术文档(英语)以及代码注释,自己写的,用不到了以后。贡献出来给大家。
    • LRU算法 java实现
      LRU算法java实现
    • 国密算法java实现
      国家商用密码管理局公布的标准国密算法SM4的算法实现哦
    • 遗传算法java实现
      本代码为Java实现的遗传算法,压缩包中有详细的说明,希望对各位有帮助
    • SVM 算法 java版本
      SVM 算法 java 实现了调用接口,只要传入数据即可,调用了encog这个开源包的SVM算法,也是官方libsvm的。
    • AHP算法java实现
      java实现AHP算法,包括文档说明,算法介绍等ppt文档 欢迎使用
    • DES算法Java实现
      DES算法Java代码实现,适用于学生交作业
    • tomasulo算法java实现
      自己用java实现的一个简单的tomasulo算法的实现对,并且做了界面,有助于对tomasulo算法有一个更好的了解