真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

動(dòng)物連連看代碼java,動(dòng)物連連看免費(fèi)下載

JAVA連連看代碼幫我解答一下#11

Math.random()返回一個(gè)隨機(jī)數(shù)。double類型,范圍0~1。

大余網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),大余網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為大余成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的大余做網(wǎng)站的公司定做!

(int)( 7*Math.random())表示返回一個(gè)整數(shù),范圍0~7。

1+(int)( 7*Math.random())表示一個(gè)隨機(jī)整數(shù),范圍1~8.

用java語(yǔ)言編寫連連看游戲

我以前自己寫一個(gè)玩的。沒(méi)有把你要求的功能全部實(shí)現(xiàn),不過(guò)你看了后可以改一下就好了。參考一下吧,我給了注解:

package mybase.programe;

/*

* lianliankan總體算法思路:由兩個(gè)確定的按鈕。若這兩個(gè)按鈕的數(shù)字相等,就開(kāi)始找它們相連的路經(jīng)。這個(gè)找路經(jīng)

* 分3種情況:(從下面的這三種情況,我們可以知道,需要三個(gè)檢測(cè),這三個(gè)檢測(cè)分別檢測(cè)一條直路經(jīng)。這樣就會(huì)有

* 三條路經(jīng)。若這三條路經(jīng)上都是空按鈕,那么就剛好是三種直線(兩個(gè)轉(zhuǎn)彎點(diǎn))把兩個(gè)按鈕連接起來(lái)了)

* 1.相鄰

*

* 2. 若不相鄰的先在第一個(gè)按鈕的同行找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕橫向到這個(gè)空按鈕

* 所在的列是否有按鈕。2).沒(méi)有的話再看第一個(gè)按鈕到與它同行的那個(gè)空按鈕之間是否有按鈕。3).沒(méi)有的話,再?gòu)?/p>

* 與第一個(gè)按鈕同行的那個(gè)空按鈕豎向到與第二個(gè)按鈕的同行看是否有按鈕。沒(méi)有的話路經(jīng)就通了,可以消了.

*

* 3.若2失敗后,再在第一個(gè)按鈕的同列找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕豎向到這個(gè)空按鈕所在的行是否有按鈕。

* 2).沒(méi)有的話,再看第一個(gè)按鈕到與它同列的那個(gè)空按鈕之間是否有按鈕。3).沒(méi)有的話,再?gòu)呐c第一個(gè)按鈕同列的

* 那個(gè)空按鈕橫向到與第二個(gè)按鈕同列看是否有按鈕。沒(méi)有的話路經(jīng)就通了,可以消了。

*

* 若以上三步都失敗,說(shuō)明這兩個(gè)按鈕不可以消去。

*/

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class LianLianKan implements ActionListener {

JFrame mainFrame; // 主面板

Container thisContainer;

JPanel centerPanel, southPanel, northPanel; // 子面板

JButton diamondsButton[][] = new JButton[6][5];// 游戲按鈕數(shù)組

JButton exitButton, resetButton, newlyButton; // 退出,重列,重新開(kāi)始按鈕

JLabel fractionLable = new JLabel("0"); // 分?jǐn)?shù)標(biāo)簽

JButton firstButton, secondButton; // 分別記錄兩次被選中的按鈕

// 儲(chǔ)存游戲按鈕位置(這里其實(shí)只要6行,5列。但是我們用了8行,7列。是等于在這個(gè)面板按鈕的周圍還圍

//了一層是0的按鈕,這樣就可以實(shí)現(xiàn)靠近面板邊緣的兩個(gè)按鈕可以消去)

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

static boolean pressInformation = false; // 判斷是否有按鈕被選中

int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戲按鈕的位置坐標(biāo)

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

public void init() {

mainFrame = new JFrame("JKJ連連看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel = new JPanel();

southPanel = new JPanel();

northPanel = new JPanel();

thisContainer.add(centerPanel, "Center");

thisContainer.add(southPanel, "South");

thisContainer.add(northPanel, "North");

centerPanel.setLayout(new GridLayout(6, 5));

for (int cols = 0; cols 6; cols++) {

for (int rows = 0; rows 5; rows++) {

diamondsButton[cols][rows] = new JButton(String

.valueOf(grid[cols + 1][rows + 1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

}

}

exitButton = new JButton("退出");

exitButton.addActionListener(this);

resetButton = new JButton("重列");

resetButton.addActionListener(this);

newlyButton = new JButton("再來(lái)一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable

.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280, 100, 500, 450);

mainFrame.setVisible(true);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void randomBuild() {

int randoms, cols, rows;

for (int twins = 1; twins = 15; twins++) {//一共15對(duì)button,30個(gè)

randoms = (int) (Math.random() * 25 + 1);//button上的數(shù)字

for (int alike = 1; alike = 2; alike++) {

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

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

while (grid[cols][rows] != 0) {//等于0說(shuō)明這個(gè)空格有了button

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

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

}

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

}

}

}

public void fraction() {

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable

.getText()) + 100));

}

public void reload() {

int save[] = new int[30];

int n = 0, cols, rows;

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

for (int i = 0; i = 6; i++) {

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

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

save[n] = this.grid[i][j];//記下每個(gè)button的數(shù)字

n++;//有幾個(gè)沒(méi)有消去的button

}

}

}

n = n - 1;

this.grid = grid;

while (n = 0) {//把沒(méi)有消去的button重新放一次

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.setVisible(false);

pressInformation = false; // 這里一定要將按鈕點(diǎn)擊信息歸為初始

init();

for (int i = 0; i 6; i++) {

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

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

diamondsButton[i][j].setVisible(false);

}

}

}

public void estimateEven(int placeX, int placeY, JButton bz) {

if (pressInformation == false) {

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

pressInformation = true;

} else {

x0 = x;

y0 = y;

fristMsg = secondMsg;

firstButton = secondButton;

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

if (fristMsg == secondMsg secondButton != firstButton) {

xiao();

}

}

}

public void xiao() { // 相同的情況下能不能消去。仔細(xì)分析,不一條條注釋

if ((x0 == x (y0 == y + 1 || y0 == y - 1))

|| ((x0 == x + 1 || x0 == x - 1) (y0 == y))) { // 判斷是否相鄰

remove();

} else {

for (j = 0; j 7; j++) {

if (grid[x0][j] == 0) { // 判斷和第一個(gè)按鈕同行的哪個(gè)按鈕為空

//如果找到一個(gè)為空的,就按列值的三種情況比較第二個(gè)按鈕與空按鈕的位置

if (y j) {//第二個(gè)按鈕在空按鈕右邊

for (i = y - 1; i = j; i--) { //檢測(cè)從第二個(gè)按鈕橫向左邊到空格所在列為止是否全是空格

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

k = 0;

break;//存在非空格的就退出,這一退出就不可能k==2了,所以就會(huì)到下而215行出同理的判斷列

} else {

k = 1;

} // K=1說(shuō)明全是空格通過(guò)了第一次驗(yàn)證,也就是從第二個(gè)按鈕橫向左邊到空格所在列為止全是空格

}

if (k == 1) {

linePassOne();//進(jìn)入第二次驗(yàn)證,也就是從第一個(gè)按鈕到它同行的空格之間的空格判斷

}

}

if (y j) { // 第二個(gè)按鈕在空按鈕左邊

for (i = y + 1; i = j; i++) {//檢測(cè)從第二個(gè)按鈕橫向右邊到空格所在列為止是否全是空格

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

linePassOne();

}

}

if (y == j) {//第二個(gè)按鈕和空按鈕同列

linePassOne();

}

}

//第三次檢測(cè),檢測(cè)確定為空的第j列的那個(gè)按鈕豎向到第二個(gè)按鈕,看是不是有按鈕

if (k == 2) {

if (x0 == x) {//第一,二按鈕在同行

remove();

}

if (x0 x) {//第一按鈕在第二按鈕下邊

for (n = x0; n = x - 1; n++) {//從空按鈕豎向到第二個(gè)按鈕所在行是否有按鈕

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

k = 0;

break;

}

//沒(méi)有按鈕,說(shuō)明這條路經(jīng)就通了

if (grid[n][j] == 0 n == x - 1) {

remove();

}

}

}

if (x0 x) {//第一按鈕在第二按鈕上邊

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

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

k = 0;

break;

}

if (grid[n][j] == 0 n == x + 1) {

remove();

}

}

}

}

}//-------------------------------------for

