一个java 版本的俄罗斯方块。先说小弟java水平尚属初级水平所有见笑了 有些bug,不想继续修改了,但是所有的基本功能都实现了。如果有需要的,可以参考一下
方块构造类
package com;
import java.util.Random;
public class Fangk {
private String[][] fklist = {
{"0000111100000000","0100010001000100","0000111100000000","0100010001000100"},
{"0000011001100000","0000011001100000","0000011001100000","0000011001100000"},
{"0000001001110000","0010001100100000","0000011100100000","0010011000100000"},
{"0010011001000000","0000011000110000","0010011001000000","0000011000110000"},
{"0100011000100000","0000001101100000","0100011000100000","0000001101100000"},
{"0000010001100010","0000011011000000","0000010001100010","0000011011000000"},
{"0000011101000000","0110001000100000","0000000101110000","0000010001000110"},
};
private int pcl;
private int scl;
private int lpcl;
private int lscl;
public int[] Fack(){
int[] a = new int [16];
Fangk ab = new Fangk();
Random rand = new Random();
lpcl = rand.nextInt(7);
lscl = rand.nextInt(3);
// System.out.println("fuck"+pcl+"ou"+scl);
for(int i=0;i<16;i++){
if((ab.fklist[lpcl][lscl].charAt(i)+"").equals("1"))a[i]=1;
else a[i]=0;
}
return a;
}
public int [] getNext(){
int[] a = new int [16];
Fangk ab = new Fangk();
int scl1;
//如果不是 该行的最後一个
if(scl!=3)scl1=scl+1;
else scl1=0;
for(int i=0;i<16;i++){
if((ab.fklist[pcl][scl1].charAt(i)+"").equals("1"))a[i]=1;
else a[i]=0;
}
return a;
}
public int getScl() {
return scl;
}
public void setScl() {
if(scl!=3)scl=scl+1;
else scl=0;
}
public void setScl1(int scl) {
this.scl =scl;
}
public int getLpcl() {
return lpcl;
}
public void setLpcl(int lpcl) {
this.lpcl = lpcl;
}
public int getLscl() {
return lscl;
}
public void setLscl(int lscl) {
this.lscl = lscl;
}
public int getPcl() {
return pcl;
}
public void setPcl(int pcl) {
this.pcl = pcl;
}
}
主类(其中 包括内部控制方块类 )
package com;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
@SuppressWarnings("serial")
public class Table extends JFrame {
MyJpanel[][] pan = new MyJpanel[23][15];
MyJpanel[][] next=new MyJpanel[4][4];
JButton button = new JButton("开始/暂停");
JButton button2 = new JButton("新游戏");
JButton button1 = new JButton("重来一回");
TextField curScore = new TextField();
Control tt1 = new Control();
int pause=0; /*用来判断继续或者暂停*/
int change =0;