最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文為大家分享了JAVA語(yǔ)言課程設(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)過(guò)格子數(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è)按鈕連接起來(lái)了)

* 1.相鄰  
* 2. 若不相鄰的先在第一個(gè)按鈕的同行找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕橫向到這個(gè)空按鈕所在的列是否有按鈕。2).沒(méi)有的話再看第一個(gè)按鈕到與它同行的那個(gè)空按鈕之間是否有按鈕。3).沒(méi)有的話,再?gòu)呐c第一個(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è)按鈕不可以消去。

5)    在死鎖的情況下,我們也可以暫時(shí)不終止游戲,而是隨機(jī)打亂局面(即點(diǎn)擊“重列”按鈕),打破“死鎖”局面。
6)    設(shè)計(jì)時(shí)間限制,即指定時(shí)間內(nèi)沒(méi)有消除全部按鈕,則游戲結(jié)束
7)    設(shè)計(jì)過(guò)關(guān)模式,可以根據(jù)所有按鈕都消除了,或是得分到達(dá)某一個(gè)閾值作為過(guò)關(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; // 退出,重列,重新開(kāi)始按鈕
?? ?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("再來(lái)一局");
?? ??? ?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) {//如果以前沒(méi)點(diǎn)擊過(guò)
?? ??? ??? ?x = placeX;
?? ??? ??? ?y = placeY; ? ? ?//記錄這個(gè)按鈕坐標(biāo)[x,y]
?? ??? ??? ?secondMsg = grid[x][y];
?? ??? ??? ?secondButton = bz;//記錄這個(gè)按鈕的信息
?? ??? ??? ?pressInformation = true;
?? ??? ?} else { ? ? ? ? ? //如果以前點(diǎn)擊過(guò)
?? ??? ??? ?x0 = x;?? ?
?? ??? ??? ?y0 = y;
?? ??? ??? ?firstMsg = secondMsg;
?? ??? ??? ?firstButton = secondButton; ? ?//將上一次的button按鈕信息賦給first
?? ??? ??? ?x = placeX;
?? ??? ??? ?y = placeY;
?? ??? ??? ?secondMsg = grid[x][y]; ? ? ? ?//將這次點(diǎn)擊按鈕的信息記錄下來(lái)
?? ??? ??? ?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)說(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 (y < j) { // 如果第二個(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 (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è)空按鈕之間有沒(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) {
?? ??? ??? ?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è)按鈕不可見(jiàn)
?? ??? ?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)文章

  • MySQL數(shù)據(jù)庫(kù)之Purge死鎖問(wèn)題解析

    MySQL數(shù)據(jù)庫(kù)之Purge死鎖問(wèn)題解析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)之Purge死鎖問(wèn)題解析的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • SpringBoot中的Condition包下常用條件依賴注解案例介紹

    SpringBoot中的Condition包下常用條件依賴注解案例介紹

    這篇文章主要介紹了SpringBoot中的Condition包下常用條件依賴注解案例,文章基于Java的相關(guān)資料展開(kāi)主題詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-04-04
  • springboot工程如何使用阿里云OSS傳輸文件

    springboot工程如何使用阿里云OSS傳輸文件

    阿里云對(duì)象存儲(chǔ)OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),多種存儲(chǔ)類型供選擇,全面優(yōu)化存儲(chǔ)成本,非常適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),本文給大家介紹springboot工程使用阿里云OSS傳輸文件的操作,感興趣的朋友一起看看吧
    2023-08-08
  • MybatisPlus的LambdaQueryWrapper用法詳解

    MybatisPlus的LambdaQueryWrapper用法詳解

    LambdaQueryWrapper<Tag>?是 MyBatis-Plus 框架中的一個(gè)功能強(qiáng)大的查詢構(gòu)造器,它用于構(gòu)建 SQL 查詢條件,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • Resty開(kāi)發(fā)restful版本的Jfinal深入研究

    Resty開(kāi)發(fā)restful版本的Jfinal深入研究

    這篇文章主要為大家介紹了Resty開(kāi)發(fā)restful版本的Jfinal深入研究有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Java泛型extends及super區(qū)別實(shí)例解析

    Java泛型extends及super區(qū)別實(shí)例解析

    這篇文章主要介紹了Java泛型extends及super區(qū)別實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java設(shè)計(jì)模式之抽象工廠模式AbstractFactoryPattern詳解

    Java設(shè)計(jì)模式之抽象工廠模式AbstractFactoryPattern詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之抽象工廠模式AbstractFactoryPattern詳解,抽象工廠模式是一種軟件開(kāi)發(fā)設(shè)計(jì)模式,抽象工廠模式提供了一種方式,可以將一組具有同一主題的單獨(dú)的工廠封裝起來(lái),需要的朋友可以參考下
    2023-10-10
  • idea中springboot項(xiàng)目創(chuàng)建后追加依賴

    idea中springboot項(xiàng)目創(chuàng)建后追加依賴

    在項(xiàng)目創(chuàng)建的時(shí)候選擇好依賴創(chuàng)建項(xiàng)目,之后追加依賴不是很方便,本文就來(lái)介紹一下idea中springboot項(xiàng)目創(chuàng)建后追加依賴,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 創(chuàng)建網(wǎng)關(guān)項(xiàng)目(Spring Cloud Gateway)過(guò)程詳解

    創(chuàng)建網(wǎng)關(guān)項(xiàng)目(Spring Cloud Gateway)過(guò)程詳解

    這篇文章主要介紹了創(chuàng)建網(wǎng)關(guān)項(xiàng)目(Spring Cloud Gateway)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    這篇文章主要介紹了Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系的相關(guān)資料,需要的朋友可以參考下
    2016-11-11

最新評(píng)論

宁南县| 科技| 大名县| 安丘市| 平原县| 田东县| 凤翔县| 抚宁县| 屏边| 浑源县| 抚远县| 襄垣县| 玛多县| 北辰区| 旬邑县| 铅山县| 仙游县| 铁岭市| 凤庆县| 泸定县| 新乡市| 木里| 赤壁市| 临汾市| 金川县| 德安县| 松江区| 津南区| 霍山县| 安平县| 贵南县| 张家界市| 汉川市| 图片| 阆中市| 启东市| 德庆县| 拉萨市| 临湘市| 左贡县| 武隆县|