欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì)

 更新時(shí)間:2022年05月09日 14:52:25   作者:人??間??四??月????  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了JAVA語言課程設(shè)計(jì):連連看小游戲,供大家參考,具體內(nèi)容如下

1.設(shè)計(jì)內(nèi)容

界面中有5*10的界面,圖中共有6種不同的圖片,每?jī)蓚€(gè)相同的圖片連接在一起,如果連線中轉(zhuǎn)折的次數(shù)<=3次,兩張圖片可同時(shí)削掉,否則不能削去。

2.設(shè)計(jì)要求

色彩鮮艷,鼠標(biāo)點(diǎn)擊鍵好用,以固定時(shí)間將所有圖片消掉為勝利,若時(shí)間到了,圖片還有,則闖關(guān)失敗。

3.設(shè)計(jì)思想

1)    搭建界面,首先搭建簡(jiǎn)單界面,可以先用按鈕代替圖片,并且行列可以先少做一些,如下圖所示:
2)    每次用戶選擇兩個(gè)圖形,如果圖形滿足一定條件(兩個(gè)圖形一樣,且這兩個(gè)圖形之間存在轉(zhuǎn)彎少于3的路徑),則兩個(gè)圖形都能消掉。給定任意具有相同圖形的兩個(gè)格子,我們需要尋找這兩個(gè)格子之間在轉(zhuǎn)彎最少的情況下,經(jīng)過格子數(shù)目最少的路徑。如果這個(gè)最優(yōu)路徑的轉(zhuǎn)彎數(shù)目少于3 ,則這兩個(gè)格子可以消去。
3)    定義消掉的方法,此方法可以實(shí)現(xiàn),當(dāng)執(zhí)行消掉功能時(shí),可以消除兩個(gè)按鈕。
4)    在檢驗(yàn)兩個(gè)方塊能否消掉的時(shí)候,我們要讓兩個(gè)方塊同時(shí)滿足兩個(gè)條件才行,就是兩者配對(duì)并且連線成功。

分3種情況:(從下面的這三種情況,我們可以知道,需要三個(gè)檢測(cè),這三個(gè)檢測(cè)分別檢測(cè)一條直路經(jīng)。這樣就會(huì)有三條路經(jīng)。若這三條路經(jīng)上都是空按鈕,那么就剛好是三種直線(兩個(gè)轉(zhuǎn)彎點(diǎn))把兩個(gè)按鈕連接起來了)

* 1.相鄰  
* 2. 若不相鄰的先在第一個(gè)按鈕的同行找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕橫向到這個(gè)空按鈕所在的列是否有按鈕。2).沒有的話再看第一個(gè)按鈕到與它同行的那個(gè)空按鈕之間是否有按鈕。3).沒有的話,再?gòu)呐c第一個(gè)按鈕同行的那個(gè)空按鈕豎向到與第二個(gè)按鈕的同行看是否有按鈕。沒有的話路經(jīng)就通了,可以消了. 
* 3.若2失敗后,再在第一個(gè)按鈕的同列找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕豎向到這個(gè)空按鈕所在的行是否有按鈕 2).沒有的話,再看第一個(gè)按鈕到與它同列的那個(gè)空按鈕之間是否有按鈕。3).沒有的話,再?gòu)呐c第一個(gè)按鈕同列的那個(gè)空按鈕橫向到與第二個(gè)按鈕同列看是否有按鈕。沒有的話路經(jīng)就通了,可以消了。

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

5)    在死鎖的情況下,我們也可以暫時(shí)不終止游戲,而是隨機(jī)打亂局面(即點(diǎn)擊“重列”按鈕),打破“死鎖”局面。
6)    設(shè)計(jì)時(shí)間限制,即指定時(shí)間內(nèi)沒有消除全部按鈕,則游戲結(jié)束
7)    設(shè)計(jì)過關(guān)模式,可以根據(jù)所有按鈕都消除了,或是得分到達(dá)某一個(gè)閾值作為過關(guān)的依據(jù)。
8)    每一關(guān)的指定時(shí)間應(yīng)該逐漸減少
9)    嘗試將按鈕換成圖片,可以利用數(shù)組定義圖片名稱,然后把隨機(jī)選擇按鈕變成隨機(jī)選擇數(shù)組下標(biāo),繼而實(shí)現(xiàn)選擇圖片的功能

代碼如下:

