!高分跪下求帮忙写一个简单小程序的JAVA课程设计报告(详细!!)

连连看java源代码

导入javax . swing . *;

导入Java . awt . *;

导入Java . awt . event . *;

公共类连连看实现ActionListener

{

JFrame主机;//主面板

容器thisContainer

JPanel centerPanel,southPanel,northPanel//子面板

JButton diamonds button[][]= new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton//退出、重新排序和重新启动按钮

JLabel fractional able = new JLabel(" 0 ");//分数标签

JButton firstButton,secondButton//分别记录两次选中的按钮。

int grid[][]= new int[8][7];//存储游戏按钮的位置

静态布尔表达式信息=假;//判断按钮是否被选中。

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV//游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

public void init(){

MainFrame = new JFrame(“JKJ连连看”);

this container = mainframe . getcontentpane();

this container . set layout(new BorderLayout());

center panel = new JPanel();

south panel = new JPanel();

north panel = new JPanel();

thisContainer.add(centerPanel," Center ");

thisContainer.add(southPanel," South ");

thisContainer.add(northPanel," North ");

center panel . set layout(new GridLayout(6,5));

for(int cols = 0;cols & lt6;cols++){

for(int rows = 0;行数& lt5;rows++ ){

diamonds button[cols][rows]= new JButton(string . value of(grid[cols+1][rows+1]);

菱形按钮[列][行]。addActionListener(this);

center panel . add(diamonds button[cols][rows]);

}

}

exit button = new JButton(" exit ");

exit button . addactionlistener(this);

reset button = new JButton(" regroup ");

reset button . addactionlistener(this);

NewlyButton=new JButton("再来一局");

newly button . addactionlistener(this);

south panel . add(exit button);

south panel . add(reset button);

south panel . add(newly button);

fraction lable . settext(string . value of(integer . parse int(fraction lable . gettext())));

north panel . add(fractional able);

mainframe . set bounds(280100500450);

mainframe . set visible(true);

}

public void randomBuild() {

int randoms,cols,rows

for(int twins = 1;双胞胎& lt=15;双胞胎++) {

randoms =(int)(math . random()* 25+1);

for(int like = 1;相似& lt=2;like++) {

cols =(int)(math . random()* 6+1);

rows =(int)(math . random()* 5+1);

while(grid[cols][rows]!=0) {

cols =(int)(math . random()* 6+1);

rows =(int)(math . random()* 5+1);

}

this . grid[cols][rows]= randoms;

}

}

}

公共空隙率(){

fraction lable . settext(string . value of(integer . parse int(fraction lable . gettext())+100));

}

公共void reload() {

int save[]= new int[30];

int n=0,cols,rows

int grid[][]= new int[8][7];

for(int I = 0;我& lt=6;i++) {

for(int j = 0;j & lt=5;j++) {

if(this.grid[i][j]!=0) {

save[n]= this . grid[I][j];

n++;

}

}

}

n = n-1;

this.grid = grid

while(n & gt;=0) {

cols =(int)(math . random()* 6+1);

rows =(int)(math . random()* 5+1);

while(grid[cols][rows]!=0) {

cols =(int)(math . random()* 6+1);

rows =(int)(math . random()* 5+1);

}

this . grid[cols][rows]= save[n];

n-;

}

mainframe . set visible(false);

pressInformation = false//此处按钮点击信息必须归类为初始。

init();

for(int I = 0;我& lt6;i++){

for(int j = 0;j & lt5;j++ ){

if(grid[I+1][j+1]= = 0)

菱形按钮[i][j]。set visible(false);

}

}

}

public void estimate even(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x = placeX

y = placeY

second msg = grid[x][y];

secondButton = bz

pressInformation = true

}

否则{

x0 = x;

y0 = y;

fristMsg = secondMsg

firstButton = secondButton

x = placeX

y = placeY

second msg = grid[x][y];

secondButton = bz

if(frist msg = = second msg & amp;& amp秒按钮!=firstButton){

肖();

}

}

}

Public void xiao() {//相同情况下可以消除吗?仔细分析,不是笔记。

if((x0 = = x & amp;& amp(y0 = = y+1 | | y0 = = y-1))| |((x0 = = x+1 | | x0 = = x-1)& amp;& amp(y0 = = y)){//判断它们是否相邻。

移除();

}

否则{

for(j = 0;j & lt7;j++ ) {

If (grid[x0][j]==0){ //确定第一个按钮行中的哪个按钮为空。

如果(y & gtJ) {//如果第二个按钮的Y坐标大于空按钮的Y坐标,则第一个按钮在第二个按钮的左边。

for(I = y-1;我& gt= j;I-){//判断第二个按钮左边到第一个按钮中间是否有按钮。

if (grid[x][i]!=0) {

k = 0;

打破;

}

else { k = 1;} //K=1表示通过了第一次验证。

}

if (k==1) {

line passone();

}

}

if(y & lt;J){ //如果第二个按钮的Y坐标小于空按钮的Y坐标,则第一个按钮在第二个按钮的右边。

for(I = y+1;我& lt= j;I++ ){ //判断第二个按钮左边到第一个按钮中间是否有按钮。

if (grid[x][i]!=0){

k = 0;

打破;

}

else { k = 1;}

}

if (k==1){

line passone();

}

}

if (y==j ) {

line passone();

}

}

if (k==2) {

if (x0==x) {

移除();

}

如果(x0 & ltx) {

for(n = x0;n & lt= x-1;n++ ) {

if (grid[n][j]!=0) {

k = 0;

打破;

}

if(grid[n][j]= = 0 & amp;& ampn==x-1) {

移除();

}

}

}

如果(x0 & gtx) {

for(n = x0;n & gt= x+1;n - ) {

if (grid[n][j]!=0) {

k = 0;

打破;

}

if(grid[n][j]= = 0 & amp;& ampn==x+1) {

移除();

}

}

}

}

}

for(I = 0;我& lt8;I++) {//列

if (grid[i][y0]==0) {

if(x & gt;i) {

for(j = x-1;j & gt= I;j - ) {

if (grid[j][y]!=0) {

k = 0;

打破;

}

else { k = 1;}

}

if (k==1) {

rowPassOne();

}

}

if(x & lt;i) {

for(j = x+1;j & lt= I;j++ ) {

if (grid[j][y]!=0) {

k = 0;

打破;

}

else { k = 1;}

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

移除();

}

如果(y0 & lty) {

for(n = y0;n & lt= y-1;n++ ) {

if (grid[i][n]!=0) {

k = 0;

打破;

}

if(grid[I][n]= = 0 & amp;& ampn==y-1) {

移除();

}

}

}

如果(y0 & gty) {

for(n = y0;n & gt= y+1;n - ) {

if (grid[i][n]!=0) {

k = 0;

打破;

}

if(grid[I][n]= = 0 & amp;& ampn==y+1) {

移除();

}

}

}

}

}

}

}

公共void linePassOne(){

如果(y0 & gtJ){ //第一个按钮在同一行,空按钮在左边。

for(I = y0-1;我& gt= j;I-){//判断第一个按钮和左侧空按钮之间是否有按钮。

if(网格[x0][i]!=0) {

k = 0;

打破;

}

else { k = 2;} //K=2表示第二次验证已经通过。

}

}

如果(y0 & ltJ){ //第一个按钮在第一个按钮和第二个按钮之间。

for(I = y0+1;我& lt= j;i++){

if(网格[x0][i]!=0) {

k = 0;

打破;

}

else { k = 2;}

}

}

}

public void rowPassOne(){

如果(x0 & gti) {

for(j = x0-1;j & gt= I;j - ) {

if (grid[j][y0]!=0) {

k = 0;

打破;

}

else { k = 2;}

}

}

如果(x0 & lti) {

for(j = x0+1;j & lt= I;j++ ) {

if (grid[j][y0]!=0) {

k = 0;

打破;

}

else { k = 2;}

}

}

}

公共void remove(){

first button . set visible(false);

second button . set visible(false);

分数();

pressInformation = false

k = 0;

网格[x0][y0]= 0;

grid[x][y]= 0;

}

public void action performed(action event e){

if(e . getsource()= = newly button){

int grid[][]= new int[8][7];

this.grid = grid

random build();

mainframe . set visible(false);

pressInformation = false

init();

}

if(e.getSource()==exitButton)

system . exit(0);

if(e.getSource()==resetButton)

重载();

for(int cols = 0;cols & lt6;cols++){

for(int rows = 0;行数& lt5;rows++ ){

if(e . getsource()= = diamonds button[cols][rows])

estimateEven(列+1,行+1,diamonds button[列][行]);

}

}

}

公共静态void main(String[] args) {

连连看llk =新连连看();

llk . randombuild();

llk . init();

}

}

//旧的998行

//新增318行

参考资料:

/question/36439800.html?fr=qrl3