//當(dāng)上面的檢測(cè)與第一個(gè)按鈕同行的空格按鈕失敗后(不能找到與第二個(gè)按鈕的相連路經(jīng)),下面就執(zhí)行

//檢測(cè)與第一個(gè)按鈕同列的空格按鈕

for (i = 0; i 8; i++) {

if (grid[i][y0] == 0) {// 判斷和第一個(gè)按鈕同列的哪個(gè)按鈕為空

if (x i) {//第二個(gè)按鈕在這個(gè)空按鈕的下面

for (j = x - 1; j = i; j--) {

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

rowPassOne();

}

}

if (x i) {//第二個(gè)按鈕在這個(gè)空按鈕的上面

for (j = x + 1; j = i; j++) {

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

rowPassOne();

}

}

if (x == i) {//第二個(gè)按鈕與這個(gè)空按鈕同行

rowPassOne();

}

}

if (k == 2) {

if (y0 == y) {//第二個(gè)按鈕與第一個(gè)按鈕同列

remove();

}

if (y0 y) {//第二個(gè)按鈕在第一個(gè)按鈕右邊

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

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

k = 0;

break;

}

if (grid[i][n] == 0 n == y - 1) {

remove();

}

}

}

if (y0 y) {//第二個(gè)按鈕在第一個(gè)按鈕左邊

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

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

k = 0;

break;

}

