日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java中showconfirmdialog_Java小游戏之连连看

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中showconfirmdialog_Java小游戏之连连看 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

連連看大家應該都玩過,不多說直接上一個做好的界面截圖吧,所有的功能都在上面的,要做的就只是如何去實現它們了。

差不多就是這個樣子。先說一下大致的思路吧。首先編寫基本的界面:把什么按鈕啊,表格啊什么的都畫上去。然后就是編寫事件處理類,因為操作使用鼠標,所以加上鼠標監聽。然后獲取點擊的坐標,根據坐標得出圖片在數組中的位置。接著創建一個類,實現連連看消除的算法。這樣就基本上可以開始游戲了。然后實現排行榜按鈕和存檔按鈕的基本功能。最后加上一個線程類,用于處理倒計時。下面的介紹也基于這個順序。

界面實現:這個其實沒什么好說的,把JFrame的知識用上就好了。考慮到圖片的閃爍問題,在界面類中重寫paint方法,加上雙緩沖(雙緩沖不懂的,可以自行百度或者看看我寫的Java版本2048)。所以就直接貼代碼了。

package com.cbs.look;public interface LookConfig {int x=50;//初始x坐標,原來是10int y=100;//初始y坐標,原來是50int space=10;//圖片間的間隔int arc=50;//圓角矩形的弧度int size=60;//圖片的大小int num=9;//圖片類型
}
package com.cbs.look;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;/*** 連連看的主界面類* * @author CBS* */
@SuppressWarnings("serial")
public class GameLook extends JFrame implements LookConfig {private int[][] array = new int[8][8];// 數組用于保存界面的信息JLabel timeJl;// 用于顯示剩余時間public static void main(String[] args) throws InterruptedException {GameLook g = new GameLook();g.showUI();}/*** 初始化界面* * @throws InterruptedException*/public void showUI() throws InterruptedException {setTitle("連連看");setSize(700, 800);setDefaultCloseOperation(3);setLocationRelativeTo(null);setResizable(true);setLayout(null);// 添加新游戲按鈕
//        ImageIcon start = new ImageIcon("res/start.png");JButton startJB = new JButton("新游戲");startJB.setBounds(30, 700, 100, 40);
//        startJB.setBorderPainted(false);// 設置邊框為空startJB.setFocusable(false);
//        startJB.setContentAreaFilled(false);// 設置內容空this.add(startJB);// 添加排行榜按鈕JButton save = new JButton("排行榜");save.setFocusable(false);save.setBounds(190, 700, 100, 40);this.add(save);// 添加存檔按鈕JButton saveGame = new JButton("存檔");saveGame.setFocusable(false);saveGame.setBounds(320, 700, 100, 40);this.add(saveGame);// 添加剩余時間JLabel jl = new JLabel("Time:");jl.setFont(new Font("", Font.BOLD, 20));jl.setBounds(440, 700, 80, 50);this.add(jl);// 顯示剩余時間timeJl = new JLabel("90");timeJl.setFont(new Font("", Font.BOLD, 20));timeJl.setBounds(520, 700, 80, 50);this.add(timeJl);setVisible(true);GameListener gl = new GameListener();gl.setFrame(this);gl.setTimeJl(timeJl);gl.setArray(array);saveGame.addActionListener(gl);startJB.addActionListener(gl);save.addActionListener(gl);int i=JOptionPane.showConfirmDialog(this, "是否讀取上次的存檔", "讀檔",JOptionPane.YES_NO_OPTION);if(i==1){JOptionPane.showMessageDialog(this, "請按新游戲開始游戲吧!");}else{GameSave2 gs2=new GameSave2();CunD c=gs2.opean();if(c!=null){array=c.getArray();gl.setArray(array);this.addMouseListener(gl);this.repaint();TimeOut tt =new TimeOut(timeJl, this, gl);gl.setTt(tt);tt.setSeconds(c.getTime());tt.start();}else{JOptionPane.showMessageDialog(this, "讀取失敗!");}}}@Overridepublic void paint(Graphics g) {super.paint(g);buffPaint(g);}/*** 使用雙緩沖技術解決閃屏問題* * @param g傳入的畫筆對象*/public void buffPaint(Graphics g) {Image i = createImage(space + (size + space) * array[0].length, space+ (size + space) * array.length);Graphics2D g2d = (Graphics2D) i.getGraphics();g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);// 繪制背景矩形g2d.setColor(new Color(210, 180, 140));g2d.fillRoundRect(0, 0, space + (size + space) * array[0].length, space+ (size + space) * array.length, arc, arc);// 繪制背景方格g2d.setColor(new Color(245, 245, 220));for (int r = 0; r < array.length; r++) {for (int c = 0; c < array[r].length; c++) {g2d.fillRect(space + (size + space) * c, space + (size + space)* r, size, size);}}// 繪制圖片g2d.setColor(Color.BLUE);g2d.setFont(new Font("宋體", Font.BOLD, 30));for (int r = 0; r < array.length; r++) {for (int c = 0; c < array[r].length; c++) {if (array[r][c] != 0) {ImageIcon icon = new ImageIcon("res/" + array[r][c]+ ".jpg");Image image = icon.getImage();g2d.drawImage(image, space + (size + space) * c, space+ (size + space) * r, size, size, null);}}}g.drawImage(i, x, y, this);}
}

事件處理類:鼠標的事件處理主要負責的是記錄兩次點擊的坐標,然后判斷是否能夠把兩個圖片消除,如果可以消除圖片把對應的數組位置的數置為0,然后重繪畫板,如果不行同樣重繪畫板消除選框及連線。動作的事件處理主要負責實現不同的按鈕的功能。