package test1;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class LianLianKan implements ActionListener {
?? ?JFrame mainFrame; // 主面板
?? ?Container thisContainer;
?? ?JPanel centerPanel, southPanel, northPanel; // 子面板
?? ?JButton diamondsButton[][] = new JButton[6][5];// 游戲按鈕數(shù)組
?? ?JButton exitButton, resetButton, newlyButton; // 退出,重列,重新開始按鈕
?? ?JLabel fractionLable = new JLabel("0"); // 分?jǐn)?shù)標(biāo)簽
?? ?JButton firstButton, secondButton; // 分別記錄兩次被選中的按鈕
?? ?int grid[][] = new int[8][7];// 儲(chǔ)存游戲按鈕位置
?? ?int score=0;
?? ?static boolean pressInformation = false; // 判斷是否有按鈕被選中
?? ?int x0 = 0, y0 = 0, x = 0, y = 0, firstMsg = 0, secondMsg = 0; // 游戲按鈕的位置坐標(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("再來一局");
?? ??? ?newlyButton.addActionListener(this);
?? ??? ?southPanel.add(exitButton);
?? ??? ?southPanel.add(resetButton);
?? ??? ?southPanel.add(newlyButton);
?? ??? ?fractionLable.setText("分?jǐn)?shù):"+score);
?? ??? ?northPanel.add(fractionLable);
?? ??? ?int width=Toolkit.getDefaultToolkit().getScreenSize().width;
?? ??? ?int height=Toolkit.getDefaultToolkit().getScreenSize().height;
?? ??? ?mainFrame.setBounds((width-500)/2,(height-500)/2, 500, 500);
?? ??? ?mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
?? ??? ?mainFrame.setResizable(false);
?? ??? ?mainFrame.setVisible(true);
?? ?}
?? ?public void randomBuild() {
?? ??? ?int randoms, cols, rows;
?? ??? ?for (int twins = 1; twins <= 15; twins++) { ?//生成15個(gè)隨機(jī)數(shù)
?? ??? ??? ?randoms = (int) (Math.random() * 15 + 1);
?? ??? ??? ?for (int alike = 1; alike <= 2; alike++) { ? //每次將這個(gè)數(shù)放在兩個(gè)位置
?? ??? ??? ??? ?cols = (int) (Math.random() * 6 + 1);
?? ??? ??? ??? ?rows = (int) (Math.random() * 5 + 1); ?//隨機(jī)生成數(shù)組坐標(biāo)[cols,rows]
?? ??? ??? ??? ?while (grid[cols][rows] != 0) { ? ? ? ? //如果這個(gè)位置已經(jīng)賦值了,重新生成。
?? ??? ??? ??? ??? ?cols = (int) (Math.random() * 6 + 1);
?? ??? ??? ??? ??? ?rows = (int) (Math.random() * 5 + 1);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?this.grid[cols][rows] = randoms; ? ?//將這個(gè)隨機(jī)數(shù)賦到數(shù)組中。
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?//顯示分?jǐn)?shù)
?? ?public void fraction() {
?? ??? ?score+=100;
?? ??? ?fractionLable.setText(score+"");
?? ?}
?? ?//重列方法的實(shí)現(xiàn)
?? ?public void reload() {
?? ??? ?int save[] = new int[50];
?? ??? ?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--;
?? ??? ?this.grid = grid;
?? ??? ?while (n >= 0) {
?? ??? ??? ?cols = (int) (Math.random() * 6 + 1);
?? ??? ??? ?rows = (int) (Math.random() * 5 + 1);
?? ??? ??? ?while (grid[cols][rows] != 0) { ?//如果已經(jīng)賦值了,重新生成
?? ??? ??? ??? ?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) {//如果以前沒點(diǎn)擊過
?? ??? ??? ?x = placeX;
?? ??? ??? ?y = placeY; ? ? ?//記錄這個(gè)按鈕坐標(biāo)[x,y]
?? ??? ??? ?secondMsg = grid[x][y];
?? ??? ??? ?secondButton = bz;//記錄這個(gè)按鈕的信息
?? ??? ??? ?pressInformation = true;
?? ??? ?} else { ? ? ? ? ? //如果以前點(diǎn)擊過
?? ??? ??? ?x0 = x;?? ?
?? ??? ??? ?y0 = y;
?? ??? ??? ?firstMsg = secondMsg;
?? ??? ??? ?firstButton = secondButton; ? ?//將上一次的button按鈕信息賦給first
?? ??? ??? ?x = placeX;
?? ??? ??? ?y = placeY;
?? ??? ??? ?secondMsg = grid[x][y]; ? ? ? ?//將這次點(diǎn)擊按鈕的信息記錄下來
?? ??? ??? ?secondButton = bz;
?? ??? ??? ?if (firstMsg == 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è)按鈕為空
?? ??? ??? ??? ??? ?if (y > j) { // 如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊
?? ??? ??? ??? ??? ??? ?for (i = y - 1; i >= j; i--) { // 判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕
?? ??? ??? ??? ??? ??? ??? ?if (grid[x][i] != 0) {
?? ??? ??? ??? ??? ??? ??? ??? ?k = 0;?? ?
?? ??? ??? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ??? ??? ??? ?k = 1;
?? ??? ??? ??? ??? ??? ??? ?} // K=1說明通過了第一次驗(yàn)證
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?if (k == 1) {
?? ??? ??? ??? ??? ??? ??? ?linePassOne();
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?if (y < j) { // 如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊
?? ??? ??? ??? ??? ??? ?for (i = y + 1; i <= j; i++) { // 判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕
?? ??? ??? ??? ??? ??? ??? ?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 (x0 < x) {
?? ??? ??? ??? ??? ??? ?for (n = x0; n <= x - 1; n++) {
?? ??? ??? ??? ??? ??? ??? ?if (grid[n][j] != 0) {
?? ??? ??? ??? ??? ??? ??? ??? ?k = 0;
?? ??? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ??? ?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 (i = 0; i < 8; i++) { // 列
?? ??? ??? ??? ?if (grid[i][y0] == 0) {
?? ??? ??? ??? ??? ?if (x > i) {
?? ??? ??? ??? ??? ??? ?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) {
?? ??? ??? ??? ??? ??? ?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 (y0 < y) {
?? ??? ??? ??? ??? ??? ?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) {
?? ??? ??? ??? ??? ??? ?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 (y0 > j) { // 第一按鈕同行空按鈕在左邊
?? ??? ??? ?for (i = y0 - 1; i >= j; i--) { // 判斷第一按鈕同左側(cè)空按鈕之間有沒按鈕?? ?
?? ??? ??? ??? ?if (grid[x0][i] != 0) {
?? ??? ??? ??? ??? ?k = 0;
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?k= 2;
?? ??? ??? ??? ?} // K=2說明通過了第二次驗(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) {
?? ??? ??? ?for (j = x0 - 1; j >= i; j--) {
?? ??? ??? ??? ?if (grid[j][y0] != 0) {
?? ??? ??? ??? ??? ?k = 0;
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?k = 2;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if (x0 < i) {
?? ??? ??? ?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); ? //兩個(gè)按鈕不可見
?? ??? ?fraction(); ? ? ? ?//改變分?jǐn)?shù)
?? ??? ?pressInformation = false; ? ? ? ? //點(diǎn)擊按鈕鍵清掉
?? ??? ?k = 0; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//可消除標(biāo)志清空
?? ??? ?grid[x0][y0] = 0;
?? ??? ?grid[x][y] = 0; ? ? ? ? ? ? ? ? ? //按鈕鍵值清零
?? ?}
?? ?//事件響應(yīng)
?? ?public void actionPerformed(ActionEvent e) {
?? ??? ?if (e.getSource() == newlyButton) {
?? ??? ??? ?int grid[][] = new int[8][7];
?? ??? ??? ?this.grid = grid;
?? ??? ??? ?randomBuild();
?? ??? ??? ?score=0;
?? ??? ??? ?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();//隨機(jī)分配鍵值
?? ??? ?llk.init();//初始化
?? ?}
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java詳細(xì)分析連接數(shù)據(jù)庫的流程

    Java詳細(xì)分析連接數(shù)據(jù)庫的流程

    Java數(shù)據(jù)庫連接,JDBC是Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。JDBC也是Sun Microsystems的商標(biāo)。我們通常說的JDBC是面向關(guān)系型數(shù)據(jù)庫的
    2022-05-05
  • 使用SpringBoot的CommandLineRunner遇到的坑及解決

    使用SpringBoot的CommandLineRunner遇到的坑及解決

    這篇文章主要介紹了使用SpringBoot的CommandLineRunner遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java實(shí)現(xiàn)發(fā)送郵件的示例代碼

    java實(shí)現(xiàn)發(fā)送郵件的示例代碼

    這篇文章主要介紹了java如何實(shí)現(xiàn)發(fā)送郵件,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 基于UncategorizedSQLException異常處理方案

    基于UncategorizedSQLException異常處理方案

    這篇文章主要介紹了基于UncategorizedSQLException異常處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 都9102年了,你還用for循環(huán)操作集合嗎

    都9102年了,你還用for循環(huán)操作集合嗎

    這篇文章主要給大家介紹了關(guān)于java中for循環(huán)操作集合使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring容器初始化及問題解決方案

    Spring容器初始化及問題解決方案

    這篇文章主要介紹了Spring容器初始化及問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • springmvc集成shiro登錄失敗處理操作

    springmvc集成shiro登錄失敗處理操作

    這篇文章主要介紹了springmvc集成shiro登錄失敗處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java利用Jackson輕松處理JSON序列化與反序列化

    Java利用Jackson輕松處理JSON序列化與反序列化

    Jackson?是?Java?中最流行的?JSON?處理庫之一,它提供了許多注解來簡(jiǎn)化?JSON?的序列化和反序列化過程。這篇文章將介紹一些?Jackson?常用的注解,以幫助您更輕松地處理?JSON?數(shù)據(jù)
    2023-05-05
  • Mybatis批處理、Mysql深分頁操作

    Mybatis批處理、Mysql深分頁操作

    這篇文章主要介紹了Mybatis批處理、Mysql深分頁操作,Mybatis批量操作包括Foreach方式和ExecutorType.BATCH插入操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java overload和override的區(qū)別分析

    Java overload和override的區(qū)別分析

    方法的重寫(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn),想要了解更多請(qǐng)參考本文
    2012-11-11

最新評(píng)論