if (grid[i][n] == 0 n == y + 1) {

remove();

}

}

}

}

}//--------------------------------for

}//-------------else

}//------------xiao

public void linePassOne() {

if (y0 j) { // 第一按鈕同行空按鈕在左邊

for (i = y0 - 1; i = j; i--) { // 判斷第一按鈕同左側(cè)空按鈕之間有沒(méi)按鈕

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

k = 0;

break;

} else {

k = 2;

} // K=2說(shuō)明通過(guò)了第二次驗(yàn)證

}

}

if (y0 j) { // 第一按鈕同行空按鈕在右邊

for (i = y0 + 1; i = j; i++) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

}

public void rowPassOne() {

if (x0 i) {//第一個(gè)按鈕在與它同列的那個(gè)空格按鈕下面

for (j = x0 - 1; j = i; j--) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

if (x0 i) {//第一個(gè)按鈕在與它同列的那個(gè)空格按鈕上面

for (j = x0 + 1; j = i; j++) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

}

public void remove() {

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation = false;

k = 0;

grid[x0][y0] = 0;

grid[x][y] = 0;

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == newlyButton) {

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

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation = false;

init();

}

if (e.getSource() == exitButton)

System.exit(0);

if (e.getSource() == resetButton)

reload();

for (int cols = 0; cols 6; cols++) {

for (int rows = 0; rows 5; rows++) {

if (e.getSource() == diamondsButton[cols][rows])

estimateEven(cols + 1, rows + 1, diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

LianLianKan llk = new LianLianKan();

llk.randomBuild();

llk.init();

}

}

如何用JAVA 編寫一個(gè)連連看游戲全程設(shè)計(jì)

剛試了。。測(cè)試通過(guò)。。

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

publicclass LianLianKan implements ActionListener {

JFrame mainFrame; // 主面板

Container thisContainer;

JPanel centerPanel, southPanel, northPanel; //子面板

JButton diamondsButton[][] = newJButton[6][5];// 游戲按鈕數(shù)組

JButton exitButton, resetButton, newlyButton;// 退出,重列,重新開(kāi)始按鈕

JLabel fractionLable = newJLabel("0"); // 分?jǐn)?shù)標(biāo)簽

JButton firstButton, secondButton; // 分別記錄兩次被選中的按鈕

// 儲(chǔ)存游戲按鈕位置(這里其實(shí)只要6行,5列。但是我們用了8行,7列。是等于在這個(gè)面板按鈕的周圍還圍

//了一層是0的按鈕,這樣就可以實(shí)現(xiàn)靠近面板邊緣的兩個(gè)按鈕可以消去)

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

static boolean pressInformation = false; // 判斷是否有按鈕被選中

int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg =0, secondMsg = 0, validateLV; // 游戲按鈕的位置坐標(biāo)

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

public void init() {

mainFrame = new JFrame("JKJ連連看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel = new JPanel();

southPanel = new JPanel();

northPanel = new JPanel();

thisContainer.add(centerPanel,"Center");

thisContainer.add(southPanel,"South");

thisContainer.add(northPanel,"North");

centerPanel.setLayout(new GridLayout(6, 5));

for (int cols = 0; cols 6; cols++) {

for (int rows = 0; rows 5; rows++) {

diamondsButton[cols][rows] = newJButton(String

.valueOf(grid[cols + 1][rows + 1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

}

}

exitButton = new JButton("退出");

exitButton.addActionListener(this);

resetButton = new JButton("重列");

resetButton.addActionListener(this);

newlyButton = new JButton("再來(lái)一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable

.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280, 100, 500, 450);

mainFrame.setVisible(true);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void randomBuild() {

int randoms, cols, rows;

for (int twins = 1; twins = 15; twins++){//一共15對(duì)button,30個(gè)

randoms = (int) (Math.random() * 25 +1);//button上的數(shù)字

for (int alike = 1; alike = 2; alike++){

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

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

while (grid[cols][rows] != 0) {//等于0說(shuō)明這個(gè)空格有了button

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

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

}

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

}

}

}

public void fraction() {

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable

.getText()) + 100));

}

public void reload() {

int save[] = new int[30];

int n = 0, cols, rows;

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

for (int i = 0; i = 6; i++) {

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

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

save[n] = this.grid[i][j];//記下每個(gè)button的數(shù)字

n++;//有幾個(gè)沒(méi)有消去的button

}

}

}

n = n - 1;

this.grid = grid;

while (n = 0) {//把沒(méi)有消去的button重新放一次

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.setVisible(false);

pressInformation = false; // 這里一定要將按鈕點(diǎn)擊信息歸為初始

init();

for (int i = 0; i 6; i++) {

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

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

diamondsButton[i][j].setVisible(false);

}

}

}

public void estimateEven(int placeX, intplaceY, JButton bz) {

if (pressInformation == false) {

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

pressInformation = true;

} else {

x0 = x;

y0 = y;

fristMsg = secondMsg;

firstButton = secondButton;

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

if (fristMsg == secondMsg secondButton != firstButton) {

xiao();

}

}

}

public void xiao() { // 相同的情況下能不能消去。仔細(xì)分析,不一條條注釋

if ((x0 == x (y0 == y + 1 || y0 ==y - 1))

|| ((x0 == x + 1 || x0 == x - 1) (y0 == y))) { // 判斷是否相鄰

remove();

} else {

for (j = 0; j 7; j++) {

if (grid[x0][j] == 0) { // 判斷和第一個(gè)按鈕同行的哪個(gè)按鈕為空

//如果找到一個(gè)為空的,就按列值的三種情況比較第二個(gè)按鈕與空按鈕的位置

if (y j) {//第二個(gè)按鈕在空按鈕右邊

for (i = y - 1; i = j; i--) { //檢測(cè)從第二個(gè)按鈕橫向左邊到空格所在列為止是否全是空格

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

k = 0;

break;//存在非空格的就退出,這一退出就不可能k==2了,所以就會(huì)到下而215行出同理的判斷列

} else {

k = 1;

} // K=1說(shuō)明全是空格通過(guò)了第一次驗(yàn)證,也就是從第二個(gè)按鈕橫向左邊到空格所在列為止全是空格

}

if (k == 1) {

linePassOne();//進(jìn)入第二次驗(yàn)證,也就是從第一個(gè)按鈕到它同行的空格之間的空格判斷

}

}

if (y j) { // 第二個(gè)按鈕在空按鈕左邊

for (i = y + 1; i = j; i++) {//檢測(cè)從第二個(gè)按鈕橫向右邊到空格所在列為止是否全是空格

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

linePassOne();

}

}

if (y == j) {//第二個(gè)按鈕和空按鈕同列

linePassOne();

}

}

//第三次檢測(cè),檢測(cè)確定為空的第j列的那個(gè)按鈕豎向到第二個(gè)按鈕,看是不是有按鈕

if (k == 2) {

if (x0 == x) {//第一,二按鈕在同行

remove();

}

if (x0 x) {//第一按鈕在第二按鈕下邊

for (n = x0; n = x - 1; n++) {//從空按鈕豎向到第二個(gè)按鈕所在行是否有按鈕

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

k= 0;

break;

}

//沒(méi)有按鈕,說(shuō)明這條路經(jīng)就通了

if (grid[n][j] == 0 n == x -1) {

remove();

}

}

}

if (x0 x) {//第一按鈕在第二按鈕上邊

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

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

k = 0;

break;

}

if (grid[n][j] == 0 n == x +1) {

remove();

}

}

}

}

}//-------------------------------------for

//當(dāng)上面的檢測(cè)與第一個(gè)按鈕同行的空格按鈕失敗后(不能找到與第二個(gè)按鈕的相連路經(jīng)),下面就執(zhí)行

//檢測(cè)與第一個(gè)按鈕同列的空格按鈕

for (i = 0; i 8; i++) {

if (grid[i][y0] == 0) {// 判斷和第一個(gè)按鈕同列的哪個(gè)按鈕為空

if (x i) {//第二個(gè)按鈕在這個(gè)空按鈕的下面

for (j = x - 1; j = i; j--) {

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

rowPassOne();

}

}

if (x i) {//第二個(gè)按鈕在這個(gè)空按鈕的上面

for (j = x + 1; j = i; j++) {

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

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

rowPassOne();

}

}

if (x == i) {//第二個(gè)按鈕與這個(gè)空按鈕同行

rowPassOne();

}

}

if (k == 2) {

if (y0 == y) {//第二個(gè)按鈕與第一個(gè)按鈕同列

remove();

}

if (y0 y) {//第二個(gè)按鈕在第一個(gè)按鈕右邊

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

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

k = 0;

break;

}

if (grid[i][n] == 0 n == y -1) {

remove();

}

}

}

if (y0 y) {//第二個(gè)按鈕在第一個(gè)按鈕左邊

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

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

k = 0;

break;

}

if (grid[i][n] == 0 n == y +1) {

remove();

}

}

}

}

}//--------------------------------for

}//-------------else

}//------------xiao