package com.cbs.look;import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import java.util.Random;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.plaf.FontUIResource;
/*** 事件處理類* @author CBS*/
public class GameListener extends MouseAdapter implements LookConfig,ActionListener {// 用于控制坐標的獲取private boolean flag = true;private int r1, c1, r2, c2;// 對應數組的下標位置private int x1, y1, x2, y2;// 鼠標點擊的坐標private int array[][];// 保存數組private JFrame frame;// 用于獲取窗體對象,調用Repaint方法private Graphics2D g;// 畫筆對象JLabel timeJl;// 用于顯示剩余時間TimeOut tt ;// 倒計時線程類private int x;// 保存畫框的頂點x坐標private int y;// 保存畫框的頂點y坐標public TimeOut getTt() {return tt;}public void setTt(TimeOut tt) {this.tt = tt;}public void setTimeJl(JLabel timeJl) {this.timeJl = timeJl;}public void setFrame(JFrame frame) {this.frame = frame;g = (Graphics2D) frame.getGraphics();}public void setArray(int[][] array) {this.array = array;}@Overridepublic void mousePressed(MouseEvent e) {// 獲取坐標if (flag) {x1 = e.getX() - 40;y1 = e.getY() - 50;flag = false;if (y1 / (size + space) - 1 >= array.length)r1 = array.length - 1;else if (y1 / (size + space) - 1 < 0)r1 = 0;elser1 = y1 / (size + space) - 1;if (x1 / (size + space) >= array[0].length)c1 = array[0].length - 1;elsec1 = x1 / (size + space);g.setColor(Color.RED);g.setStroke(new BasicStroke(5));x = space + space + c1 * (size + space) + 40;y = size + r1 * (size + space) + 50;g.drawRect(x, y, size, size);} else {x2 = e.getX() - 40;y2 = e.getY() - 50;flag = true;if (y2 / (size + space) - 1 >= array.length)r2 = array.length - 1;else if (y1 / (size + space) - 1 < 0)r1 = 0;elser2 = y2 / (size + space) - 1;if (x2 / (size + space) >= array[0].length)c2 = array[0].length - 1;elsec2 = x2 / (size + space);g.setColor(Color.RED);g.setStroke(new BasicStroke(4));x = space + space + c2 * (size + space) + 40;y = size + r2 * (size + space) + 50;g.drawRect(x, y, size, size);}GameUtil gu = new GameUtil(this.frame);if (array[r1][c1] == array[r2][c2] && flag && !(r1 == r2 && c2 == c1)&& (array[r1][c1] != 0 || array[r2][c2] != 0)) {if (gu.wuZhe(r1, c1, r2, c2, array)) {array[r1][c1] = 0;array[r2][c2] = 0;g.setColor(Color.PINK);g.drawLine(2 * space + size / 2 + c2 * (size + space) + 40,size + size / 2 + r2 * (size + space) + 50, 2 * space+ size / 2 + c1 * (size + space) + 40, size+ size / 2 + r1 * (size + space) + 50);} else if (gu.yiZhe(r1, c1, r2, c2, array)) {array[r1][c1] = 0;array[r2][c2] = 0;g.setColor(Color.PINK);g.drawLine(2 * space + size / 2 + gu.getPath().get(0).y* (size + space) + 40, size + size / 2+ gu.getPath().get(0).x * (size + space) + 50, 2* space + size / 2 + c1 * (size + space) + 40, size+ size / 2 + r1 * (size + space) + 50);g.drawLine(2 * space + size / 2 + gu.getPath().get(0).y* (size + space) + 40, size + size / 2+ gu.getPath().get(0).x * (size + space) + 50, 2* space + size / 2 + c2 * (size + space) + 40, size+ size / 2 + r2 * (size + space) + 50);} else if (gu.erZhe(r1, c1, r2, c2, array)) {array[r1][c1] = 0;array[r2][c2] = 0;g.setColor(Color.PINK);g.drawLine(2 * space + size / 2 + gu.getPath().get(1).y* (size + space) + 40, size + size / 2+ gu.getPath().get(1).x * (size + space) + 50, 2* space + size / 2 + c1 * (size + space) + 40, size+ size / 2 + r1 * (size + space) + 50);// path的下標為一的位置要減一,因為數組擴大了g.drawLine(2 * space + size / 2 + (gu.getPath().get(0).y - 1)* (size + space) + 40, size + size / 2+ (gu.getPath().get(0).x - 1) * (size + space) + 50, 2* space + size / 2 + gu.getPath().get(1).y* (size + space) + 40, size + size / 2+ gu.getPath().get(1).x * (size + space) + 50);g.drawLine(2 * space + size / 2 + (gu.getPath().get(0).y - 1)* (size + space) + 40, size + size / 2+ (gu.getPath().get(0).x - 1) * (size + space) + 50, 2* space + size / 2 + c2 * (size + space) + 40, size+ size / 2 + r2 * (size + space) + 50);}//實現消除控制重繪的刷新時間Thread t=new Thread();try {t.sleep(100);frame.repaint();} catch (InterruptedException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}if (isWin(array)) {tt.setFlag(false);frame.removeMouseListener(this);JOptionPane.showMessageDialog(frame, "恭喜你,"+ "你贏了!!請點擊新游戲開始新一局");int i = JOptionPane.showConfirmDialog(frame, "是否記錄將你的信息記入排行榜","排行榜", JOptionPane.YES_NO_OPTION);if (i == 0) {String str = JOptionPane.showInputDialog(frame, "請輸入你的名字","排行榜", JOptionPane.YES_NO_OPTION);int time=90-tt.getSeconds();User u = new User(str, time);GameSave gs = new GameSave();gs.save(u);}}}//未實現消除,重繪去掉線條if (flag) {Thread t=new Thread();try {t.sleep(100);frame.repaint();} catch (InterruptedException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}// 按鈕動作監聽public void actionPerformed(ActionEvent e) {String str = e.getActionCommand();if ("新游戲".equals(str)) {for (int r = 0; r < array.length; r++)for (int c = 0; c < array[r].length; c++)if (array[r][c] != 0) {array[r][c] = 0;}if(tt!=null){if(tt.isFlag()){frame.removeMouseListener(this);tt.setFlag(false);}}randomData();frame.repaint();frame.addMouseListener(this);// 啟動線程tt = new TimeOut(timeJl, frame, this);if(!tt.isFlag())tt.setFlag(false);tt.start();}if ("排行榜".equals(str)) {GameSave gs = new GameSave();List<User> list = gs.opean();for (int i = 0; i < list.size(); i++) {int flag = i;for (int j = i + 1; j < list.size(); j++) {if (list.get(i).getTime() > list.get(j).getTime())flag = j;}if (flag != i) {User u1 = list.get(i);User u2 = list.get(flag);list.set(i, u2);list.set(flag, u1);}}JFrame jf = new JFrame();jf.setTitle("排行榜");jf.setDefaultCloseOperation(2);jf.setSize(300, 500);FlowLayout fl = new FlowLayout(FlowLayout.LEFT);jf.setLayout(fl);jf.setLocationRelativeTo(null);for (int i = 0; i < list.size(); i++) {JLabel jl = new JLabel(list.get(i).toString());jl.setFont(new FontUIResource("楷體", Font.BOLD, 20));jf.add(jl);}jf.setVisible(true);}if("存檔".equals(str)){System.out.println(23333);GameSave2 gs2=new GameSave2();int time=tt.getSeconds();CunD c=new CunD(array, time);boolean is=gs2.save(c);if(is)JOptionPane.showMessageDialog(frame, "存檔成功!");elseJOptionPane.showMessageDialog(frame, "存檔失敗!");}}/*** 生成隨機數字*/public void randomData() {Random random = new Random();int r1, r2, c1, c2;for (int i = 0; i < array.length * array[0].length / 2; i++) {do {r1 = random.nextInt(array.length);c1 = random.nextInt(array[r1].length);} while (array[r1][c1] != 0);array[r1][c1] = random.nextInt(num) + 1;do {r2 = random.nextInt(array.length);c2 = random.nextInt(array[r2].length);} while (array[r2][c2] != 0);array[r2][c2] = array[r1][c1];}}//遍歷數組,判斷輸贏public boolean isWin(int[][] array) {for (int r = 0; r < array.length; r++)for (int c = 0; c < array[r].length; c++)if (array[r][c] != 0)return false;return true;}
}

