| 关键词: nbsp import int Random numlabellist new scorelabel public JLabel 格子 |
写的比较匆忙,功能较为单一,界面丑,操作步数应该还能优化。最终还是要写AI,但好像没那么简单,写了几个关于格局评价的函数,还得继续学习。。。上下左右方向键操作。源代码:[java] view plaincopyprint?import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.*; import java.util.Random; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; public class My2048 extends JFrame { JPanel numpanel = new JPanel(); JPanel scorepanel = new JPanel(); JLabel numlabellist[][] = new JLabel[4][4];// 数字格子 int numlist[][] = new int[4][4];// 数组格子对应数值 int blanks = 16;// 空白格子数 int score=0;//总得分 JLabel scorelabel=new JLabel(); int numlist2[][] = new int[4][4];//用于格局评价时的数组 int smoothweight=1; int monoweight=10; int emptyweight=27; int maxweight=10; public static void main(String[] args) { new My2048().launchFrame(); } public void AddNumArea() { for (int i = 0; i < 4; i++) for (int j = 0; j < 4; j++) { numlabellist[i][j] = new JLabel(); numlist[i][j] = 0; numlabellist[i][j].setBackground(Color.LIGHT_GRAY); numlabellist[i][j].setBorder(new TitledBorder("")); numlabellist[i][j].setFont(new Font("Romantic", Font.BOLD, 35)); numlabellist[i][j].setHorizontalAlignment(JTextField.CENTER); numpanel.add(numlabellist[i][j]); } } public void AddScoreLabel(){ scorelabel.setBackground(Color.MAGENTA); scorelabel.setFont(new Font("Romantic", Font.BOLD, 35)); scorelabel.setHorizontalAlignment(JTextField.CENTER); scorelabel.setText("score:"+Integer.toString(score)); scorepanel.add(scorelabel); } // 随机选一个空白格子 public int RandomIndex(int blanks) { Random random = new Random(System.currentTimeMillis()); int result = random.nextInt(blanks)+1; return result; } // 2,4随机选一个 public int RandomValue() { Random random = new Random(); int result = random.nextInt(2); return (result+1)*2; } //空白处产生一新值,自带refresh功能 public void NewValue() { int newvalue = Ran |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|