public void linePassOne() {

if (y0 j) { // 第一按鈕同行空按鈕在左邊

for (i = y0 - 1; i = j; i--) { // 判斷第一按鈕同左側(cè)空按鈕之間有沒(méi)按鈕

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

k = 0;

break;

} else {

k = 2;

} // K=2說(shuō)明通過(guò)了第二次驗(yàn)證

}

}

if (y0 j) { // 第一按鈕同行空按鈕在右邊

for (i = y0 + 1; i = j; i++) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

}

public void rowPassOne() {

if (x0 i) {//第一個(gè)按鈕在與它同列的那個(gè)空格按鈕下面

for (j = x0 - 1; j = i; j--) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

if (x0 i) {//第一個(gè)按鈕在與它同列的那個(gè)空格按鈕上面

for (j = x0 + 1; j = i; j++) {

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

k = 0;

break;

} else {

k = 2;

}

}

}

}

public void remove() {

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation = false;

k = 0;

grid[x0][y0] = 0;

grid[x][y] = 0;

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == newlyButton) {

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

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation = false;

init();

}

if (e.getSource() == exitButton)

System.exit(0);

if (e.getSource() == resetButton)

reload();

for (int cols = 0; cols 6; cols++) {

for (int rows = 0; rows 5; rows++) {

if (e.getSource() ==diamondsButton[cols][rows])

estimateEven(cols + 1, rows + 1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

LianLianKan llk = new LianLianKan();

llk.randomBuild();

llk.init();

}

}

連連看JAVA源代碼

連連看java源代碼 2007-11-01 02:25 import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數(shù)組

JButton exitButton,resetButton,newlyButton; //退出,重列,重新開(kāi)始按鈕

JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽

JButton firstButton,secondButton; //分別記錄兩次被選中的按鈕

int grid[][] = new int[8][7];//儲(chǔ)存游戲按鈕位置

static boolean pressInformation=false; //判斷是否有按鈕被選中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)

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

public void init(){

mainFrame=new JFrame("JKJ連連看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContainer.add(centerPanel,"Center");

thisContainer.add(southPanel,"South");

thisContainer.add(northPanel,"North");

centerPanel.setLayout(new GridLayout(6,5));

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

}

}

exitButton=new JButton("退出");

exitButton.addActionListener(this);

resetButton=new JButton("重列");

resetButton.addActionListener(this);

newlyButton=new JButton("再來(lái)一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280,100,500,450);

mainFrame.setVisible(true);

}

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins=15;twins++) {

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

for(int alike=1;alike=2;alike++) {

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;

}

}

}