這里的圖片我使用的是直接繪制圖片,而不是通過按鈕,所以坐標的判斷有些麻煩。數組的下標取得是通過鼠標坐標整除方格的邊長加間隔,然后由數組下標取得屏幕坐標則相反。初始數據是由randomData方法生成,不同的數字對應不同的圖片。

連連看的算法:這里我使用的算法是比較容易理解和實現的分類算法,據說還有一種比較厲害的算法叫廣度優先搜索,那個我不會,所以就只能用這種了。先說說連連看的規則吧,就是用不超過兩次拐彎的直線能夠相連就能夠消除。這樣分類算法就很好理解了,按照消除要拐彎的次數分為無折相連,一折相連和二折相連。首先是無折相連這個很好理解,要么他們左右相鄰或者是上下相鄰,要么就是同一行,兩個方快中間沒有阻隔或者是同一列中間沒有阻隔。

就像上面的圖,左邊是不相鄰的,右邊是相鄰的,這兩種都屬于無折的相連。然后是一折的相連。一折的相連就是拐一個彎,先看看示意圖把:

其實無論是哪種情況,能夠實現一折相連的方塊都是在矩形的兩個對頂角,所以只要判斷矩形的另外兩個對頂角是否能夠實現無折相連就行了。最后是二折相連,同樣是先看示意圖:

二折的情況看似復雜,其實只要在水平方向上和垂直方向上分別進行遍歷,如果是空格就判斷這個空格是否能夠和另一個格子一折相連就行了。其實整個算法有點像是遞歸,一折調用無折,二折調用一折。算法的思路大概就是這樣。然后就上代碼吧:

package com.cbs.look;import java.awt.Point;
import java.util.ArrayList;
import java.util.List;import javax.swing.JFrame;/*** 核心算法* 判斷兩個方塊是否聯通* @author CBS* */
public class GameUtil implements LookConfig {//path主要是記錄下相連的數組的位置,為了方便實現連線的功能private List<Point> path=new ArrayList<Point>();public List<Point> getPath() {return path;}public GameUtil(JFrame frame) {}/*** 無折算法,無折的情況,要么同行,判斷列是否連通;要么同列判斷行是否連通* * @param r1第一個方塊行下標* @param c1第一個方塊列下標* @param r2第二個方塊行下標* @param c2第二個方塊列下標* @param array用于保存數組的信息* @return 如果能夠連通返回TRUE,or返回FALSE*/public boolean wuZhe(int r1, int c1, int r2, int c2, int[][] array) {if (r1 != r2 && c1 != c2)return false;// 如果兩點的x坐標相等,則在水平方向上掃描if (r1 == r2) {if (c1 == c2 - 1 || c2 == c1 - 1)// 列相鄰return true;for (int i = Math.min(c1, c2) + 1; i < Math.max(c2, c1); i++)if (array[r1][i] != 0)return false;}// 如果兩點的y坐標相等,則在豎直方向上掃描else if (c1 == c2) {if (r1 == r2 - 1 || r2 == r1 - 1)// 行相鄰return true;for (int i = Math.min(r1, r2) + 1; i < Math.max(r2, r1); i++)if (array[i][c1] != 0)return false;}return true;}/*** 一折算法,無論是哪種情況下,都只需要判斷對角的r1,c2和r2,c1和兩點是否連通* * @param r1第一個方塊行下標* @param c1第一個方塊列下標* @param r2第二個方塊行下標* @param c2第二個方塊列下標* @param array 用于保存數組的信息* @return 如果能夠連通返回TRUE,or返回FALSE*/public boolean yiZhe(int r1, int c1, int r2, int c2, int[][] array) {// 如果屬于0折的情況,直接返回FALSEif (r1 == r2 || c1 == c2)return false;// 測試對角點1if (array[r1][c2] == 0) {boolean test1 = wuZhe(r1, c1, r1, c2, array);boolean test2 = test1 ? wuZhe(r1, c2, r2, c2, array) : test1;if (test1 && test2){path.add(new Point(r1,c2));return true;}}// 測試對角點2if (array[r2][c1] == 0) {boolean test1 = wuZhe(r1, c1, r2, c1, array);boolean test2 = test1 ? wuZhe(r2, c1, r2, c2, array) : test1;if (test1 && test2){path.add(new Point(r2,c1));return true;}}return false;}/*** 二折算法* * @param r1第一個方塊行下標* @param c1第一個方塊列下標* @param r2第二個方塊行下標* @param c2第二個方塊列下標* @param array用于保存數組的信息* @return 如果能夠連通返回TRUE,or返回FALSE*/public boolean erZhe(int r1, int c1, int r2, int c2, int[][] array) {//在原來數組的基礎上擴大一圈,用于判斷邊界的方格int[][] newArray = new int[array.length + 2][array[0].length + 2];for (int r = 0; r < array.length; r++) {for (int c = 0; c < array[r].length; c++) {newArray[r + 1][c + 1] = array[r][c];}}//判斷是否二折連接// 向下垂直遍歷for (int i = r1 + 2; i < newArray.length; i++) {if (newArray[i][c1+1] == 0 ) {if(yiZhe(r2+1, c2+1, i, c1+1, newArray)){path.add(new Point(i-1, c1));return true;}}elsebreak;}// 向上垂直遍歷for (int i = r1 ; i > -1; i--) {if (newArray[i][c1+1] == 0  ){if(yiZhe(i, c1+1, r2+1, c2+1, newArray)){path.add(new Point(i-1, c1));return true;}}elsebreak;}// 向右水平遍歷for (int i = c1 + 2; i < newArray[0].length; i++) {if (newArray[r1+1][i] == 0 ){if( yiZhe(r2+1, c2+1, r1+1, i, newArray)){path.add(new Point(r1,i-1));return true;}}elsebreak;}// 向左水平遍歷for (int i = c1 ; i > -1; i--) {if (newArray[r1+1][i] == 0  ) {if(yiZhe(r1+1, i, r2+1, c2+1, newArray)){path.add(new Point(r1,i-1));return true;}}else break;}return false;}}

還有一個要說一下就是上面第一張圖的那種二折情況,如果這種二折情況處于數組的邊界的話,在使用上面的二折算法判斷就會因為數組的問題,永遠不可能實現相連。解決的方法就是:把數組擴大,在整個的數組外邊加上一層,也就是說原來4*4變成6*6。把所有除原來4*4之外的位置的值都設為0,這樣就能夠遍歷到了。不過在判斷的時候要注意使用的是新數組的坐標還是舊數組的坐標(把新數組的坐標行下標和列下標都減一就是舊數組的行下標和列下標)。能夠消除就意味著你的連連看游戲已經可以玩了,剩下的就是一些優化的問題了。

排行榜和存檔功能的實現:這兩個功能放一起講,因為都用到了Java的IO的一些知識。這里主要用到的是Java中的FileOutputStream和FileInputStream這兩個類。FileOutputStream這個類是把內存中的數據輸出到外部的存儲設備,主要的方法就是write(向目標文件一次寫入一個字節)和close(關閉輸出流);FileInputStream則是把外部的數據輸入到內存中供程序使用,主要的方法就是read(從目標文件一次讀取一個字節)和close(關閉輸入流)。存檔的思路就是:把當前的數組情況和時間記錄下來(使用一個類來保存這兩個信息),保存到一個文件中,下次打開游戲的時候詢問用戶是否載入進度。排行榜的話是如果玩家獲勝,就記錄下玩家的姓名和通關用時(同樣使用一個類),保存到文件中。下面是代碼,把存檔和排行榜的相關類都放進去了:

package com.cbs.look;/*** 存檔* * @author CBS*/public class CunD {private int array[][];private int time;public CunD() {}public CunD(int[][] array, int time) {this.array = array;this.time = time;}public int[][] getArray() {return array;}public void setArray(int[][] array) {this.array = array;}public int getTime() {return time;}public void setTime(int time) {this.time = time;}}
package com.cbs.look;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;/*** 用于保存游戲存檔的信息* * @author CBS*/
public class GameSave2 {public boolean save(CunD d) {String path = "src/com/cbs/look/info.txt";try {OutputStream os = new FileOutputStream(path);os.write(d.getTime());for (int r = 0; r < d.getArray().length; r++) {for (int c = 0; c < d.getArray()[0].length; c++) {os.write(d.getArray()[r][c]);}}os.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return false;}public CunD opean() {String path = "src/com/cbs/look/info.txt";try {InputStream is = new FileInputStream(path);int time = is.read();int array[][]=new int[8][8];for (int i = 0; i < array.length; i++)for (int j = 0; j < array[0].length; j++)array[i][j] = is.read();CunD c=new CunD(array,time);is.close();return c;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}
}
package com.cbs.look;/*** 記錄排行榜的用戶信息的類* * @author CBS* */
public class User {private String name;//用戶名private int time;//記錄用戶通過所用時間public User() {}public User(String name, int time) {this.name = name;this.time = time;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getTime() {return time;}public void setTime(int time) {this.time = time;}@Overridepublic String toString() {String str=name+"用時為:"+time;return str;}}
package com.cbs.look;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;/*** 用于保存游戲排行榜信息* * @author CBS*/
public class GameSave {public boolean save(User user) {String path = "src/com/cbs/look/save3.txt";try {List<User> array = opean();if(array!=null){array.add(user);for (int i=0;i<array.size()-1;i++) {int flag=i;for(int j=i+1;j<array.size();j++){if(array.get(i).getTime()>array.get(j).getTime())flag=j;}if(flag!=i){User u1=array.get(i);User u2=array.get(flag);array.set(i, u2);array.set(flag, u1);}}}else{array=new ArrayList<User>(); array.add(user);}OutputStream os = new FileOutputStream(path);DataOutputStream dos=new DataOutputStream(os);//先寫入有幾條信息os.write(array.size());for (int i = 0; i < array.size(); i++) {User u =  array.get(i);dos.writeByte(u.getName().getBytes().length);dos.write(u.getName().getBytes());dos.writeInt(u.getTime());}os.close();dos.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return false;}public List<User> opean() {String path = "src/com/cbs/look/save3.txt";try {InputStream is = new FileInputStream(path);DataInputStream dis = new DataInputStream(is); //讀取有幾條信息int size=is.read();List<User> list=new ArrayList<User>();if(size!=-1){for(int i=0;i<size;i++){byte bsize=dis.readByte();byte[] b=new byte[bsize];is.read(b);int time=dis.readInt();User u=new User(new String(b),time);list.add(u);}}dis.close();is.close();return list;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}
}

倒計時的實現:倒計時其實很簡單使用一個線程就好(如果線程不了解請自行百度或者學習,不用很了解,知道就行,只是為了做個倒計時罷了),每次線程休眠一秒就讓時間減一,然后把時間在窗體中輸出就行了。也沒什么可說的,上代碼咯:

package com.cbs.look;
/*** 線程類,控制時間*/
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;public class TimeOut extends Thread {private int seconds=90;//游戲時間private JFrame frame;//主窗體對象private JLabel jl;//倒計時標簽private boolean flag = true;// 控制線程結束private GameListener gl;//事件處理類// 在別的類中控制線程的關閉public void setFlag(boolean flag) {this.flag = flag;}public boolean isFlag() {return flag;}public int getSeconds() {return seconds;}public void setSeconds(int seconds) {this.seconds = seconds;}public TimeOut(JLabel jl, JFrame frame, GameListener gl) {this.jl = jl;this.frame = frame;this.gl = gl;}@Overridepublic void run() {
//        seconds = 90;jl.setText(seconds + "");while (seconds-- > 0 && flag) {jl.setText(seconds + "");if (seconds == 0) {JOptionPane.showMessageDialog(frame, "不好意思,時間用光了,請開始新游戲");frame.removeMouseListener(gl);}try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

這樣所有的東西也就都講完了,剩下的就是如何把它們組織在一起形成你的東西了。

github:MissingBread/game

有需自取

總結

以上是生活随笔為你收集整理的java中showconfirmdialog_Java小游戏之连连看的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

四虎永久网站 | 色综合中文综合网 | 丁香婷婷电影 | 97超在线| 国产专区视频在线 | 色婷婷综合视频在线观看 | 成人网在线免费视频 | 免费裸体视频网 | 精品国产一区二区三区男人吃奶 | 国产一区视频在线观看免费 | 超碰在线亚洲 | 精品亚洲欧美一区 | 黄色a在线观看 | 久久精品视频一 | 麻豆视频在线免费 | 亚洲六月丁香色婷婷综合久久 | 91成人久久 | 在线看v片成人 | 免费久久精品视频 | 国产精品成人一区二区三区吃奶 | 欧美久草视频 | 超碰av在线免费观看 | 国产精品不卡在线 | 五月婷婷激情六月 | 久久久久久久久久毛片 | 91免费高清在线观看 | 国产精品久久久久久影院 | 涩涩网站在线观看 | 亚洲国产操 | 夜夜操天天操 | 日韩视频一区二区在线 | 成人黄色大片在线免费观看 | 欧美日韩性视频在线 | 香蕉视频在线免费 | 日韩亚洲精品电影 | 日韩免费高清在线 | 69久久99精品久久久久婷婷 | 色婷婷狠狠五月综合天色拍 | 中文字幕日韩伦理 | 992tv在线观看 | 久久久久亚洲国产精品 | 国产精品美女久久久免费 | 国产精品久久久久久久久久久久久 | 人人澡人人添人人爽一区二区 | 免费中午字幕无吗 | 精品久久网 | 色狠狠狠 | 五月婷婷视频在线 | 国产一级91| 欧美一区二区三区在线 | 国产在线永久 | 波多野结衣动态图 | 色综合网 | 国产精品久久久久婷婷 | 色婷婷伊人 | 中文字幕在线播放av | 亚洲成人av在线电影 | 成人av一区二区在线观看 | 日韩视频免费看 | 精品视频在线免费 | 久久一区二区三区超碰国产精品 | 最新国产精品拍自在线播放 | 超碰夜夜 | 日韩欧美国产免费播放 | 国产在线精品播放 | 亚洲无人区小视频 | 人人插人人艹 | 7777xxxx| 美女久久视频 | 国产精品毛片一区二区 | 国产手机在线播放 | 人人玩人人添人人澡超碰 | 久久久午夜电影 | 日日干av| 天天激情天天干 | 99久久精品国产一区二区成人 | 黄色在线免费观看网址 | 激情五月婷婷丁香 | 天天干天天玩天天操 | 久久一久久 | 国内视频在线 | 精品免费 | 欧美精品久久久久a | 日韩超碰 | 国产一区 在线播放 | 久久久久久久久久影视 | 色综合久久综合中文综合网 | 亚洲国产影院av久久久久 | 亚洲天天在线日亚洲洲精 | 99久久99热这里只有精品 | 国产成人av网站 | 天天玩夜夜操 | av线上免费看 | 免费看片亚洲 | 国产成人久久精品一区二区三区 | 亚洲免费视频观看 | 国产精品视频99 | 亚洲国产大片 | 视频在线观看91 | 日韩欧美高清不卡 | 99在线观看免费视频精品观看 | 精品国产乱码久久久久 | 亚洲日本三级 | 中文字幕av日韩 | 伊人五月天 | 久久国产精品一区二区三区四区 | 97精品国产97久久久久久久久久久久 | 国产又粗又硬又长又爽的视频 | 国产精品18毛片一区二区 | 黄色一级大片免费看 | 丰满少妇在线观看资源站 | 97超级碰碰碰碰久久久久 | 欧美午夜性生活 | 国产精品大全 | 中文字幕日本在线 | 蜜臀一区二区三区精品免费视频 | www最近高清中文国语在线观看 | 91福利区一区二区三区 | 欧美精彩视频在线观看 | 日韩女同一区二区三区在线观看 | 成人国产电影在线观看 | 免费看成人a | 波多野结衣在线中文字幕 | 亚洲午夜电影网 | 中文字幕在线观看不卡 | 500部大龄熟乱视频 欧美日本三级 | 国产在线1区 | 久久午夜视频 | 亚洲第一中文字幕 | 日韩在线免费高清视频 | 欧美一区日韩精品 | 天天射天天色天天干 | 免费观看性生活大片3 | 午夜久草 | 欧美综合在线观看 | 在线看片日韩 | 日韩精品一区二区在线观看 | 国产丝袜一区二区三区 | 91自拍视频在线观看 | www.色婷婷 | 国产精品久久久777 成人手机在线视频 | 操一草| 日韩三级在线 | 成人午夜片av在线看 | 精品99久久久久久 | 久久亚洲日本 | 国产精品久久久一区二区 | 国产一级免费片 | 天堂av在线免费 | 日韩有码第一页 | 亚欧日韩成人h片 | 干干操操 | 又长又大又黑又粗欧美 | 日韩欧美高清一区二区三区 | 91夜夜夜 | 国产精品21区 | 日韩性xxxx | 黄色资源网站 | 91入口在线观看 | 丰满少妇在线观看 | 网址你懂的在线观看 | 国产欧美在线一区二区三区 | 久久久久97国产 | 99精彩视频 | 香蕉影视| 手机av资源 | 久草国产在线观看 | 国产裸体视频bbbbb | 国产精品一区二区免费视频 | 91超级碰碰 | 日日干视频 | 狠狠操导航 | 最新国产在线视频 | 美女网站在线看 | www五月婷婷| 国产精品免费观看久久 | 伊人热| 免费在线观看av网站 | 96在线 | 黄色网中文字幕 | 国产精品视频免费看 | 国产在线一线 | 黄网站色视频 | 久久一区国产 | 欧美日韩在线视频一区 | 日韩在线视| 国产精品综合久久久 | 日韩四虎 | 在线观看网站你懂的 | 国产三级视频 | 91人人澡人人爽人人精品 | av在线网站免费观看 | 91最新国产 | 欧美日韩国产精品一区 | 视频福利在线 | 婷婷六月丁 | 久久久网址 | www久| 国产人免费人成免费视频 | 99色亚洲 | 国产精品毛片久久久 | 美女一区网站 | 综合久久一本 | 免费在线观看av的网站 | 国产爽视频 | 1024手机看片国产 | 国产精品久久久久免费 | 97品白浆高清久久久久久 | 午夜 在线 | 午夜美女视频 | 在线看片91 | 国产精品欧美日韩 | 91人人揉日日捏人人看 | 亚洲综合欧美日韩狠狠色 | 欧美黑吊大战白妞欧美 | 在线观看中文av | 日韩欧美视频一区二区三区 | 久久99久久99精品免观看粉嫩 | 日韩av视屏在线观看 | 中国成人一区 | 日本久久久精品视频 | 99久久精品国产亚洲 | 色婷婷狠 | 天天天天爽 | 91九色在线| 日韩精品视频在线免费观看 | 四虎在线免费观看 | 国产淫片免费看 | 最新不卡av | 在线中文字母电影观看 | 99色视频在线| 久久天堂影院 | 国产专区在线 | 国产电影黄色av | 草莓视频在线观看免费观看 | 欧美日韩在线视频观看 | 又黄又爽又色无遮挡免费 | 欧美黑人xxxx猛性大交 | 综合色亚洲 | a在线视频v视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 精品91在线 | 一区二区三区韩国免费中文网站 | av免费播放| 黄视频色网站 | 视频一区二区三区视频 | 天天草天天干天天 | 国产精品成人一区二区 | 亚洲精品视频在线观看视频 | www免费在线观看 | 三级毛片视频 | 国产精品毛片一区二区三区 | 日韩三级一区 | 欧美成人tv | 黄色一级影院 | 精品国产观看 | 午夜精品久久久久久久99水蜜桃 | 91九色蝌蚪视频在线 | 免费观看的av网站 | 久久久婷 | 成人免费xxxxxx视频 | 欧美日韩在线观看一区二区三区 | 日韩在线免费高清视频 | 日本激情动作片免费看 | 亚洲国产免费 | 免费精品在线 | 国产专区第一页 | 欧美激情综合色综合啪啪五月 | av一区二区在线观看中文字幕 | 久久国产精品区 | 日韩,中文字幕 | 制服丝袜一区二区 | 免费网址你懂的 | 日韩有码欧美 | 中文字幕日韩av | 黄色片网站| 欧美 日韩 成人 | 中文字幕一区二区三区久久蜜桃 | 精品国内自产拍在线观看视频 | 国产剧情亚洲 | 91色一区二区三区 | 在线视频你懂得 | 日本性高潮视频 | 日韩在线视频免费看 | 在线观看你懂的网站 | www.色com| 欧美日韩在线视频一区 | 狠狠狠色丁香婷婷综合久久88 | 福利区在线观看 | 成人91在线观看 | 久草视频在线资源站 | 久久久久久久久久久久久久av | 成人h电影 | 在线看一级片 | 成人在线一区二区 | 国产99久久久久久免费看 | 999国内精品永久免费视频 | 夜色资源站国产www在线视频 | 亚洲经典视频 | 日韩艹| 天天射综合网视频 | 欧美激情视频三区 | 亚洲日本va午夜在线影院 | 黄色午夜网站 | 久久精品国产亚洲精品2020 | 国产精品久久久久久久免费观看 | 深夜国产福利 | 9999精品 | 五月婷婷中文 | 天天干天天草天天爽 | 国产精品一区二区果冻传媒 | 国产资源| 国产大陆亚洲精品国产 | 久久久精品高清 | 日韩黄在线观看 | 香蕉影院在线观看 | 久久国产精品免费观看 | 国产日韩精品一区二区三区 | 在线 影视 一区 | 久久久99国产精品免费 | 综合网天天射 | 91av视频在线观看 | 日韩在线国产精品 | 九九九九免费视频 | 中文字幕在线免费 | 精品国产一区二区三区不卡 | 91精品在线免费观看 | 国产麻豆精品久久一二三 | 国产一区二区久久久久 | 激情视频免费观看 | 日韩在线视频不卡 | 四虎国产永久在线精品 | 亚洲国产免费av | 精品久久久久久久久久岛国gif | 亚洲九九九在线观看 | 91在线免费视频观看 | 久久国产精品99久久久久久进口 | 午夜精品福利在线 | 久艹在线免费观看 | 国产又粗又猛又爽又黄的视频免费 | 很污的网站 | 欧美色图30p | 中文字幕人成人 | 五月婷婷丁香色 | 黄色大片免费播放 | 国产精品com | 精品国产伦一区二区三区观看方式 | 亚洲激情视频 | 一区二区精品国产 | 五月丁香 | 国产码电影 | 激情综合站 | 色a综合| 国产中文字幕在线免费观看 | av网站手机在线观看 | 日本精品二区 | 久久久久久网站 | 免费亚洲精品 | 夜夜干夜夜 | 国产视频精选在线 | 在线免费91 | 国色天香在线观看 | 99免费在线观看视频 | av在线一级 | www.一区二区三区 | 狠狠色综合欧美激情 | 黄色福利视频网站 | 干干夜夜 | 国产成人精品久久亚洲高清不卡 | 91九色在线视频观看 | 免费观看久久 | 伊人国产在线播放 | 久久久久久久福利 | 国产91对白在线播 | 九九在线精品视频 | 二区三区在线 | 激情婷婷亚洲 | 国产精品久久久久高潮 | 狠狠狠色丁香综合久久天下网 | 亚洲精品动漫成人3d无尽在线 | 婷婷天天色 | 免费看污在线观看 | 黄色毛片观看 | 中文免费在线观看 | 国产精品久久久久久久久久久久午夜 | 国产一区二区不卡视频 | 91麻豆精品国产91久久久无限制版 | 色综合久久网 | 高潮久久久 | 波多野结依在线观看 | 国产精品视频地址 | 最新av中文字幕 | 一区二区三区在线观看免费 | 久久区二区| 亚洲综合精品视频 | 日韩精品一区二区三区不卡 | 久久精品一二三区白丝高潮 | 狠狠色丁香久久婷婷综合五月 | 久草在线视频国产 | 人人澡人人草 | 国际精品久久久 | 丁香综合av | 久久久精品 一区二区三区 国产99视频在线观看 | 日本精品视频在线观看 | 精品在线二区 | 国产中文在线字幕 | 免费在线观看av的网站 | 夜夜夜夜夜夜操 | 三级免费黄 | 亚洲a免费| 欧美有色 | 国产伦理久久精品久久久久_ | 国产亚洲欧美一区 | 伊人永久 | 天天色 天天 | 国产探花视频在线播放 | 美女免费电影 | 特黄一级毛片 | 久久成人视屏 | 日韩伦理片hd | 国产经典 欧美精品 | 夜夜夜夜夜夜操 | 一本一道久久a久久精品 | h文在线观看免费 | 国产乱对白刺激视频不卡 | 婷色| 日日夜夜噜 | 久久99最新地址 | 国产在线精品国自产拍影院 | 日韩免费福利 | 狠狠gao| 久久久久精 | 激情综合啪啪 | 国产精品午夜在线观看 | 国产免费观看av | 国产不卡一区二区视频 | 久久露脸国产精品 | 成人av一区二区兰花在线播放 | 人人澡人人爽欧一区 | 日韩精品一区二区在线观看视频 | 99电影| 免费看的黄网站 | 国产一级免费播放 | 欧美日韩视频一区二区三区 | 在线精品视频免费播放 | 99久高清在线观看视频99精品热在线观看视频 | 99亚洲视频| 精品在线99 | 久草在线国产 | 毛片黄色一级 | 中文字幕在线电影 | 亚洲精品美女在线观看 | www.久久免费 | 久久视屏网| 亚洲一区二区黄色 | 日韩美精品视频 | 91在线免费观看网站 | 色婷婷激婷婷情综天天 | 日韩成人一级大片 | 综合久久精品 | 久久久资源网 | 国产一区二区在线免费播放 | 亚洲天堂在线观看完整版 | 久久免费一 | 国产成人精品亚洲日本在线观看 | 日本久久综合网 | 91麻豆精品国产91久久久使用方法 | 中文字幕国产一区二区 | 91视频高清 | 日韩免费一区二区在线观看 | 视频在线观看入口黄最新永久免费国产 | 欧美一区二区三区在线视频观看 | 国产精品第一 | 黄色小说网站在线 | 999国内精品永久免费视频 | 人人澡人人舔 | 亚洲1区 在线 | 日韩一区二区三区在线观看 | 在线影院中文字幕 | 亚洲精品资源在线 | www.天天射.com | 一级黄色免费网站 | 五月天久久综合 | 成人蜜桃视频 | 91色欧美| 99久久久国产精品免费99 | 久草免费在线视频 | 中文字幕在线观看日本 | 久久婷婷影视 | 欧美一区成人 | 黄网av在线 | 国产高清视频在线免费观看 | 深夜成人av | 婷婷成人综合 | 激情久久小说 | 亚洲综合精品视频 | 成人在线免费视频 | 91精品国产入口 | 国产成人黄色在线 | 亚洲精品网站在线 | 中文永久免费观看 | 成人av电影免费在线播放 | 91精品视频免费观看 | 91精品久久久久久久久久久久久 | 国产成人三级 | 日韩中文字幕在线不卡 | 欧美日韩精品在线 | 丁香五婷 | 日本在线观看中文字幕无线观看 | 久久久国产精品麻豆 | 午夜av日韩 | 午夜精品成人一区二区三区 | 中文字幕一区二区三区乱码不卡 | 天天射射天天 | 日韩电影一区二区在线观看 | 亚洲专区 国产精品 | 亚洲精品一区二区网址 | 日韩在线观看精品 | 久草视频免费观 | 91看片在线看片 | 成人小视频免费在线观看 | 91九色视频在线观看 | 天天干中文字幕 | 久草电影在线观看 | av在线一二三区 | 狠狠色香婷婷久久亚洲精品 | 欧美精品九九99久久 | 成人小视频在线观看免费 | 在线观看国产福利片 | 夜夜天天干 | 亚洲午夜久久久久久久久电影网 | 国产不卡视频在线 | 最近更新好看的中文字幕 | av免费试看| av网站大全免费 | 日日弄天天弄美女bbbb | 日韩精品电影在线播放 | 国产精品自拍在线 | 丁香av| 91麻豆精品国产91久久久久久久久 | 国产精品嫩草影院123 | 永久免费视频国产 | 4hu视频| 亚洲成aⅴ人在线观看 | 免费涩涩网站 | 一级理论片在线观看 | 免费h在线观看 | 天天操天天操一操 | 国产中文在线观看 | 欧美精品亚洲精品日韩精品 | 黄色国产在线观看 | 在线免费视 | 国产不卡高清 | 色婷婷综合久久久中文字幕 | 久久99精品久久久久婷婷 | 久久中文字幕导航 | 国产99久久久欧美黑人 | 五月婷婷六月丁香 | 中文字幕无吗 | 久久看片 | 亚洲欧美成人综合 | av在线免费观看不卡 | 国产精品福利在线 | 欧美精品生活片 | 美女视频黄免费 | 亚洲在线a | 青青河边草免费 | 国产精品青青 | 国产一区二区网址 | 久久久久久激情 | 97精品国产97久久久久久粉红 | 国产精品久久精品国产 | 西西444www大胆无视频 | 中文字幕日韩免费视频 | 97看片 | 国产成人专区 | 国内精品久久久久久久久 | 手机在线看a | 欧美在线观看视频一区二区三区 | 国产国语在线 | 亚洲精品一区二区三区在线观看 | 婷婷久久一区 | 99婷婷狠狠成为人免费视频 | 日韩免费看 | 成人久久18免费 | 又粗又长又大又爽又黄少妇毛片 | 91久草视频 | 开心激情久久 | 国产成人一区二区三区电影 | 国产高清视频在线 | 国产精品成人一区二区三区吃奶 | 日韩网页| 97精品国自产拍在线观看 | 亚洲成人免费在线观看 | 岛国精品一区二区 | 国产3p视频| 国产99久久久久久免费看 | 国产精品九九视频 | 韩国一区视频 | 亚洲日本成人 | 成人动漫一区二区三区 | 午夜精品久久久久久久久久久久 | 91高清完整版在线观看 | 色噜噜日韩精品欧美一区二区 | 99精品视频在线播放免费 | 激情综合亚洲 | 久久激情精品 | 亚洲精品视频免费 | 五月婷婷视频 | 日韩久久午夜一级啪啪 | 五月婷在线视频 | 国产精品一区免费在线观看 | 三上悠亚在线免费 | 久久综合九色欧美综合狠狠 | 国产一区二区手机在线观看 | 亚洲人成影院在线 | 国产成人精品女人久久久 | 日韩欧美高清 | 美女黄频视频大全 | 国产成人一区三区 | 国产一区二区三区免费观看视频 | 射射色| 国产区精品视频 | 色婷婷久久久综合中文字幕 | 欧美精品亚洲精品 | 91在线视频免费观看 | 91久久丝袜国产露脸动漫 | 日本久久久久久科技有限公司 | 五月婷婷操 | 色婷婷激情综合 | 天天爱综合 | 97在线观看免费视频 | 中文字幕久久亚洲 | 娇妻呻吟一区二区三区 | 天天操夜夜逼 | 又黄又爽又色无遮挡免费 | 91人人在线 | 色av男人的天堂免费在线 | 久久爽久久爽久久av东京爽 | 久久99最新地址 | 中文字幕在线观看亚洲 | 精品视频在线免费 | 免费亚洲成人 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产精品 日韩精品 | 成人性生交大片免费看中文网站 | 国产一区二区在线免费观看 | 久久天天躁| 99一区二区三区 | 国产中文字幕在线播放 | 欧美成人a在线 | 91视频最新网址 | 五月婷婷av| 国产在线欧美在线 | 五月开心激情 | 97超碰资源站| 天天色天天操天天爽 | 欧美一区二区三区在线播放 | 欧美日韩在线免费观看视频 | av资源免费在线观看 | 久久综合九色欧美综合狠狠 | 天天看天天干 | 五月天久久狠狠 | 亚洲国产成人久久综合 | 韩国av免费在线观看 | 久久a v视频 | 夜夜操狠狠干 | 久久午夜国产 | 国产精品久久久久久久久久免费 | 婷五月天激情 | 亚洲久草网| 日本三级中文字幕在线观看 | 亚洲午夜小视频 | 成人一级片在线观看 | 国产69久久 | 免费a网址 | 亚洲精品91天天久久人人 | 欧美精品久久久久久久久久白贞 | 亚洲永久精品国产 | 色婷婷色 | 国产精品精品国产色婷婷 | 91视频黄色 | 欧美日韩另类视频 | 视频三区在线 | 欧美一级在线观看视频 | 国产男女爽爽爽免费视频 | av丝袜在线| 精品影院一区二区久久久 | 国产成人一区二区精品非洲 | 在线观看成人 | 日本中文乱码卡一卡二新区 | 最新精品视频在线 | 国产一级小视频 | 美女很黄免费网站 | 日韩免费一级a毛片在线播放一级 | 成年一级片 | 香蕉视频最新网址 | 成人国产精品一区 | 日操操 | 国产中文在线视频 | 色综合狠狠干 | 久久黄色影院 | 怡红院av久久久久久久 | 黄网站大全 | 亚洲精品国 | 国模视频一区二区三区 | 麻豆影视在线观看 | 久久精品成人热国产成 | 黄色99视频| 午夜国产福利在线 | 啪啪肉肉污av国网站 | 美女精品网站 | avsex| 亚洲成人av一区 | 911国产| 四虎在线永久免费观看 | 久久99精品久久久久久 | 久久久久久久国产精品影院 | 手机看片福利 | 久久人人爽爽人人爽人人片av | 一区二区视频电影在线观看 | 久久精品毛片 | 欧美激情综合五月 | 久久精品视频在线观看免费 | 天堂激情网 | 青草视频在线 | 日韩精品一区二区三区免费观看视频 | 国产精品系列在线播放 | 看全黄大色黄大片 | 99久精品视频 | 日韩欧美一区二区三区视频 | 中文字幕在线看视频 | 精品久久九九 | 欧美日韩在线观看不卡 | 国产黄免费看 | 亚洲国内精品 | 国产精品午夜久久 | 丁香视频五月 | 久久精品站| 91在线看免费 | 午夜美女wwww | 亚洲综合欧美精品电影 | 日本激情中文字幕 | 天天操网址 | 91亚洲精品久久久中文字幕 | 日韩在线无 | 亚洲 欧美 综合 在线 精品 | 欧美日韩一区三区 | 999成人免费视频 | 国产专区欧美专区 | 亚洲国产片 | 97超碰在线人人 | 韩国精品在线观看 | 国产精品免费视频网站 | 久久av观看| 丝袜美腿一区 | 日本久久精 | av中文资源在线 | 一级全黄毛片 | 日韩a在线观看 | 在线观看av黄色 | 国产在线观看国语版免费 | 国产一区二区免费在线观看 | 成片免费观看视频999 | 欧美在线视频精品 | 伊人射 | 久久久伦理 | 天天爽夜夜爽精品视频婷婷 | 久久歪歪 | 99久久精品无码一区二区毛片 | 成人av片免费观看app下载 | 亚洲成av人片在线观看 | 香蕉精品视频在线观看 | 久久成人午夜 | 激情文学综合丁香 | 中文字幕日本特黄aa毛片 | 人人讲下载 | 96久久久 | 国产99久久久久久免费看 | 久久久亚洲影院 | 在线日韩精品视频 | 日韩精品一区二区在线视频 | 九九欧美视频 | 在线国产中文字幕 | 免费看一级特黄a大片 | 在线观看欧美成人 | 国产在线中文字幕 | av一区二区在线观看中文字幕 | 外国av网 | 美女在线观看网站 | 国产精品黄 | 国产美女久久 | 国产高清在线观看 | 久久一区二区三区四区 | 成年人在线 | 黄色一区三区 | 成年人国产精品 | 免费黄a | 欧美另类xxxx | 国产精品视频久久久 | 东方av在线免费观看 | 国产成人一区二区精品非洲 | 成人免费影院 | 色偷偷网站视频 | 在线电影a| 成人avav | 日韩欧美一区二区三区免费观看 | 极品嫩模被强到高潮呻吟91 | 久久国产综合视频 | 亚洲精品在线免费播放 | 欧美精品网站 | 国产精品自产拍在线观看中文 | 久久综合狠狠 | 国产原创91 | 国产无套一区二区三区久久 | www.com黄| 五月天,com | 国产精品露脸在线 | 99电影456麻豆 | 欧美国产一区二区 | 国产一级在线观看视频 | 精品国产免费一区二区三区五区 | 国产欧美精品一区二区三区四区 | 久久伊人免费视频 | 免费看三级黄色片 | 国产xxxxx在线观看 | 99综合久久| 香蕉视频18 | 一区二区在线电影 | 日韩最新av在线 | 99精品久久99久久久久 | 国产成人三级三级三级97 | 在线免费中文字幕 | 免费视频成人 | 天天干天天干天天干 | 久草av在线播放 | 日韩高清免费在线观看 | 亚洲精品久久久久999中文字幕 | 午夜精品电影 | 99久久夜色精品国产亚洲96 | 亚洲精品www. | 国产精品av在线免费观看 | 久久视频国产精品免费视频在线 | 国产精品久久久久久久婷婷 | 麻豆91精品91久久久 | 日本视频高清 | 国产伦精品一区二区三区在线 | 麻豆一区二区 | 99re在线视频观看 | 丁香色婷| 久久99久久精品国产 | 精选久久 | 中文字幕在线高清 | 天天射天天爽 | 日本精品久久久久中文字幕5 | 2018亚洲男人天堂 | 在线超碰av | 成人一区不卡 | 国产精品mm| 免费看黄在线 | 亚洲天堂网站 | 欧美一二三区播放 | 91亚洲精品视频 | 亚洲91中文字幕无线码三区 | 亚洲更新最快 | 麻豆视频免费入口 | 亚洲精品1234区 | 成人在线一区二区三区 | 久久艹国产 | 欧美黄色高清 | 免费又黄又爽视频 | 在线观看的av | 91av蜜桃| 福利视频一区二区 | 久久久久久伊人 | 久草热久草视频 | 成人欧美一区二区三区在线观看 | 亚洲综合色av | 久久免费视频99 | 伊人婷婷激情 | 黄色免费网| 在线黄色国产 | 黄色福利网| 中文字幕欧美三区 | 日韩精品免费一区二区三区 | 亚州精品天堂中文字幕 | 日韩综合视频在线观看 | 国产成人在线观看免费 | 亚洲成人中文在线 | 亚洲国产欧美一区二区三区丁香婷 | 欧美精品免费视频 | 久久久久久久久影院 | 97超碰人人澡人人爱学生 | 日韩高清精品一区二区 | 国产99精品在线观看 | 日韩精品久久久久久久电影竹菊 | 日韩在线高清免费视频 | 国产福利专区 | 五月婷婷六月综合 | 在线观看麻豆av | 欧美精品久久久久久久 | 91香蕉视频在线 | 久久精品美女视频 | 久久精品成人欧美大片古装 | 日韩av电影免费观看 | av中文字幕在线播放 | 国产视频手机在线 | 天天躁日日躁狠狠躁 | av片一区二区| 久久情网 | 久久成人高清视频 | 精品美女久久 | 国产日韩欧美在线免费观看 | 日韩大片在线 | 日韩一级成人av | 一区二区三区电影 | 狠狠色狠狠色终合网 | 麻豆视频www | 国产视频亚洲 | av电影免费在线看 | 精品久久亚洲 | 一区二区三区国产欧美 | 欧美一级片在线 | 99精品乱码国产在线观看 | 韩国精品在线 | 超碰人人射 | 国产高清免费视频 | 亚洲国产精品成人av | 91视频在线| 91视频 - x99av| 在线免费av观看 | av中文电影 | 黄色av免费看 | 色中文字幕在线观看 | 激情五月婷婷综合网 | 男女免费视频观看 | 欧美精品亚洲二区 | av888av.com| 综合国产在线观看 | 日韩中文字幕国产 | 亚洲国产日韩一区 | 五月婷婷狠狠 | 天天综合成人网 | 国产91影视 | a黄色片在线观看 | 中文字幕国产精品一区二区 | 97久久精品午夜一区二区 | 在线看黄网站 | 午夜a区 | 不卡的一区二区三区 | 欧美a视频| 色99视频 | 玖玖在线视频观看 | 久草在线这里只有精品 | 天天天天干| 欧洲激情在线 | 91精品久久久久久久久久入口 | 国产69久久久 | 国产精品久久影院 | 亚洲欧美日本一区二区三区 | 午夜视频在线网站 | 免费在线看v | 欧美a在线免费观看 | 成年人在线观看网站 | 麻豆系列在线观看 | 久草爱 | av一区二区三区在线 | 五月天堂网 | 超薄丝袜一二三区 | 国产高清不卡 | 欧美作爱视频 | 国产精品日韩欧美一区二区 | 日韩视频免费看 | 午夜美女福利 | 久草视频在线资源 | 国产黄色免费电影 | 国内精品毛片 | av不卡免费看 | 国产午夜亚洲精品 | 国产91学生粉嫩喷水 | 色瓜 | 美女搞黄国产视频网站 | 久久综合九色综合久久久精品综合 | 国产在线观看一 | 综合精品久久久 | 亚洲天堂社区 | 欧美黄色免费 | 波多野结衣理论片 | 女人魂免费观看 | 成人在线视频论坛 | 一区电影 | 午夜精品久久久久久 | 免费在线一区二区三区 | 久久久久久综合网天天 | 国产91亚洲精品 | 最新av网址在线 | 黄色性av | 国内精品久久久久影院一蜜桃 |