public void fraction(){

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));

}

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

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

for(int i=0;i=6;i++) {

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

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

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

n++;

}

}

}

n=n-1;

this.grid=grid;

while(n=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.setVisible(false);

pressInformation=false; //這里一定要將按鈕點(diǎn)擊信息歸為初始

init();

for(int i = 0;i 6;i++){

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

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

diamondsButton[i][j].setVisible(false);

}

}

}

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

}

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg secondButton!=firstButton){

xiao();

}

}

}

public void xiao() { //相同的情況下能不能消去。仔細(xì)分析,不一條條注釋

if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判斷是否相鄰

remove();

}

else{

for (j=0;j7;j++ ) {

if (grid[x0][j]==0){ //判斷第一個(gè)按鈕同行哪個(gè)按鈕為空

if (yj) { //如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說(shuō)明第一按鈕在第二按鈕左邊

for (i=y-1;i=j;i-- ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕

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

k=0;

break;

}

else{ k=1; } //K=1說(shuō)明通過(guò)了第一次驗(yàn)證

}

if (k==1) {

linePassOne();

}

}

if (yj){ //如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說(shuō)明第一按鈕在第二按鈕右邊

for (i=y+1;i=j ;i++ ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕

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

k=0;

break;

}

else { k=1; }

}

if (k==1){

linePassOne();

}

}

if (y==j ) {

linePassOne();

}

}

if (k==2) {

if (x0==x) {

remove();

}

if (x0x) {

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

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

k=0;

break;

}

if(grid[n][j]==0 n==x-1) {

remove();

}

}

}

if (x0x) {

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

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

k=0;

break;

}

if(grid[n][j]==0 n==x+1) {

remove();

}

}

}

}

}

for (i=0;i8;i++ ) { //列

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

if (xi) {

for (j=x-1;j=i ;j-- ) {

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

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (xi) {

for (j=x+1;j=i;j++ ) {

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

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

remove();

}

if (y0y) {

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

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

k=0;

break;

}

if(grid[i][n]==0 n==y-1) {

remove();

}

}

}

if (y0y) {

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

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

k=0;

break;

}

if(grid[i][n]==0 n==y+1) {

remove();

}

}

}

}

}

}

}

public void linePassOne(){

if (y0j){ //第一按鈕同行空按鈕在左邊

for (i=y0-1;i=j ;i-- ){ //判斷第一按鈕同左側(cè)空按鈕之間有沒(méi)按鈕

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

k=0;

break;

}

else { k=2; } //K=2說(shuō)明通過(guò)了第二次驗(yàn)證

}

}

if (y0j){ //第一按鈕同行空按鈕在與第二按鈕之間

for (i=y0+1;i=j ;i++){

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

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0i) {

for (j=x0-1;j=i ;j-- ) {

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

k=0;

break;

}

else { k=2; }

}

}

if (x0i) {

for (j=x0+1;j=i ;j++ ) {

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

k=0;

break;

}

else { k=2; }

}

}

}

public void remove(){

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==newlyButton){

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

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation=false;

init();

}

if(e.getSource()==exitButton)

System.exit(0);

if(e.getSource()==resetButton)

reload();

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

if(e.getSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

}

}

//old 998 lines

//new 318 lines

求JAVA連連看游戲源代碼,打包的,能運(yùn)行的

123456789101112131415161718192021222324252627282930????import?java.io.File;import?java.util.Scanner;?public?class?FileTest?{?????/**?????*?@param?args?????*/????public?static?void?main(String[]?args)?{????????Scanner?sc?=?new?Scanner(System.in);????????String?fileName?=?sc.next();????????File?file?=?new?File(fileName);????????if?(file.exists())?{????????????if?(file.isDirectory())?{????????????????String[]?list?=?file.list();????????????????System.out.println(list.length);????????????????for?(String?string?:?list)?{????????????????????System.out????????????????????????????.println(string????????????????????????????????????.substring(string.lastIndexOf(".")?=?0???string????????????????????????????????????????????.lastIndexOf(".")?:?0));????????????????}????????????}?else?{????????????????System.out.println("不是文件夾");????????????}????????}?else?{????????????System.out.println("文件不存在");????????}????}


文章標(biāo)題:動(dòng)物連連看代碼java,動(dòng)物連連看免費(fèi)下載
分享鏈接:http://weahome.cn/article/dssedjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部