久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jpanel麻将自动打牌,碰牌,杠牌

發(fā)布時(shí)間:2024/3/7 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jpanel麻将自动打牌,碰牌,杠牌 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?不多說(shuō),拷貝就能用

package com;import java.awt.event.ActionEvent;import javax.swing.*;import main.MahjongTileInitWrongTypeAndTypeIdException;public class MahJongGame extends JFrame {/*** */private static final long serialVersionUID = -37364652653193128L;MyPanel myp = null;public static void main(String[] args) throws InterruptedException, MahjongTileInitWrongTypeAndTypeIdException {// TODO Auto-generated method stubMahJongGame mhg = new MahJongGame();}public MahJongGame() throws InterruptedException, MahjongTileInitWrongTypeAndTypeIdException {myp = new MyPanel();// 啟動(dòng)了mypanel線(xiàn)程Thread myt = new Thread(myp);myt.start();// 先刪除舊的面板this.remove(myp);// 加入新面板this.add(myp);this.setSize(1000, 600);// 刷新JFrame面板this.setVisible(true);}public void actionPerformed(ActionEvent arg0) {}} package com;import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.*;import javax.swing.*;import com.jbutton.RotateImage; import com.time.TimerLabel;import main.InitPlayer; import main.MahjongTileInitWrongTypeAndTypeIdException; import main.Player; import main.ShuffleMahJong;/*** 1-9存萬(wàn) 21-29存條 31-39存筒 0,10,20,30,40存東南西北 41-43存中,發(fā),白* * @author LiHai**/ public class MyPanel extends JPanel implements Runnable {/*** */private static final long serialVersionUID = 1L;public static long timedate = 3;Image image = null;// 初始化按鈕ArrayList<JButton> bt = new ArrayList<JButton>();JButton b0, b1, b2, b3;// 定義存放麻將的集合Vector<Image> tupWeizhi = new Vector<Image>();// 初始化玩家InitPlayer initPlayer = null;// 四個(gè)玩家Player player = new Player();Player computer1 = new Player();Player computer2 = new Player();Player computer3 = new Player();// 麻將ShuffleMahJong shuffleMahJong = new ShuffleMahJong();int t = 1;TimerLabel tlaber = new TimerLabel(5);public MyPanel() throws InterruptedException, MahjongTileInitWrongTypeAndTypeIdException {// Scanner scanner = new Scanner(System.in);setLayout(null);// 必須為設(shè)置為null,你的setBouds();才可以有作用// 初始化按鈕this.jbutton();this.setOpaque(false);// 設(shè)置整副牌的開(kāi)始位置ShuffleMahJong.maJiangsIndex = 0;// 移動(dòng)起始位置前的牌到list末尾ShuffleMahJong.moveMahJongs();// 玩家initPlayer = new InitPlayer();// 第一次起牌initPlayer.haveFirstBoard();// 輸出牌局中的整副牌(剩余的牌)System.out.println("【此時(shí)牌局中的剩余的牌:】");ShuffleMahJong.printMahJongs();// 第二次起牌:跳莊initPlayer.haveJumpBoard();// 輸出此時(shí)玩家手中的牌initPlayer.printPlayer();player = InitPlayer.players.get(0);// 摸第一張牌player.gainMaJiang(0);// 設(shè)置為出牌狀態(tài)player.setRunzt(true);initPlayer.printPlayer(player);// 輸出牌局中的整副牌(剩余的牌)System.out.println("【此時(shí)牌局中的剩余的牌:】");ShuffleMahJong.printMahJongs();player = InitPlayer.players.get(0);computer1 = InitPlayer.players.get(1);computer2 = InitPlayer.players.get(2);computer3 = InitPlayer.players.get(3);System.out.println("【您先出牌:[待打出牌對(duì)應(yīng)的順序,例如:1表示打出第一張牌],[非數(shù)字輸入:退出游戲]】");image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/image/image1.jpg"));for (int i = 0; i <= 43; i++) {// System.out.println("/image/"+i+".jpg");tupWeizhi.add(Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/image/" + i + ".png")));}// tlaber.setBounds(220, 220, 220, 220);this.add(tlaber, BorderLayout.CENTER);tlaber.start();}public void paint(Graphics g) {super.paint(g);g.fillRect(0, 0, 400, 300);// 重繪子組件,不然會(huì)出現(xiàn)異常“有個(gè)按鈕需要鼠標(biāo)移動(dòng)到它上邊才顯示”super.paintChildren(g);// 固定背景圖片,允許這個(gè)JPanel可以在圖片上添加其他組件g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);// 畫(huà)出牌文字信息this.drawenzi(g);// 確保該函數(shù)只能被調(diào)用一次for (int i = 0; i < t; i++) {// deal(g);t--;// System.out.println("該集合牌的數(shù)量" + tupWeizhi.size());} // int i1=player.getPlayerMaJiangs().get(0).getType(); // int i2=player.getPlayerMaJiangs().get(0).getTypeId(); // System.out.println(i1+"-"+i2);// 畫(huà)玩家麻將this.drawmajiang(g);}private void drawmajiang(Graphics g) {// 畫(huà)西家的牌for (int i = 0; i < InitPlayer.players.get(2).getPlayerMaJiangs().size(); i++) {int p = ((InitPlayer.players.get(2).getPlayerMaJiangs().get(i).getType() * 10)+ InitPlayer.players.get(2).getPlayerMaJiangs().get(i).getTypeId());// JButton b= new JButton(); // // 實(shí)例化按鈕對(duì)象,并且設(shè)置按鈕上顯示圖片// ImageIcon ico = new ImageIcon(getClass().getResource("/image/"+p+".png"));// ico.setImage(ico.getImage().getScaledInstance(32, 70, Image.SCALE_DEFAULT));// Image image = ico.getImage(); b.setBounds(110 + 33 * u,40,34, 70);// b.setIcon(ico); this.add(b);if (i < 13) {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 180), 600 - 30 * i, 50, 31, 70, this);} else {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 180), 600 - 50 - 30 * i, 50, 31, 70, this);}}// 畫(huà)電腦東家for (int i = 0; i < InitPlayer.players.get(0).getPlayerMaJiangs().size(); i++) {int p = ((InitPlayer.players.get(0).getPlayerMaJiangs().get(i).getType() * 10)+ InitPlayer.players.get(0).getPlayerMaJiangs().get(i).getTypeId());if (i >= 13) {g.drawImage(tupWeizhi.get(p), 143 + 50 + 30 * i, 430, 29, 70, this);} else {g.drawImage(tupWeizhi.get(p), 143 + 30 * i, 430, 30, 70, this);}}// 畫(huà)電腦北家for (int i = 0; i < InitPlayer.players.get(1).getPlayerMaJiangs().size(); i++) {int p = ((InitPlayer.players.get(1).getPlayerMaJiangs().get(i).getType() * 10)+ InitPlayer.players.get(1).getPlayerMaJiangs().get(i).getTypeId());new RotateImage();if (i < 13) {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 270), 680, 480 - 30 * i, 70, 30, this);} else {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 270), 680, 480 - 50 - 30 * i, 70, 30, this);}}// 畫(huà)電腦南家for (int i = 0; i < InitPlayer.players.get(3).getPlayerMaJiangs().size(); i++) {int p = ((InitPlayer.players.get(3).getPlayerMaJiangs().get(i).getType() * 10)+ InitPlayer.players.get(3).getPlayerMaJiangs().get(i).getTypeId());new RotateImage();if (i < 13) {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 90), 50, 50 + 30 * i, 70, 30, this);} else {g.drawImage(RotateImage.Rotate(tupWeizhi.get(p), 90), 50, 50 + 50 + 30 * i, 70, 30, this);}}}private void drawenzi(Graphics g) {Font ft = new Font("宋體", Font.BOLD, 30);g.setFont(ft);g.setColor(Color.LIGHT_GRAY);if (InitPlayer.players.get(0).isRunzt()) {g.setColor(Color.green);g.drawString(InitPlayer.players.get(0).getPlayerMaJiangs().size() + "東", 300, 420);g.setColor(Color.LIGHT_GRAY);} else {g.drawString(InitPlayer.players.get(0).getPlayerMaJiangs().size() + "東", 300, 420);}if (InitPlayer.players.get(1).isRunzt()) {g.setColor(Color.green);g.drawString(InitPlayer.players.get(1).getPlayerMaJiangs().size() + "南", 560, 300);g.setColor(Color.LIGHT_GRAY);} else {g.drawString(InitPlayer.players.get(1).getPlayerMaJiangs().size() + "南", 560, 300);}if (InitPlayer.players.get(2).isRunzt()) {g.setColor(Color.green);g.drawString(InitPlayer.players.get(2).getPlayerMaJiangs().size() + "西", 300, 160);g.setColor(Color.LIGHT_GRAY);} else {g.drawString(InitPlayer.players.get(2).getPlayerMaJiangs().size() + "西", 300, 160);}if (InitPlayer.players.get(3).isRunzt()) {g.setColor(Color.green);g.drawString(InitPlayer.players.get(3).getPlayerMaJiangs().size() + "北", 120, 300);g.setColor(Color.LIGHT_GRAY);} else {g.drawString(InitPlayer.players.get(3).getPlayerMaJiangs().size() + "北", 120, 300);}g.setFont(new Font("宋體", Font.BOLD, 50));g.setColor(Color.red);if (player.isHul()) {g.drawString("胡", 360, 420);}if (computer1.isHul()) {g.drawString("胡", 630, 300);}if (computer2.isHul()) {g.drawString("胡", 360, 160);}if (computer3.isHul()) {g.drawString("胡", 180, 300);}// 出牌倒計(jì)時(shí)if (tlaber.getCount() > 0) {g.setColor(Color.BLUE);g.drawString(tlaber.getCount() + "", 380, 300);}g.setColor(Color.darkGray);g.drawString("剩:" + ShuffleMahJong.maJiangs.size(), 380, 250);}/*** 設(shè)置按鈕圖片縮放* * @param file* @param iconButton*/public void setIcon(String file, JButton iconButton) {ImageIcon icon = new ImageIcon(file);icon.getImage();Image temp = icon.getImage().getScaledInstance(iconButton.getWidth(), iconButton.getHeight(),Image.SCALE_DEFAULT);icon = new ImageIcon(temp);iconButton.setIcon(icon);}public void jbutton() {// 創(chuàng)建按鈕對(duì)象for (int i = 0; i < 14; i++) {b2 = new JButton("b2 " + i);b2.addMouseListener(new EventListeners(b2));// 把按鈕容器添加到JFrame容器上if (i < 13) {b2.setBounds(600 - 30 * i, 50, 31, 70);} else {b2.setBounds(600 - 50 - 30 * i, 50, 31, 70);}// 設(shè)置按鈕透明b2.setContentAreaFilled(false);add(b2);}for (int i = 0; i < 14; i++) {b0 = new JButton("b0 " + i);b0.addMouseListener(new EventListeners(b0));// 把按鈕容器添加到JFrame容器上if (i < 13) {b0.setBounds(143 + 30 * i, 430, 31, 70);} else {b0.setBounds(193 + 30 * i, 430, 31, 70);}// 設(shè)置按鈕透明b0.setContentAreaFilled(false);add(b0);}for (int i = 0; i < 14; i++) {b3 = new JButton("b3 " + i);b3.addMouseListener(new EventListeners(b3));// 把按鈕容器添加到JFrame容器上if (i < 13) {b3.setBounds(50, 50 + 30 * i, 70, 31);} else {b3.setBounds(50, 50 + 50 + 30 * i, 70, 31);}// 設(shè)置按鈕透明b3.setContentAreaFilled(false);add(b3);}for (int i = 0; i < 14; i++) {b1 = new JButton("b1 " + i);b1.addMouseListener(new EventListeners(b1));// 把按鈕容器添加到JFrame容器上if (i < 13) {b1.setBounds(680, 480 - 30 * i, 70, 31);} else {b1.setBounds(680, 480 - 50 - 30 * i, 70, 31);}// 設(shè)置按鈕透明b1.setContentAreaFilled(false);add(b1);}}public void run() {while (true) {try {this.repaint();Thread.sleep(100);synchronized (this) {// 檢測(cè)是否胡牌if (player != null) {player.huCards();computer1.huCards();computer2.huCards();computer3.huCards();}// 判斷玩家是否超時(shí) 超時(shí)自動(dòng)打牌if (tlaber.getCount() == 0 && tlaber.isStart()) {int numb = 0;if (initPlayer.zdchupai() > 1 && initPlayer.zdchupai() != 0) {numb = initPlayer.zdchupai();}// 判斷該哪一個(gè)玩家出牌if (InitPlayer.players.get(0).isRunzt()) {int jj;// 打牌InitPlayer.players.get(0).discardMaJiang(numb);// 把該牌刪掉InitPlayer.players.get(0).Remove(numb);// 排序InitPlayer.players.get(0).printMaJiangs();// 關(guān)閉上一個(gè)線(xiàn)程tlaber.stop();InitPlayer.players.get(0).setRunzt(false);// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(1).gainMaJiang(0);InitPlayer.players.get(1).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程 // tlaber=new TimerLabel(5); // tlaber.start();} else if (InitPlayer.players.get(1).isRunzt()) {InitPlayer.players.get(1).discardMaJiang(numb);// 排序InitPlayer.players.get(1).printMaJiangs();// 把該牌刪掉InitPlayer.players.get(1).Remove(numb);// 關(guān)閉上一個(gè)線(xiàn)程tlaber.stop();InitPlayer.players.get(1).setRunzt(false);// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(2).gainMaJiang(0);InitPlayer.players.get(2).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程 // tlaber=new TimerLabel(5); // tlaber.start();} else if (InitPlayer.players.get(2).isRunzt()) {InitPlayer.players.get(2).discardMaJiang(numb);// 排序InitPlayer.players.get(2).printMaJiangs();// 把該牌刪掉InitPlayer.players.get(2).Remove(numb);// 關(guān)閉上一個(gè)線(xiàn)程tlaber.stop();InitPlayer.players.get(2).setRunzt(false);// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(3).gainMaJiang(0);InitPlayer.players.get(3).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程 // tlaber=new TimerLabel(5); // tlaber.start();} else if (InitPlayer.players.get(3).isRunzt()) {InitPlayer.players.get(3).discardMaJiang(numb);// 排序InitPlayer.players.get(3).printMaJiangs();// 把該牌刪掉InitPlayer.players.get(3).Remove(numb);// 關(guān)閉上一個(gè)線(xiàn)程tlaber.stop();InitPlayer.players.get(3).setRunzt(false);// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(0).gainMaJiang(0);InitPlayer.players.get(0).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程 // tlaber =new TimerLabel(5); // tlaber.start();}// 沒(méi)牌了停止線(xiàn)程if (ShuffleMahJong.maJiangs.size() <= 0) {tlaber.stop();} else {// 啟動(dòng)新線(xiàn)程tlaber = new TimerLabel(0);tlaber.start();}}}} catch (InterruptedException e) {// TODO 自動(dòng)生成的 catch 塊e.printStackTrace();}}}class EventListeners extends MouseAdapter {// 獲取按鈕信息JButton b;TimerLabel label;public EventListeners(JButton b) {this.b = b;}public void mouseClicked(MouseEvent e) {String outStr = "";if (e.getClickCount() == 2) {// 獲取后兩位數(shù)int btnum = Integer.parseInt((b.getText().substring(b.getText().length() - 2, b.getText().length())).trim());// 拿到前兩位字符串String btstr = b.getText().substring(0, 2);int numb = 3;// 檢測(cè)是否胡牌if (player != null) {player.huCards();computer1.huCards();computer2.huCards();computer3.huCards();}// 滿(mǎn)足牌數(shù)為二倍,判斷是否是該玩家,判斷是否到該玩家出牌if (btstr.equals("b0") && InitPlayer.players.get(0).isRunzt()) {// 打牌InitPlayer.players.get(0).discardMaJiang(btnum);// 把該牌刪掉InitPlayer.players.get(0).Remove(btnum);// 排序InitPlayer.players.get(0).printMaJiangs();// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();tlaber.stop();InitPlayer.players.get(0).setRunzt(false);if (playerto == null) {// 下一家摸牌InitPlayer.players.get(1).gainMaJiang(0);InitPlayer.players.get(1).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程tlaber = new TimerLabel(numb);tlaber.start();} else if (btstr.equals("b1") && InitPlayer.players.get(1).isRunzt()) {// 打牌InitPlayer.players.get(1).discardMaJiang(btnum);// 把該牌刪掉InitPlayer.players.get(1).Remove(btnum);// 排序InitPlayer.players.get(1).printMaJiangs();// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();tlaber.stop();InitPlayer.players.get(1).setRunzt(false);if (playerto == null) {// 下一家摸牌InitPlayer.players.get(2).gainMaJiang(0);InitPlayer.players.get(2).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程tlaber = new TimerLabel(numb);tlaber.start();} else if (btstr.equals("b2") && InitPlayer.players.get(2).isRunzt()) {// 打牌InitPlayer.players.get(2).discardMaJiang(btnum);// 把該牌刪掉InitPlayer.players.get(2).Remove(btnum);// 排序InitPlayer.players.get(2).printMaJiangs();// 碰牌檢測(cè)tlaber.stop();InitPlayer.players.get(2).setRunzt(false);Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(3).gainMaJiang(0);InitPlayer.players.get(3).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程tlaber = new TimerLabel(numb);tlaber.start();} else if (btstr.equals("b3") && InitPlayer.players.get(3).isRunzt()) {// 打牌InitPlayer.players.get(3).discardMaJiang(btnum);// 把該牌刪掉InitPlayer.players.get(3).Remove(btnum);// 排序InitPlayer.players.get(3).printMaJiangs();tlaber.stop();InitPlayer.players.get(3).setRunzt(false);// 碰牌檢測(cè)Player playerto = InitPlayer.touchDetection();if (playerto == null) {// 下一家摸牌InitPlayer.players.get(0).gainMaJiang(0);InitPlayer.players.get(0).setRunzt(true);} else {playerto.setRunzt(true);} // //啟動(dòng)新線(xiàn)程tlaber = new TimerLabel(numb);tlaber.start();}outStr = outStr + "雙擊" + b.getText();}// System.out.print("label=="+label);}}} package com.jbutton;import java.awt.*; import java.awt.image.BufferedImage;/*** 圖片旋轉(zhuǎn)工具類(lèi)*/ public class RotateImage {/*** 對(duì)圖片進(jìn)行旋轉(zhuǎn)** @param src 被旋轉(zhuǎn)圖片* @param angel 旋轉(zhuǎn)角度* @return 旋轉(zhuǎn)后的圖片*/public static BufferedImage Rotate(Image src, int angel) {int src_width = src.getWidth(null);int src_height = src.getHeight(null);// 計(jì)算旋轉(zhuǎn)后圖片的尺寸Rectangle rect_des = CalcRotatedSize(new Rectangle(new Dimension(src_width, src_height)), angel);BufferedImage res = null;try {res = new BufferedImage(rect_des.width, rect_des.height,BufferedImage.TYPE_INT_RGB);Graphics2D g2 = res.createGraphics();// 進(jìn)行轉(zhuǎn)換g2.translate((rect_des.width - src_width) / 2,(rect_des.height - src_height) / 2);g2.rotate(Math.toRadians(angel), src_width / 2, src_height / 2);g2.drawImage(src, null, null);} catch (Exception e) {// TODO: handle exception}return res;}/*** 計(jì)算旋轉(zhuǎn)后的圖片** @param src 被旋轉(zhuǎn)的圖片* @param angel 旋轉(zhuǎn)角度* @return 旋轉(zhuǎn)后的圖片*/public static Rectangle CalcRotatedSize(Rectangle src, int angel) {// 如果旋轉(zhuǎn)的角度大于90度做相應(yīng)的轉(zhuǎn)換if (angel >= 90) {if (angel / 90 % 2 == 1) {int temp = src.height;src.height = src.width;src.width = temp;}angel = angel % 90;}double r = Math.sqrt(src.height * src.height + src.width * src.width) / 2;double len = 2 * Math.sin(Math.toRadians(angel) / 2) * r;double angel_alpha = (Math.PI - Math.toRadians(angel)) / 2;double angel_dalta_width = Math.atan((double) src.height / src.width);double angel_dalta_height = Math.atan((double) src.width / src.height);int len_dalta_width = (int) (len * Math.cos(Math.PI - angel_alpha- angel_dalta_width));int len_dalta_height = (int) (len * Math.cos(Math.PI - angel_alpha- angel_dalta_height));int des_width = src.width + len_dalta_width * 2;int des_height = src.height + len_dalta_height * 2;return new Rectangle(new Dimension(des_width, des_height));} } package com.time;import java.awt.Font; import javax.swing.JLabel; import javax.swing.JOptionPane; import java.lang.Thread.State;/*** 計(jì)時(shí)標(biāo)簽package text.run;* * @author Jeky*/ public class TimerLabel extends JLabel {private int maxTime;public Thread getThread() {return thread;}private int count;private static final int SECOND = 1000;private static final int FONT_SIZE = 36;private Thread thread;private boolean pause;private boolean start;/*** 新建一個(gè)計(jì)時(shí)標(biāo)簽* * @param maxTime 倒計(jì)時(shí)起始時(shí)間*/public TimerLabel(int maxTime) {this.setHorizontalAlignment(JLabel.CENTER);this.setFont(new Font("Times New Roman", Font.BOLD, FONT_SIZE));this.pause = false;setMaxTime(maxTime);}/*** 修改倒計(jì)時(shí)起始時(shí)間* * @param maxTime 新的起始時(shí)間*/public void setMaxTime(int maxTime) {if (this.start) {return;}this.maxTime = maxTime;this.count = maxTime;initText();this.thread = new Thread(new Runnable() {@Overridepublic void run() {while (count != 0) {try {if (!start) {count = 0;//initText();//System.out.println("count=11="+count+start);break;}if (!pause) {Thread.sleep(SECOND);count--;//System.out.println("pause=11="+count+pause);//initText();}} catch (InterruptedException ex) {pause = true;}}//done();}});this.start = false;}/*** 倒計(jì)時(shí)完成后調(diào)用此方法*/public void done() {JOptionPane.showMessageDialog(this, "結(jié)束!");}/*** 標(biāo)簽字符由此方法設(shè)置*/public void initText() {String min = String.valueOf(count / 60);String sec = String.valueOf(count % 60);while (min.length() < 2) {min = "0" + min;}while (sec.length() < 2) {sec = "0" + sec;}this.setText(sec);}/*** 暫停*/public void pause() {if (start) {thread.interrupt();}}/*** 檢測(cè)標(biāo)簽倒計(jì)時(shí)是否開(kāi)始* * @return 如果開(kāi)始返回true*/public boolean isStart() {return start;}/*** 得到倒計(jì)時(shí)起始時(shí)間* * @return 倒計(jì)時(shí)起始時(shí)間*/public int getMaxTime() {return maxTime;}/*** 檢測(cè)標(biāo)簽倒計(jì)時(shí)是否暫停* * @return 倒計(jì)時(shí)暫停返回true*/public boolean isPause() {return pause;}/*** 從暫停中恢復(fù)計(jì)時(shí)*/public void continueDo() {if (this.pause) {this.pause = false;}}/*** 取消計(jì)時(shí)*/public void stop() {if (start) {//thread.interrupt();this.count=-11;start = false;}}/*** 開(kāi)始計(jì)時(shí)*/public void start() {if (thread.getState().equals(State.NEW)) {start = true;thread.start();} else if (thread.getState().equals(State.TERMINATED)) {setMaxTime(maxTime);start = true;thread.start();}}public int getCount() {// TODO 自動(dòng)生成的方法存根return count;} }//演示程序 Test.java package main;import java.util.*; /*** * @author Administrator 初始化玩家:創(chuàng)建四個(gè)玩家(包括3個(gè)電腦)*/ public class InitPlayer {/*** 4個(gè)玩家的信息都存放在List中,下標(biāo)為0是人,其余的為電腦*/public static List<Player> players = new ArrayList<Player>();private static Player player = null;private static Player computer1 = null;private static Player computer2 = null;private static Player computer3 = null;public InitPlayer() {// 創(chuàng)建4個(gè)玩家createPlayer();}/*** 自動(dòng)打出其他玩家能碰,杠的牌* @return*/public int zdchupai() {if(player.isRunzt()) {List<MahjongTile> list=player.getPlayerMaJiangs();//遍歷自己的集合for (MahjongTile mahjongTile : list) {if(Player.frequency(computer1.getPlayerMaJiangs(), mahjongTile)>1) {//System.out.println(computer1+"="+list.indexOf(mahjongTile)+"="+Player.frequency(computer1.getPlayerMaJiangs(), mahjongTile));return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer2.getPlayerMaJiangs(), mahjongTile)>1) {//System.out.println(computer2+"="+list.indexOf(mahjongTile)+"="+Player.frequency(computer2.getPlayerMaJiangs(), mahjongTile));return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer3.getPlayerMaJiangs(), mahjongTile)>1) {//System.out.println(computer2+"="+list.indexOf(mahjongTile)+"="+Player.frequency(computer3.getPlayerMaJiangs(), mahjongTile));return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}}}if(computer1.isRunzt()) {List<MahjongTile> list=computer1.getPlayerMaJiangs();//遍歷自己的集合for (MahjongTile mahjongTile : list) {if(Player.frequency(player.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer2.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer3.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}}}if(computer2.isRunzt()) {List<MahjongTile> list=computer2.getPlayerMaJiangs();//遍歷自己的集合for (MahjongTile mahjongTile : list) {if(Player.frequency(player.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer1.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer3.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}}}if(computer3.isRunzt()) {List<MahjongTile> list=computer3.getPlayerMaJiangs();//遍歷自己的集合for (MahjongTile mahjongTile : list) {if(Player.frequency(player.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer2.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}if(Player.frequency(computer1.getPlayerMaJiangs(), mahjongTile)>1) {return list.indexOf(mahjongTile);//返回第一個(gè)出現(xiàn)元素 O 的位置;}}}return 0;}/*** 檢測(cè)是否有可以碰的牌* @return*/public static Player touchDetection() {//檢測(cè)是否有杠的牌 不做處理直接杠牌if(player.barCards()) {//摸牌player.gainMaJiang(0);return player;}else if(computer1.barCards()) {computer1.gainMaJiang(0);return computer1;}else if(computer2.barCards()) {computer2.gainMaJiang(0);return computer2;}else if(computer3.barCards()) {computer3.gainMaJiang(0);return computer3;}//檢測(cè)是否有碰的牌 不做處理直接碰牌if(player.touchCards()) {return player;}if(computer1.touchCards()) {return computer1;}if(computer2.touchCards()) {return computer2;}if(computer3.touchCards()) {return computer3;}return null;}/*** 創(chuàng)建4個(gè)玩家*/private void createPlayer() {player = new Player();computer1 = new Player();computer2 = new Player();computer3 = new Player();player.setName("玩家");computer1.setName("電腦1");computer2.setName("電腦2");computer3.setName("電腦3");players.add(player);players.add(computer1);players.add(computer2);players.add(computer3);}/*** 輸出四個(gè)玩家手中的牌*/public void printPlayer() {// 輸出當(dāng)前玩家手中的牌System.out.println("【當(dāng)前玩家手中的牌如下:】");System.out.print(player);player.printMaJiangs();System.out.print(computer1);computer1.printMaJiangs();System.out.print(computer2);computer2.printMaJiangs();System.out.print(computer3);computer3.printMaJiangs();}public void printPlayer(Player players) {// 輸出當(dāng)前玩家手中的牌//System.out.println("【當(dāng)前玩家手中的牌如下:】");System.out.println(players.getPlayerMaJiangs());}/*** 輸出四個(gè)玩家手中的牌*//*** 第一次起牌:輪流起牌,每次起4張,一共起3輪*/public void haveFirstBoard() {// 共3輪for (int i = 0; i < 3; i++) {// 玩家,每次起4張for (int j = 0; j < 4; j++) {player.gainMaJiang(ShuffleMahJong.maJiangsIndex);}// 電腦1,每次起4張for (int j = 0; j < 4; j++) {computer1.gainMaJiang(ShuffleMahJong.maJiangsIndex);}// 電腦2,每次起4張for (int j = 0; j < 4; j++) {computer2.gainMaJiang(ShuffleMahJong.maJiangsIndex);}// 電腦3,每次起4張for (int j = 0; j < 4; j++) {computer3.gainMaJiang(ShuffleMahJong.maJiangsIndex);}}}/*** 第二次起牌:跳莊(玩家拿第1和第5張,電腦1拿第2張,電腦2拿第3張,電腦3拿第4張)*/public void haveJumpBoard() {player.gainMaJiang(0);computer1.gainMaJiang(1);computer2.gainMaJiang(2);computer3.gainMaJiang(3);}/*** 翻癩子(癩子可以當(dāng)成是任何一張牌)*/public void haveWildBoard() {System.out.println("【癩子是:" + ShuffleMahJong.maJiangs.get(5) + "】");// 直接移除第6張牌ShuffleMahJong.maJiangs.remove(5);} } package main;import java.util.*;/*** * @author LiHai**/ public class MahjongStaticTool {static int nextPlayer = 0;/*** 復(fù)制牌的集合* * @param mahjongTiles* @param indexs* @return*/private static MahjongTile[] removeSomeMahjongTiles(MahjongTile[] mahjongTiles, int[] indexs) {/** indexs表示萬(wàn)筒條的大小1~9的數(shù)組; mahjongTiles.length原來(lái)長(zhǎng)度為14 indexs.length長(zhǎng)度為3*/int lenNew = mahjongTiles.length - indexs.length;// System.out.println("mahjongTiles.length=="+mahjongTiles.length+"// indexs.length=="+indexs.length);if (lenNew > 0) {MahjongTile[] mahjongTilesNew = new MahjongTile[lenNew];int index = 0;for (int i = 0; i < mahjongTiles.length; i++) {boolean isAppend = true;for (int j = 0; j < indexs.length; j++) {/** 如果i==indexs[j]該函數(shù)將不參與mahjongTilesNew的復(fù)制*/if (i == indexs[j]) {//System.out.println("indexs[" + i + "]==" + indexs[j] + "mahjongTiles[i]=" + mahjongTiles[i]);isAppend = false;break;}}if (isAppend) {/** 把mahjongTiles集合復(fù)制到mahjongTilesNew數(shù)組 實(shí)現(xiàn)刪除*/mahjongTilesNew[index] = mahjongTiles[i];//System.out.println("mahjongTilesNew[" + index + "]==" + mahjongTilesNew[index]);index++;}}return mahjongTilesNew;}return null;}/*** 比較一對(duì)將 從數(shù)組長(zhǎng)度為arrayLen的整形數(shù)組中任意抽取兩個(gè)元素, * 把所有可能的組合的索引列成一個(gè)二位數(shù)組返回出來(lái)* * @param arrayLen* @return*/private static int[][] siphonTwoIndexs(int arrayLen) {int len = (arrayLen * (arrayLen - 1)) / 2;if (len > 0) {int[][] indexs = new int[len][2];int index = 0;for (int i = 0; i < arrayLen; i++) {for (int j = (i + 1); j < arrayLen; j++) {indexs[index][0] = i;indexs[index][1] = j;index++;}}return indexs;} else {return null;}}/*** 比較三張連牌或者三張同樣的牌 從數(shù)組長(zhǎng)度為arrayLen的整形數(shù)組中任意抽取兩個(gè)元素, 把所有可能的組合的索引列成一個(gè)二位數(shù)組返回出來(lái)* * @param arrayLen* @return*/private static int[][] siphonThreeIndexs(int arrayLen) {int len = (arrayLen * (arrayLen - 1) * (arrayLen - 2)) / 6;// System.out.println("循環(huán)次數(shù)len====="+len+"="+arrayLen+"*"+(arrayLen-1)+"*"+(arrayLen-2)+"/6");if (len > 0) {int[][] indexs = new int[len][3];int index = 0;for (int i = 0; i < arrayLen; i++) {for (int j = (i + 1); j < arrayLen; j++) {for (int k = (j + 1); k < arrayLen; k++) {indexs[index][0] = i;indexs[index][1] = j;indexs[index][2] = k;// System.out.println("indexs["+index+"][0],indexs["+index+"][1],indexs["+index+"][2]="+indexs[index][0]+","+indexs[index][1]+","+indexs[index][2]);index++;}}}return indexs;} else {return null;}}/*** 傳進(jìn)玩家牌的二維集合,和三張牌 復(fù)制集合* * @param saveMahjongTileses* @param mahjongTiles* @return*/private static MahjongTile[][] appendSomeMahjongTiles(MahjongTile[][] saveMahjongTileses,MahjongTile[] mahjongTiles) {if (saveMahjongTileses == null) {MahjongTile[][] mahjongTilesesReturn = new MahjongTile[1][];mahjongTilesesReturn[0] = mahjongTiles;return mahjongTilesesReturn;} else {// 創(chuàng)建一個(gè)比原來(lái)集合更長(zhǎng)的集合MahjongTile[][] mahjongTilesesReturn = new MahjongTile[saveMahjongTileses.length + 1][];/** arraycopy(Object?src,int?srcPos,Object?dest, int?destPos,int?length)* src表示源數(shù)組,srcPos表示源數(shù)組要復(fù)制的起始位置, desc表示目標(biāo)數(shù)組,length表示要復(fù)制的長(zhǎng)度。*///System.arraycopy(saveMahjongTileses, 0, mahjongTilesesReturn, 0, saveMahjongTileses.length);mahjongTilesesReturn[saveMahjongTileses.length] = mahjongTiles;return mahjongTilesesReturn;}}public static MahjongTile[][] tryCombination(MahjongTile[] mahjongTiles, int twoNum, int threeNum) {// mahjongTiles表示玩家手中的所有牌的return MahjongStaticTool.tryCombination(mahjongTiles, twoNum, threeNum, null);}/*** 把數(shù)組牌轉(zhuǎn)為list牌集* * @param paiArr*/public static List<Integer> arrToList(int[][] paiArr) {List<Integer> paiList = new ArrayList<>();for (int i = 0; i < paiArr.length; i++) {for (int j = 0; j < paiArr[i].length; j++) {int paiNum = paiArr[i][j];// 根據(jù)每一張牌的數(shù)量逆轉(zhuǎn)if (paiNum <= 0) {continue;}for (int k = 0; k < paiArr[i][j]; k++) {paiList.add((i + 1) + j);}}}return paiList;}/*** 判斷是否胡牌的方法 mahjongTiles玩家所有的牌 twoNum表示一對(duì)將 threeNum表示3個(gè)連著的牌或者三張同樣的牌* * @param mahjongTiles* @param twoNum* @param threeNum* @param saveMahjongTileses* @return*/private static MahjongTile[][] tryCombination(MahjongTile[] mahjongTiles, int twoNum, int threeNum,MahjongTile[][] saveMahjongTileses) {if (mahjongTiles == null) {if (twoNum == 0 && threeNum == 0) {return saveMahjongTileses;} else {return null;}}// 第一次固定twoNum=1 threeNum=4if (mahjongTiles.length == ((twoNum * 2) + (threeNum * 3))) {if (threeNum > 0) {// 通過(guò)siphonThreeIndexs獲得十三張牌的所有三張順子或者刻子的組合int[][] indexs = siphonThreeIndexs(mahjongTiles.length);// System.out.println("indexs大小==" + indexs.length);for (int i = 0; i < indexs.length; i++) {for (int j = 0; j < indexs[i].length; j++) {if (i != 0) {// System.out.print(" ");}// System.out.print(indexs[i][j]);}}// 遍歷indexs數(shù)組for (int[] index : indexs) {/** 如果mahjongTiles[index[0]],mahjongTiles[index[1]],* mahjongTiles[index[2]]相等返回true 三張牌相同* 如果mahjongTiles[index[0]],mahjongTiles[index[1]], mahjongTiles[index[2]]是順子* 返回true 三張牌為 1,2,3或者5,6,7* */// 當(dāng)出現(xiàn)三張同樣或者順子時(shí)if (mahjongTiles[index[0]].isCanThree(mahjongTiles[index[1]], mahjongTiles[index[2]])) { // System.out.println("mahjongTiles[" + index[0] + "]==" + mahjongTiles[index[0]] // + " mahjongTiles[" + index[1] + "]==" + mahjongTiles[index[1]] + " mahjongTiles[" // + index[2] + "]==" + mahjongTiles[index[2]] + " mahjongTiles.length==" // + mahjongTiles.length);// 傳進(jìn)一個(gè)牌的集合,三張同樣的麻將// 利用該函數(shù)appendSomeMahjongTiles把三張牌重新復(fù)制到二維集合saveMahjongTilesesCache中MahjongTile[][] saveMahjongTilesesCache = appendSomeMahjongTiles(saveMahjongTileses,new MahjongTile[] { mahjongTiles[index[0]], mahjongTiles[index[1]],mahjongTiles[index[2]] });// 使用removeSomeMahjongTiles獲得新的MahjongTile[]MahjongTile[][] mahjongTilesesReturn = MahjongStaticTool.tryCombination(removeSomeMahjongTiles(mahjongTiles, new int[] { index[0], index[1], index[2] }),twoNum, threeNum - 1, saveMahjongTilesesCache);if (mahjongTilesesReturn != null) {return mahjongTilesesReturn;}}}} else if (twoNum > 0) {// 通過(guò)該數(shù)據(jù)獲得所有可能是一對(duì) 將 的組合int[][] indexs = siphonTwoIndexs(mahjongTiles.length);if (indexs == null) {return null;}for (int[] index : indexs) {if (mahjongTiles[index[0]].isCanTwo(mahjongTiles[index[1]])) {MahjongTile[][] saveMahjongTilesesCache = appendSomeMahjongTiles(saveMahjongTileses,new MahjongTile[] { mahjongTiles[index[0]], mahjongTiles[index[1]] });MahjongTile[][] mahjongTilesesReturn = MahjongStaticTool.tryCombination(removeSomeMahjongTiles(mahjongTiles, new int[] { index[0], index[1] }), twoNum - 1,threeNum, saveMahjongTilesesCache);if (mahjongTilesesReturn != null) {return mahjongTilesesReturn;}}}} else {return saveMahjongTileses;}}return null;}/*** 測(cè)試* * @param args* @throws MahjongTileInitWrongTypeAndTypeIdException* @throws MahjongTileInitWrongNameException* @throws InterruptedException*/public static void main(String[] args) throws InterruptedException, MahjongTileInitWrongTypeAndTypeIdException {MahjongTile[] mahjongTiles = new MahjongTile[] {new MahjongTile(1, 1), new MahjongTile(1, 1),};//System.out.println("檢查所有下列牌:");for (int i = 0; i < mahjongTiles.length; i++) {if (i != 0) {System.out.print(",");}System.out.print(mahjongTiles[i]); }System.out.println("");MahjongTile[][] mahjongTileses = tryCombination(mahjongTiles, 1, 0);if (mahjongTileses != null) {System.out.println("檢查通過(guò)!");System.out.println("組合結(jié)果如下:");int twoIndex = 1;int threeIndex = 1;for (MahjongTile[] mahjongTilesRow : mahjongTileses) {if (mahjongTilesRow.length == 2) {System.out.print("第" + twoIndex + "對(duì)組合:");for (int j = 0; j < mahjongTilesRow.length; j++) {if (j != 0) {System.out.print(",");}//System.out.print(mahjongTilesRow[j]);}System.out.println("");twoIndex++;} else if (mahjongTilesRow.length == 3) {System.out.print("第" + threeIndex + "趟組合:");for (int j = 0; j < mahjongTilesRow.length; j++) {if (j != 0) {System.out.print(",");}//System.out.print(mahjongTilesRow[j]);}System.out.println("");threeIndex++;}}} else {System.out.println("檢查未通過(guò)!");}} } package main;import java.util.*; import java.util.Comparator;/*** 單張麻將牌* @author LiHai**/public class MahjongTile implements Comparable<MahjongTile> {//萬(wàn)public static int MAHJONG_TILE_TYPE_TEN_THOUSAND = 1;//筒public static int MAHJONG_TILE_TYPE_PIE = 3;//條public static int MAHJONG_TILE_TYPE_STRIP = 2;public static int MAHJONG_TILE_TYPE_WIND = 4;public static int MAHJONG_TILE_TYPE_MESS = 5;public static int MAHJONG_TILE_TYPE_FLOWER = 6;/*** 標(biāo)準(zhǔn)麻將的各種牌的名稱(chēng),該名稱(chēng)為一個(gè)三維數(shù)組,第一維為各套獨(dú)立的名稱(chēng)* 第二維為每套名稱(chēng)中的不同類(lèi)別,例如萬(wàn)和桶屬于不同類(lèi)型的牌* 第三維維具體的名稱(chēng)* String[1][1][1] 表示一萬(wàn)* String[2][1][1] 表示一萬(wàn)* String[2][2][2]表示二餅*/public final static String[][][] STANDARD_MAHJONG_NAMES = {new String[][]{{"一萬(wàn)","二萬(wàn)","三萬(wàn)","四萬(wàn)","五萬(wàn)","六萬(wàn)","七萬(wàn)","八萬(wàn)","九萬(wàn)"},{"一條","二條","三條","四條","五條","六條","七條","八條","九條"},{"一桶","二桶","三桶","四桶","五桶","六桶","七桶","八桶","九桶"},{"東風(fēng)","南風(fēng)","西風(fēng)","北風(fēng)"},{"紅中","發(fā)財(cái)","白板"},{"春","夏","秋","冬","梅","蘭","竹","菊"}},new String[][]{{"一萬(wàn)","二萬(wàn)","三萬(wàn)","四萬(wàn)","五萬(wàn)","六萬(wàn)","七萬(wàn)","八萬(wàn)","九萬(wàn)"},{"一條","二條","三條","四條","五條","六條","七條","八條","九條"},{"一餅","二餅","三餅","四餅","五餅","六餅","七餅","八餅","九餅"},{"東風(fēng)","南風(fēng)","西風(fēng)","北風(fēng)"},{"紅中","發(fā)財(cái)","白板"},{"春","夏","秋","冬","梅","蘭","竹","菊"}}};//表示麻將種類(lèi) 共兩種private final int type;//表示麻將ID號(hào) 萬(wàn)筒條的一萬(wàn)還是二萬(wàn)private final int typeId;private final int uniqueId;public MahjongTile(int type, int typeId) throws MahjongTileInitWrongTypeAndTypeIdException{this.uniqueId = computeUniqueId(type, typeId);this.type = type;this.typeId = typeId;}public MahjongTile(String name) throws MahjongTileInitWrongTypeAndTypeIdException, MahjongTileInitWrongNameException{for (String[][] standardMahjongName : STANDARD_MAHJONG_NAMES){for (int j = 0; j < standardMahjongName.length; j++){for (int k = 0; k < standardMahjongName[j].length; k++){if (standardMahjongName[j][k].equals(name)){this.type = j + 1;this.typeId = k + 1;this.uniqueId = computeUniqueId(type, typeId);return;}}}}throw new MahjongTileInitWrongNameException(name);}/*** 排序*/public int compareTo(MahjongTile o) {// TODO Auto-generated method stubreturn this.typeId-o.typeId;}private int computeUniqueId(int type, int typeId) throws MahjongTileInitWrongTypeAndTypeIdException{initCheck(type, typeId);if (type == MAHJONG_TILE_TYPE_TEN_THOUSAND)//MAHJONG_TILE_TYPE_TEN_THOUSAND=1{return typeId;//萬(wàn) 1 2 3 4 5 6 7 8 9}else if (type == MAHJONG_TILE_TYPE_PIE)//MAHJONG_TILE_TYPE_PIE=3{return typeId + 18;//筒 10 11 12 13 14 15 16 17 18}else if (type == MAHJONG_TILE_TYPE_STRIP)//2{return typeId + 9;//條 19 20 21 22 23 24 25 26 27 }else if (type == MAHJONG_TILE_TYPE_WIND)//4{return typeId + 27;//東南西北 28 29 30 31}else if (type == MAHJONG_TILE_TYPE_MESS)//5{return typeId + 31;//紅中發(fā)財(cái)白板 32 33 34 }else{return typeId + 34;//35 36 37 38 39 40 41 42}}public int getType(){return type;}public int getTypeId(){return typeId;}public int getUniqueId(){return typeId;}private void initCheck(int type, int typeId) throws MahjongTileInitWrongTypeAndTypeIdException{if (STANDARD_MAHJONG_NAMES[0].length < type || type < 1){throw new MahjongTileInitWrongTypeAndTypeIdException(type, typeId, true);}else if (STANDARD_MAHJONG_NAMES[0][type - 1].length < typeId || typeId < 1){throw new MahjongTileInitWrongTypeAndTypeIdException(type, typeId, false);}}//表示百搭public boolean isCanAny(){if (type == 1 && typeId == 9){return true;}return false;}public boolean isCanThree(MahjongTile mahjongTileOne, MahjongTile mahjongTileTwo){//判斷第一個(gè)和第二個(gè)是否是 萬(wàn)筒條 的同一種類(lèi)型if (type == mahjongTileOne.type && type == mahjongTileTwo.type){//判斷是否是刻子if (typeId == mahjongTileOne.typeId && typeId == mahjongTileTwo.typeId){return true;}//isIdLink判斷是否是順子 如果是返回true并且type不等于 4,5,6 因?yàn)?,5,6不表示萬(wàn)筒條else if (isIdLink(typeId, mahjongTileOne.typeId, mahjongTileTwo.typeId) && type != MAHJONG_TILE_TYPE_WIND && type != MAHJONG_TILE_TYPE_MESS && type != MAHJONG_TILE_TYPE_FLOWER){return true;}}//isCanAny()表示百搭 // if (isCanAny()) // { // if (mahjongTileOne.isCanAny() || mahjongTileTwo.isCanAny()) // { // return true; // } // else if (Math.abs(mahjongTileOne.typeId - mahjongTileTwo.typeId) <= 2 && mahjongTileOne.type == mahjongTileTwo.type) // { // return true; // } // } // else if (mahjongTileOne.isCanAny()) // { // if (isCanAny() || mahjongTileTwo.isCanAny()) // { // return true; // } // else if (Math.abs(typeId - mahjongTileTwo.typeId) <= 2 && type == mahjongTileTwo.type) // { // return true; // } // } // else if (mahjongTileTwo.isCanAny()) // { // if (mahjongTileOne.isCanAny() || isCanAny()) // { // return true; // } // else if ((Math.abs(typeId - mahjongTileOne.typeId) <= 2) && type == mahjongTileOne.type) // { // return true; // } // }return false;}public boolean isCanTwo(MahjongTile mahjongTile){if (isCanAny() || mahjongTile.isCanAny()){return true;}else{return uniqueId == mahjongTile.uniqueId;}}//判斷是否是順子 如果是返回trueprivate boolean isIdLink(int id1, int id2, int id3){int[] ids ={id1, id2, id3};Arrays.sort(ids);if (ids[2] - ids[1] != 1){return false;}else if (ids[1] - ids[0] != 1){return false;}return true;}@Overridepublic String toString(){String name = STANDARD_MAHJONG_NAMES[0][type - 1][typeId - 1];if (isCanAny()){name = name + "(百搭)";}return name;}} package main;/*** * @author LiHai**/ @SuppressWarnings("serial") public class MahjongTileInitWrongNameException extends Exception {private final String wrongName;public MahjongTileInitWrongNameException(String wrongName){this.wrongName = wrongName;}public String getWrongName(){return wrongName;}public String[][][] standardMahjongNames(){return MahjongTile.STANDARD_MAHJONG_NAMES;} } package main; /*** 麻將參數(shù)* @author LiHai**/ @SuppressWarnings("serial") public class MahjongTileInitWrongTypeAndTypeIdException extends Exception {private final int type;private final int typeId;private final boolean isTypeWrong;public MahjongTileInitWrongTypeAndTypeIdException(int type,int typeId,boolean isTypeWrong){this.type = type;this.typeId = typeId;this.isTypeWrong = isTypeWrong;}public int type(){return type;}public int typeId(){return typeId;}public boolean isTypeWrong(){return isTypeWrong;} } package main;import java.util.*; /*** 玩家信息和牌 判斷碰,杠,胡 及摸牌,出牌* @author LiHai**/ public class Player {/*** 玩家姓名*/private String name;/*** 每個(gè)玩家的牌都放在playerMaJiangs中*/private List<MahjongTile> playerMaJiangs = new ArrayList<MahjongTile>();/*** 用來(lái)指示“每個(gè)玩家的牌”在playerMaJiangs中的下標(biāo)*/private int playerMaJiangsIndex = 0;/*** 是否到該玩家出牌 運(yùn)行狀態(tài)*/private boolean runzt = false;//玩家沒(méi)胡private boolean hul=false;public boolean isHul() {return hul;}public void setHul(boolean hul) {this.hul = hul;}public boolean isRunzt() {return runzt;}public void setRunzt(boolean runzt) {this.runzt = runzt;}public int getPlayerMaJiangsIndex() {return playerMaJiangsIndex;}public void setPlayerMaJiangsIndex(int playerMaJiangsIndex) {this.playerMaJiangsIndex = playerMaJiangsIndex;}public Player() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<MahjongTile> getPlayerMaJiangs() {return playerMaJiangs;}public void setPlayerMaJiangs(List<MahjongTile> playerMaJiangs) {this.playerMaJiangs = playerMaJiangs;}@Overridepublic String toString() {return "[" + name + "]";}/*** 摸牌:從ShuffleMaJiang中的maJiangs中取一粒麻將,放入到自己的playerMaJiangs中* @param index* @return*/public boolean gainMaJiang(int index) {// System.out.println("剩余 "+ShuffleMahJong.maJiangs.size()+" 張牌");if (ShuffleMahJong.maJiangs.size() != 0) {if (ShuffleMahJong.maJiangs.get(index) != null) {playerMaJiangs.add(playerMaJiangsIndex, ShuffleMahJong.maJiangs.get(index));playerMaJiangsIndex++;// 原來(lái)的ShuffleMaJiang的maJiangs中的牌減少這一張//System.out.println(this.getName() + "摸到: " +ShuffleMahJong.maJiangs.get(index));ShuffleMahJong.maJiangs.remove(index);}} else {System.out.println("沒(méi)牌了");return true;}return false;}/*** 打牌:從自己的playerMaJiangs中取一張牌,放入到ShuffleMaJiang中的river中* @param index* @return*/public MahjongTile discardMaJiang(int index) {// System.out.println(playerMaJiangs + " 數(shù)入的數(shù)" + index);if ((index > playerMaJiangs.size()) || (index < 0)) {System.out.println(index + "輸入的牌不存在" + playerMaJiangs.size());return null;}// 從自己的playerMaJiangs中取一粒牌,放入到ShuffleMaJiang中的river中ShuffleMahJong.river.add(ShuffleMahJong.riverIndex, playerMaJiangs.get(index));ShuffleMahJong.riverIndex++;// 自己的playerMaJiangs中減少這一粒牌//System.out.println(this.getName() + "打出:" + playerMaJiangs.get(index));// playerMaJiangs.remove(index);// 出牌后下標(biāo)減少playerMaJiangsIndex--;return playerMaJiangs.get(index);}/*** 該玩家擁有的牌進(jìn)行排序*/public void printMaJiangs() {// 第一次排序牌的順序// Collections.sort(playerMaJiangs);// 第一次排序牌的順序for (int i = 0; i < playerMaJiangs.size(); i++) {for (int j = 0; j < playerMaJiangs.size() - 1 - i; j++) {if (playerMaJiangs.get(j).getType() > playerMaJiangs.get(j + 1).getType()) {MahjongTile temp = playerMaJiangs.get(j);playerMaJiangs.set(j, playerMaJiangs.get(j + 1));playerMaJiangs.set(j + 1, temp);}}}// 第二次排序牌數(shù)值小到大,例如:從1萬(wàn)到9萬(wàn)排序for (int i = 0; i < playerMaJiangs.size(); i++) {for (int j = 0; j < playerMaJiangs.size() - 1 - i; j++) {if (playerMaJiangs.get(j).getType() == playerMaJiangs.get(j + 1).getType()) {MahjongTile temp = playerMaJiangs.get(j);if (playerMaJiangs.get(j).getTypeId() > playerMaJiangs.get(j + 1).getTypeId()) {playerMaJiangs.set(j, playerMaJiangs.get(j + 1));playerMaJiangs.set(j + 1, temp);}}}}// 輸出玩家擁有的牌for (MahjongTile maJiang : playerMaJiangs) {int type = maJiang.getType();// System.out.print(maJiang + ",");}// System.out.println("共" + playerMaJiangs.size() + "張");}/*** 碰牌:河里剛打出的牌,在玩家手中有兩張同樣的牌,就可以碰牌* @return*/public boolean touchCards() {// 獲取河里剛打出的牌MahjongTile riverLastJiang = ShuffleMahJong.river.get(ShuffleMahJong.riverIndex - 1);// 遍歷自己的所有的牌,是否包含上面的牌,并且有兩張int frequency = frequency(playerMaJiangs, riverLastJiang);if (frequency >= 2&&!runzt) {Iterator<MahjongTile> it = playerMaJiangs.iterator();while (it.hasNext()) {MahjongTile mj = it.next();if ((mj.getType() == riverLastJiang.getType()) && (mj.getTypeId() == riverLastJiang.getTypeId())) {it.remove();System.out.println(this.name + "【碰牌成功】【刪牌】"+mj);playerMaJiangsIndex--;}}return true;} else {// System.out.println("河里的牌=" + riverLastJiang+" "+this.name + "該牌數(shù)量=" +// frequency+"【碰牌失敗】");return false;}}/*** 取得玩家相同牌的數(shù)量* @param c* @param o* @return*/public static int frequency(List<MahjongTile> c, MahjongTile o) {int result = 0;if (o == null) {for (MahjongTile e : c)if (e == null)result++;} else {for (MahjongTile e : c)if ((o.getType() == e.getType()) && (o.getTypeId() == e.getTypeId()))result++;}return result;}/*** 杠牌:河里剛打出的牌,在玩家手中有3張同樣的牌,就可以杠牌* @return*/public boolean barCards() {// 獲取河里剛打出的牌MahjongTile riverLastJiang = ShuffleMahJong.river.get(ShuffleMahJong.riverIndex - 1);// 遍歷自己的所有的牌,是否包含上面的牌,并且有三張int frequency = frequency(playerMaJiangs, riverLastJiang);if (frequency >= 3&&!runzt) {Iterator<MahjongTile> it = playerMaJiangs.iterator();while (it.hasNext()) {MahjongTile mj = it.next();if ((mj.getType() == riverLastJiang.getType()) && (mj.getTypeId() == riverLastJiang.getTypeId())) {System.out.println(name + "【杠牌成功】【刪除】"+mj);it.remove();playerMaJiangsIndex--;}}return true;} else {// System.out.println("河里的牌=" + riverLastJiang+" "+this.name + "該牌數(shù)量=" +// frequency+"【碰牌失敗】");return false;}}/*** 胡牌:滿(mǎn)足胡牌的規(guī)則* @return*/public boolean huCards() {int mjnumber = 0;MahjongTile[] mahjong = playerMaJiangs.toArray(new MahjongTile[1]);if (mahjong.length == 14) {mjnumber = 4;} else if (mahjong.length == 11) {mjnumber = 3;} else if (mahjong.length == 8) {mjnumber = 2;} else if (mahjong.length == 5) {mjnumber = 1;} else if (mahjong.length == 3) {mjnumber = 0;} else {}// System.out.println("【留局】="+mjnumber);MahjongTile[][] mahjongTileses = MahjongStaticTool.tryCombination(mahjong, 1, mjnumber);if (mahjongTileses != null) {System.out.println(this.getName() + "胡了!");hul=true;int twoIndex = 1;int threeIndex = 1;for (MahjongTile[] mahjongTilesRow : mahjongTileses) { // if (mahjongTilesRow.length == 2) { // System.out.print("第" + twoIndex + "對(duì)組合:"); // for (int j = 0; j < mahjongTilesRow.length; j++) { // // if (j != 0) { // System.out.print(","); // } // System.out.print(mahjongTilesRow[j]); // } // System.out.println(""); // twoIndex++; // } else if (mahjongTilesRow.length == 3) { // System.out.print("第" + threeIndex + "趟組合:"); // for (int j = 0; j < mahjongTilesRow.length; j++) { // // if (j != 0) { // System.out.print(","); // } // System.out.print(mahjongTilesRow[j]); // } // System.out.println(""); // threeIndex++; // }}return true;} else {// System.out.println("\n沒(méi)有胡!");return false;}}/*** 刪除該牌*/public void Remove(int integer) {playerMaJiangs.remove(integer);} } package main; import java.util.*;/*** 創(chuàng)建麻將* @author LiHai**/ public class ShuffleMahJong {/*** 牌局中所有的牌:使用List放所有的牌*/public static List<MahjongTile> maJiangs=new ArrayList<MahjongTile>();/*** 用來(lái)指示“牌局中所有的牌”的當(dāng)前下標(biāo)*/public static int maJiangsIndex=0;/*** 河:用來(lái)存放玩家打出的牌*/public static List<MahjongTile> river=new ArrayList<MahjongTile>();/*** 用來(lái)指示“河”的當(dāng)前下標(biāo)*/public static int riverIndex=0;public static List<MahjongTile> getMaJiangs() {return maJiangs;}public ShuffleMahJong() throws InterruptedException, MahjongTileInitWrongTypeAndTypeIdException {//創(chuàng)建一副麻將createMahJongs();//輸出此時(shí)的所有的牌System.out.println("【初始化所有的牌:】");printMahJongs();//把初始牌打亂chaosMahJongs();//輸出此時(shí)的所有的牌//System.out.println("【洗牌后所有的牌:】");printMahJongs();// System.out.println("【按照東南西北四個(gè)方向輸出的牌(牌局里的牌):】");//printMaJiangs(1);//下標(biāo)恢復(fù)riverIndex=0;maJiangsIndex=135;}/** 創(chuàng)建一副麻將*/private void createMahJongs() throws MahjongTileInitWrongTypeAndTypeIdException {MahjongTile mj=null;//i代表萬(wàn)筒條 j代表1~9 k代表有幾張同樣的牌for(int i=1;i<=3;i++) {if(i<=3) {for(int j=1;j<=4;j++) {for(int k=1;k<=30;k++) {mj=new MahjongTile(i,j);maJiangs.add(maJiangsIndex,mj);maJiangsIndex++;}}}else if(i==4) {//東南西北for(int j=1;j<=4;j++) {for(int k=1;k<=4;k++) {mj=new MahjongTile(i,j);maJiangs.add(maJiangsIndex,mj);maJiangsIndex++;}}}else if(i==5) {//紅中發(fā)財(cái)白板for(int j=1;j<=3;j++) {for(int k=1;k<=4;k++) {mj=new MahjongTile(i,j);maJiangs.add(maJiangsIndex,mj);maJiangsIndex++;}}}}}/*** 整副麻將*/public static void printMahJongs() {for (Iterator iterator = maJiangs.iterator(); iterator.hasNext();) {MahjongTile mahjongTile = (MahjongTile) iterator.next();//System.out.print(mahjongTile+"="+mahjongTile.getType()+"-"+mahjongTile.getTypeId()+"-"+mahjongTile.getUniqueId()+" ");}System.out.println("剩:"+maJiangs.size()+"");}/*** 把初始牌打亂*/private void chaosMahJongs() {Collections.shuffle(maJiangs);}/*** 由于第一次起牌很有可能是在整副牌的中間位置開(kāi)始起牌的,然后再向后起牌。此時(shí)需要把起始位置前的牌,重新放到maJiangs中的最后,來(lái)保證整副牌的完整性* @throws InterruptedException */public static void moveMahJongs() throws InterruptedException{//把開(kāi)始位置前的牌復(fù)制到list的末尾for (int i = 0; i < maJiangsIndex; i++) {maJiangs.add(maJiangs.size(),maJiangs.get(i));}//復(fù)制后,把開(kāi)始位置前的牌刪除for (int i = 0; i < maJiangsIndex; i++) {maJiangs.remove(i);}//輸出移動(dòng)位置后的整副牌System.out.println("【移動(dòng)位置后的整副牌:】");printMahJongs();//移動(dòng)過(guò)后,起始位置變?yōu)榱说谝粡埮?#xff0c;需要把下標(biāo)復(fù)位maJiangsIndex=0;} }

總結(jié)

以上是生活随笔為你收集整理的jpanel麻将自动打牌,碰牌,杠牌的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产一区二区不卡老阿姨 | 国产成人无码一二三区视频 | 欧美人妻一区二区三区 | 麻豆国产97在线 | 欧洲 | 国产精品美女久久久 | 久久综合激激的五月天 | 中文字幕无码乱人伦 | www一区二区www免费 | 偷窥日本少妇撒尿chinese | 国产亚洲人成在线播放 | 精品无码一区二区三区爱欲 | 成人试看120秒体验区 | 激情国产av做激情国产爱 | 天天摸天天透天天添 | 人妻插b视频一区二区三区 | 成人精品一区二区三区中文字幕 | 熟女少妇人妻中文字幕 | 99精品无人区乱码1区2区3区 | ass日本丰满熟妇pics | 波多野结衣av一区二区全免费观看 | 亚洲 a v无 码免 费 成 人 a v | 国产超级va在线观看视频 | 国产成人精品视频ⅴa片软件竹菊 | 国产熟妇另类久久久久 | 极品嫩模高潮叫床 | 人妻少妇被猛烈进入中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲经典千人经典日产 | 国产口爆吞精在线视频 | 小泽玛莉亚一区二区视频在线 | 性生交大片免费看女人按摩摩 | 两性色午夜免费视频 | 蜜桃av抽搐高潮一区二区 | 国产精品免费大片 | 国内综合精品午夜久久资源 | 性啪啪chinese东北女人 | 久久久久99精品成人片 | 亚洲gv猛男gv无码男同 | 日本熟妇人妻xxxxx人hd | 国产乱人无码伦av在线a | 午夜不卡av免费 一本久久a久久精品vr综合 | 欧美人与牲动交xxxx | 国产在热线精品视频 | 一本色道久久综合狠狠躁 | 国产精品久久久久久久影院 | 亚洲色在线无码国产精品不卡 | 正在播放老肥熟妇露脸 | 亚洲精品国产品国语在线观看 | 人妻中文无码久热丝袜 | 久久99热只有频精品8 | 中文字幕人成乱码熟女app | 亚洲国产精品久久久天堂 | 亚洲人亚洲人成电影网站色 | 3d动漫精品啪啪一区二区中 | 夜先锋av资源网站 | 国产成人无码一二三区视频 | 欧美黑人巨大xxxxx | 国产精品鲁鲁鲁 | 老头边吃奶边弄进去呻吟 | 国产精品内射视频免费 | 在线播放免费人成毛片乱码 | 色一情一乱一伦 | 亚洲精品综合一区二区三区在线 | 日韩在线不卡免费视频一区 | 日日躁夜夜躁狠狠躁 | 欧美三级不卡在线观看 | 日日鲁鲁鲁夜夜爽爽狠狠 | 一个人免费观看的www视频 | 在线播放无码字幕亚洲 | 中文字幕亚洲情99在线 | 十八禁视频网站在线观看 | 国产农村乱对白刺激视频 | 欧美丰满少妇xxxx性 | 久久久久av无码免费网 | аⅴ资源天堂资源库在线 | 无码国产色欲xxxxx视频 | 亚洲毛片av日韩av无码 | 麻豆国产97在线 | 欧洲 | 亚洲精品一区二区三区婷婷月 | 日韩欧美群交p片內射中文 | 亚洲 高清 成人 动漫 | 欧美丰满熟妇xxxx性ppx人交 | 中文字幕乱码中文乱码51精品 | 日本大香伊一区二区三区 | 国产尤物精品视频 | 国产激情无码一区二区 | 久久精品人人做人人综合试看 | 国产人妻人伦精品1国产丝袜 | 亚洲午夜福利在线观看 | 小sao货水好多真紧h无码视频 | 国产精品嫩草久久久久 | 97无码免费人妻超级碰碰夜夜 | 狠狠cao日日穞夜夜穞av | 国产乱人偷精品人妻a片 | 午夜无码人妻av大片色欲 | 一本久道高清无码视频 | 真人与拘做受免费视频 | 久久久久亚洲精品男人的天堂 | 国产成人无码专区 | 激情内射日本一区二区三区 | 中文字幕无码热在线视频 | 在线播放免费人成毛片乱码 | 久久久久99精品成人片 | 亚拍精品一区二区三区探花 | yw尤物av无码国产在线观看 | 亚洲国产精品一区二区第一页 | www一区二区www免费 | 国产一区二区三区影院 | 极品尤物被啪到呻吟喷水 | 成人亚洲精品久久久久 | 国产精品久久久一区二区三区 | 婷婷五月综合激情中文字幕 | 在线观看国产午夜福利片 | 中文字幕亚洲情99在线 | 在线天堂新版最新版在线8 | 国产精品久久精品三级 | 一本久久a久久精品vr综合 | 欧美xxxx黑人又粗又长 | 免费无码一区二区三区蜜桃大 | 午夜无码区在线观看 | 好男人www社区 | 乱人伦人妻中文字幕无码久久网 | 无码人妻丰满熟妇区五十路百度 | 国产人成高清在线视频99最全资源 | 一本色道久久综合狠狠躁 | 欧美日本免费一区二区三区 | 中文无码精品a∨在线观看不卡 | 51国偷自产一区二区三区 | 水蜜桃亚洲一二三四在线 | 精品国产精品久久一区免费式 | 久久久成人毛片无码 | 男人的天堂2018无码 | 伊人久久大香线蕉av一区二区 | 内射老妇bbwx0c0ck | 在线播放亚洲第一字幕 | 国产 精品 自在自线 | 国产亚洲欧美在线专区 | 免费观看的无遮挡av | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 成人女人看片免费视频放人 | 久久99精品国产.久久久久 | 精品人妻中文字幕有码在线 | 无码福利日韩神码福利片 | 国产成人精品视频ⅴa片软件竹菊 | 草草网站影院白丝内射 | 色综合久久久久综合一本到桃花网 | 亚洲码国产精品高潮在线 | 久久99精品久久久久久动态图 | 少妇邻居内射在线 | 国产一区二区三区影院 | 最近免费中文字幕中文高清百度 | 水蜜桃色314在线观看 | 日本免费一区二区三区最新 | 国产在线精品一区二区三区直播 | 亚洲日韩一区二区 | 国产亚洲人成a在线v网站 | 国产福利视频一区二区 | 成人片黄网站色大片免费观看 | 亚洲中文字幕在线无码一区二区 | 亚洲人成影院在线观看 | 国产成人亚洲综合无码 | 98国产精品综合一区二区三区 | 久久亚洲日韩精品一区二区三区 | 蜜桃av抽搐高潮一区二区 | 久久www免费人成人片 | 人妻与老人中文字幕 | 图片区 小说区 区 亚洲五月 | 全球成人中文在线 | 亚洲人亚洲人成电影网站色 | a在线亚洲男人的天堂 | 日日夜夜撸啊撸 | 亚洲a无码综合a国产av中文 | 又大又硬又爽免费视频 | 亚洲成av人影院在线观看 | 精品国产国产综合精品 | 久久久精品国产sm最大网站 | 在线亚洲高清揄拍自拍一品区 | 中文字幕日产无线码一区 | 精品久久久无码中文字幕 | 131美女爱做视频 | 纯爱无遮挡h肉动漫在线播放 | 国产香蕉97碰碰久久人人 | 成年美女黄网站色大免费全看 | 久久久久se色偷偷亚洲精品av | 日本免费一区二区三区最新 | 无码福利日韩神码福利片 | 亚洲色无码一区二区三区 | 国产麻豆精品一区二区三区v视界 | 在线观看国产午夜福利片 | 亚洲国产精品久久人人爱 | 亚洲综合久久一区二区 | 精品国产av色一区二区深夜久久 | 亚洲熟悉妇女xxx妇女av | 麻豆国产97在线 | 欧洲 | 午夜精品久久久内射近拍高清 | 日本免费一区二区三区最新 | 伊人久久大香线蕉av一区二区 | 亚洲综合精品香蕉久久网 | 国产麻豆精品精东影业av网站 | 亚洲欧美综合区丁香五月小说 | 性欧美videos高清精品 | 乱码av麻豆丝袜熟女系列 | 又黄又爽又色的视频 | 九一九色国产 | 亚洲s码欧洲m码国产av | 又大又硬又爽免费视频 | 麻豆成人精品国产免费 | 粗大的内捧猛烈进出视频 | 国产黑色丝袜在线播放 | 欧美兽交xxxx×视频 | 一本加勒比波多野结衣 | 亚洲国产av精品一区二区蜜芽 | 一本大道伊人av久久综合 | 久久久av男人的天堂 | 国产人成高清在线视频99最全资源 | 亚洲成av人片在线观看无码不卡 | 亚洲人成影院在线无码按摩店 | 国产疯狂伦交大片 | 欧美刺激性大交 | 成在人线av无码免费 | 国产精品永久免费视频 | 永久免费精品精品永久-夜色 | 日本精品人妻无码免费大全 | 久久久精品456亚洲影院 | 日本丰满熟妇videos | 麻豆人妻少妇精品无码专区 | 久久人人爽人人爽人人片av高清 | 亚洲欧美综合区丁香五月小说 | 无码人妻丰满熟妇区毛片18 | 精品一区二区不卡无码av | 亚洲日韩av片在线观看 | 亚洲欧洲无卡二区视頻 | 夜先锋av资源网站 | 中文字幕无码免费久久99 | 国产特级毛片aaaaaa高潮流水 | 日韩在线不卡免费视频一区 | 性史性农村dvd毛片 | 国产av无码专区亚洲awww | 亚洲色大成网站www | 国内精品人妻无码久久久影院 | 精品熟女少妇av免费观看 | 少妇性l交大片 | 欧美性色19p | 日韩av无码一区二区三区 | 18精品久久久无码午夜福利 | 日日摸夜夜摸狠狠摸婷婷 | 日本一本二本三区免费 | 国内丰满熟女出轨videos | 欧美黑人性暴力猛交喷水 | 一本大道久久东京热无码av | 国产成人精品一区二区在线小狼 | av人摸人人人澡人人超碰下载 | 三级4级全黄60分钟 | 亚洲国产精品无码一区二区三区 | 熟女俱乐部五十路六十路av | 亚洲色偷偷男人的天堂 | 3d动漫精品啪啪一区二区中 | 国产高清不卡无码视频 | 亚洲大尺度无码无码专区 | 丰满护士巨好爽好大乳 | 免费网站看v片在线18禁无码 | 人妻与老人中文字幕 | 日日干夜夜干 | 国产乱人偷精品人妻a片 | 国产成人无码a区在线观看视频app | 国精品人妻无码一区二区三区蜜柚 | 熟女少妇在线视频播放 | 丰满少妇高潮惨叫视频 | 国产内射爽爽大片视频社区在线 | 鲁鲁鲁爽爽爽在线视频观看 | 无码吃奶揉捏奶头高潮视频 | 国产成人无码一二三区视频 | 亚洲精品国产品国语在线观看 | 国产精品无码久久av | 久久亚洲中文字幕精品一区 | 国产精品亚洲综合色区韩国 | 亚洲综合另类小说色区 | 老头边吃奶边弄进去呻吟 | 久久久久亚洲精品中文字幕 | 国产免费观看黄av片 | 野狼第一精品社区 | 亚洲中文字幕成人无码 | 两性色午夜视频免费播放 | 少妇无码av无码专区在线观看 | 欧美zoozzooz性欧美 | 国产97人人超碰caoprom | 中文字幕日产无线码一区 | 国产成人无码av一区二区 | 日韩少妇白浆无码系列 | 国内老熟妇对白xxxxhd | 久久综合网欧美色妞网 | 免费网站看v片在线18禁无码 | 国产美女精品一区二区三区 | 中国女人内谢69xxxxxa片 | 日韩欧美成人免费观看 | 午夜福利一区二区三区在线观看 | 天天爽夜夜爽夜夜爽 | 久久午夜夜伦鲁鲁片无码免费 | 波多野结衣一区二区三区av免费 | 少妇无码吹潮 | 国产精品久久久一区二区三区 | 亚洲国产精品美女久久久久 | 真人与拘做受免费视频 | 日本欧美一区二区三区乱码 | 久久人人爽人人人人片 | 久9re热视频这里只有精品 | 免费播放一区二区三区 | 国产深夜福利视频在线 | 亚洲午夜无码久久 | 日本乱偷人妻中文字幕 | 国产成人人人97超碰超爽8 | 色婷婷香蕉在线一区二区 | 欧美日本免费一区二区三区 | 国产凸凹视频一区二区 | 内射白嫩少妇超碰 | 久在线观看福利视频 | 国产亚洲美女精品久久久2020 | 无码人妻久久一区二区三区不卡 | 秋霞成人午夜鲁丝一区二区三区 | 人人妻人人澡人人爽人人精品 | 欧美日韩一区二区免费视频 | 久久久久久久女国产乱让韩 | 免费无码肉片在线观看 | 国产综合久久久久鬼色 | 久久久久se色偷偷亚洲精品av | 成人动漫在线观看 | 久久久国产精品无码免费专区 | 色欲综合久久中文字幕网 | 国产成人综合在线女婷五月99播放 | 欧美色就是色 | 色综合天天综合狠狠爱 | 国产人妻人伦精品1国产丝袜 | 亚洲男人av天堂午夜在 | 玩弄中年熟妇正在播放 | 久久综合色之久久综合 | 99精品国产综合久久久久五月天 | 国产午夜精品一区二区三区嫩草 | 97夜夜澡人人双人人人喊 | 国产精品美女久久久 | 成在人线av无码免观看麻豆 | 欧美日韩精品 | www成人国产高清内射 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久久久免费看成人影片 | 国产精品毛片一区二区 | 久久精品女人的天堂av | 永久免费观看国产裸体美女 | 精品无码一区二区三区爱欲 | 激情内射日本一区二区三区 | 丰满人妻被黑人猛烈进入 | 国产无av码在线观看 | 少妇无套内谢久久久久 | 四虎影视成人永久免费观看视频 | 永久免费观看美女裸体的网站 | 亚洲国产av美女网站 | 欧美阿v高清资源不卡在线播放 | 国产av剧情md精品麻豆 | 欧美激情一区二区三区成人 | 成年美女黄网站色大免费视频 | 精品偷自拍另类在线观看 | 久久久婷婷五月亚洲97号色 | 377p欧洲日本亚洲大胆 | 国产亚洲精品久久久久久大师 | 97色伦图片97综合影院 | 牲交欧美兽交欧美 | 久久久久人妻一区精品色欧美 | 无码人妻久久一区二区三区不卡 | 国产网红无码精品视频 | 国产内射爽爽大片视频社区在线 | 永久免费观看美女裸体的网站 | 国产香蕉97碰碰久久人人 | 综合激情五月综合激情五月激情1 | 亚洲综合色区中文字幕 | 午夜性刺激在线视频免费 | 四虎影视成人永久免费观看视频 | a在线观看免费网站大全 | 久久精品女人天堂av免费观看 | 色综合久久久无码中文字幕 | 亚洲熟熟妇xxxx | 免费看男女做好爽好硬视频 | 又色又爽又黄的美女裸体网站 | 熟女少妇在线视频播放 | 国产精品嫩草久久久久 | 国产激情综合五月久久 | 久久精品女人天堂av免费观看 | 国产亚洲美女精品久久久2020 | 久久人妻内射无码一区三区 | 无码帝国www无码专区色综合 | 亚洲国产精品久久久天堂 | 亚洲成在人网站无码天堂 | 亚洲а∨天堂久久精品2021 | 无码一区二区三区在线观看 | 一区二区三区乱码在线 | 欧洲 | 欧美性生交xxxxx久久久 | 超碰97人人射妻 | 国产午夜亚洲精品不卡 | 一本久久a久久精品vr综合 | 色综合视频一区二区三区 | 国内精品久久久久久中文字幕 | 精品久久久久久人妻无码中文字幕 | 国产亚洲精品久久久闺蜜 | 欧美日韩久久久精品a片 | 中文字幕无码人妻少妇免费 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产69精品久久久久app下载 | 欧美精品国产综合久久 | 97se亚洲精品一区 | 欧美一区二区三区视频在线观看 | 2019午夜福利不卡片在线 | 国内精品人妻无码久久久影院蜜桃 | 国产精品香蕉在线观看 | 国内精品人妻无码久久久影院蜜桃 | 国产乱人伦av在线无码 | 国产无遮挡又黄又爽免费视频 | 国产一区二区三区精品视频 | 蜜桃臀无码内射一区二区三区 | 亚洲欧美日韩成人高清在线一区 | 两性色午夜视频免费播放 | 在线观看欧美一区二区三区 | 奇米影视7777久久精品人人爽 | 欧美日韩一区二区免费视频 | 欧美人妻一区二区三区 | 天天摸天天碰天天添 | 性开放的女人aaa片 | 国产成人人人97超碰超爽8 | 牲欲强的熟妇农村老妇女 | 国产精品久久久久久久影院 | 中文字幕无码人妻少妇免费 | 亚洲精品无码人妻无码 | 国产一区二区不卡老阿姨 | 日本一本二本三区免费 | 无码国模国产在线观看 | 无码人妻丰满熟妇区毛片18 | 国产va免费精品观看 | 亚洲熟悉妇女xxx妇女av | 国产熟妇高潮叫床视频播放 | 丰满人妻一区二区三区免费视频 | 国产精品-区区久久久狼 | 正在播放东北夫妻内射 | 久久99国产综合精品 | 亚洲精品国偷拍自产在线麻豆 | 色综合久久88色综合天天 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产口爆吞精在线视频 | 午夜理论片yy44880影院 | 在线欧美精品一区二区三区 | 呦交小u女精品视频 | 天堂亚洲2017在线观看 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲精品久久久久久一区二区 | 国产成人无码一二三区视频 | 国内丰满熟女出轨videos | 亚洲无人区午夜福利码高清完整版 | 日韩精品无码免费一区二区三区 | 无码av岛国片在线播放 | 日本免费一区二区三区最新 | 波多野结衣av一区二区全免费观看 | 成 人 网 站国产免费观看 | 久久99精品国产麻豆蜜芽 | 亚洲小说图区综合在线 | 久久久久久国产精品无码下载 | 欧美丰满老熟妇xxxxx性 | 图片小说视频一区二区 | 亚洲色大成网站www | 亚洲日本va午夜在线电影 | 一本久道久久综合婷婷五月 | 久久久精品欧美一区二区免费 | 日本成熟视频免费视频 | av无码不卡在线观看免费 | 国产乱人伦av在线无码 | 一本大道久久东京热无码av | 亚洲国产av美女网站 | 99精品无人区乱码1区2区3区 | 亚洲欧美国产精品久久 | 亚洲熟妇色xxxxx欧美老妇y | 婷婷丁香五月天综合东京热 | 中文字幕无码免费久久99 | 久久亚洲精品成人无码 | 1000部啪啪未满十八勿入下载 | 久久国产精品萌白酱免费 | 久久无码专区国产精品s | 18无码粉嫩小泬无套在线观看 | 女人被男人爽到呻吟的视频 | 高中生自慰www网站 | 日本精品人妻无码77777 天堂一区人妻无码 | 人人妻人人澡人人爽欧美一区 | 激情五月综合色婷婷一区二区 | 无码午夜成人1000部免费视频 | 一本加勒比波多野结衣 | 亚洲精品www久久久 | 久久精品国产精品国产精品污 | 377p欧洲日本亚洲大胆 | 中文字幕av伊人av无码av | 国产国产精品人在线视 | 日韩欧美成人免费观看 | 国产麻豆精品精东影业av网站 | 亚洲国产一区二区三区在线观看 | 日韩欧美成人免费观看 | v一区无码内射国产 | 日产精品99久久久久久 | 精品国偷自产在线 | 婷婷五月综合激情中文字幕 | 一本加勒比波多野结衣 | 亚洲午夜福利在线观看 | 国产偷抇久久精品a片69 | 理论片87福利理论电影 | 国产综合在线观看 | 三上悠亚人妻中文字幕在线 | 成人免费视频视频在线观看 免费 | 97夜夜澡人人双人人人喊 | 国产精品久免费的黄网站 | 人妻少妇精品久久 | 妺妺窝人体色www在线小说 | 亚洲国产精品无码一区二区三区 | 亚洲精品一区二区三区在线观看 | 免费看少妇作爱视频 | 永久黄网站色视频免费直播 | 精品国产aⅴ无码一区二区 | 国产乱人伦偷精品视频 | 成 人影片 免费观看 | 成年女人永久免费看片 | 最近免费中文字幕中文高清百度 | 亚洲精品www久久久 | 丰满人妻精品国产99aⅴ | 国产97色在线 | 免 | 131美女爱做视频 | 亚洲精品国产品国语在线观看 | 88国产精品欧美一区二区三区 | 国产极品视觉盛宴 | 精品成人av一区二区三区 | 国内综合精品午夜久久资源 | 波多野结衣乳巨码无在线观看 | 俄罗斯老熟妇色xxxx | 久久www免费人成人片 | 水蜜桃色314在线观看 | 中文字幕av无码一区二区三区电影 | 亚洲中文字幕无码中文字在线 | 麻花豆传媒剧国产免费mv在线 | 国产极品美女高潮无套在线观看 | 日韩少妇白浆无码系列 | 欧美性猛交xxxx富婆 | 无码人中文字幕 | 日本丰满护士爆乳xxxx | 久久人人97超碰a片精品 | 亚洲国产精品成人久久蜜臀 | 久久午夜无码鲁丝片秋霞 | 两性色午夜视频免费播放 | 大乳丰满人妻中文字幕日本 | 精品国精品国产自在久国产87 | 精品日本一区二区三区在线观看 | 欧美日韩一区二区综合 | 亚洲国产欧美国产综合一区 | 久久99精品国产麻豆蜜芽 | 激情人妻另类人妻伦 | 亚洲精品国产精品乱码不卡 | 国产成人无码a区在线观看视频app | 亚洲熟女一区二区三区 | 中文字幕无码日韩欧毛 | 自拍偷自拍亚洲精品被多人伦好爽 | 成 人 网 站国产免费观看 | 精品久久久久久人妻无码中文字幕 | 中国女人内谢69xxxxxa片 | 精品少妇爆乳无码av无码专区 | 欧美猛少妇色xxxxx | 国产成人无码a区在线观看视频app | 国产偷国产偷精品高清尤物 | 激情五月综合色婷婷一区二区 | 少妇性l交大片欧洲热妇乱xxx | 日韩无码专区 | 伊在人天堂亚洲香蕉精品区 | 激情爆乳一区二区三区 | 高潮毛片无遮挡高清免费视频 | 成在人线av无码免观看麻豆 | 久久久久av无码免费网 | 强开小婷嫩苞又嫩又紧视频 | 无码av免费一区二区三区试看 | 妺妺窝人体色www在线小说 | 99精品久久毛片a片 | 成 人影片 免费观看 | a在线观看免费网站大全 | 波多野结衣av一区二区全免费观看 | 国产乱人偷精品人妻a片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 99久久精品无码一区二区毛片 | 性色欲情网站iwww九文堂 | 人妻天天爽夜夜爽一区二区 | 亚洲小说图区综合在线 | 377p欧洲日本亚洲大胆 | 免费无码一区二区三区蜜桃大 | 扒开双腿吃奶呻吟做受视频 | 人人妻人人澡人人爽欧美一区 | 成人无码精品1区2区3区免费看 | 日本在线高清不卡免费播放 | 动漫av网站免费观看 | 无码午夜成人1000部免费视频 | 欧美人与善在线com | 网友自拍区视频精品 | 亚洲国精产品一二二线 | 午夜福利一区二区三区在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 中文字幕日产无线码一区 | 亚洲精品无码人妻无码 | 日韩av无码一区二区三区不卡 | 精品乱码久久久久久久 | 国产三级精品三级男人的天堂 | 性欧美大战久久久久久久 | 嫩b人妻精品一区二区三区 | 亚洲成a人片在线观看无码3d | 久久人妻内射无码一区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 妺妺窝人体色www婷婷 | 亚洲小说春色综合另类 | 西西人体www44rt大胆高清 | 成年美女黄网站色大免费全看 | 中文字幕无码av激情不卡 | 波多野结衣高清一区二区三区 | 亚洲中文字幕无码中文字在线 | √天堂中文官网8在线 | 久久人妻内射无码一区三区 | 国产精品亚洲а∨无码播放麻豆 | 日韩欧美中文字幕公布 | 中文字幕人妻丝袜二区 | 久9re热视频这里只有精品 | 99久久精品日本一区二区免费 | 成人性做爰aaa片免费看不忠 | 国产va免费精品观看 | 国产国语老龄妇女a片 | 无码精品国产va在线观看dvd | 黑人巨大精品欧美黑寡妇 | 精品久久久久久人妻无码中文字幕 | 国产精品无码mv在线观看 | 国产精品99爱免费视频 | 国产97在线 | 亚洲 | 亚洲码国产精品高潮在线 | 亚洲精品国产精品乱码视色 | www一区二区www免费 | 久久国语露脸国产精品电影 | 中文字幕乱码人妻无码久久 | 婷婷五月综合激情中文字幕 | 内射欧美老妇wbb | 波多野结衣 黑人 | 国产莉萝无码av在线播放 | 久久成人a毛片免费观看网站 | 免费男性肉肉影院 | 久久久久成人精品免费播放动漫 | 18禁止看的免费污网站 | 爱做久久久久久 | 国产精品无码一区二区桃花视频 | 色五月五月丁香亚洲综合网 | 久久久久久国产精品无码下载 | 嫩b人妻精品一区二区三区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产精品内射视频免费 | 一本大道久久东京热无码av | 在线播放免费人成毛片乱码 | 国产香蕉尹人综合在线观看 | 国产内射爽爽大片视频社区在线 | 在线精品亚洲一区二区 | 色窝窝无码一区二区三区色欲 | 国产精品无码久久av | 99re在线播放 | 亚洲一区二区三区偷拍女厕 | √8天堂资源地址中文在线 | 2020最新国产自产精品 | 亚洲成色www久久网站 | 中文字幕乱码人妻二区三区 | 日本精品高清一区二区 | 中文毛片无遮挡高清免费 | 美女扒开屁股让男人桶 | 国产网红无码精品视频 | 无套内谢的新婚少妇国语播放 | 好爽又高潮了毛片免费下载 | 亚洲成av人片天堂网无码】 | 成人免费视频一区二区 | 亚洲狠狠婷婷综合久久 | 精品日本一区二区三区在线观看 | 性做久久久久久久免费看 | 啦啦啦www在线观看免费视频 | 欧美国产日产一区二区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 最新国产乱人伦偷精品免费网站 | 亚洲精品鲁一鲁一区二区三区 | 亚洲日本一区二区三区在线 | 中文字幕无码人妻少妇免费 | 377p欧洲日本亚洲大胆 | 国产人妻精品一区二区三区不卡 | 久激情内射婷内射蜜桃人妖 | 欧美喷潮久久久xxxxx | 亚洲 a v无 码免 费 成 人 a v | 日日橹狠狠爱欧美视频 | 无码人妻精品一区二区三区不卡 | 欧美黑人巨大xxxxx | 国产偷自视频区视频 | 强奷人妻日本中文字幕 | 一二三四在线观看免费视频 | 88国产精品欧美一区二区三区 | 99久久精品日本一区二区免费 | 九九久久精品国产免费看小说 | 岛国片人妻三上悠亚 | 国产香蕉97碰碰久久人人 | 国产精品18久久久久久麻辣 | 国产人妻久久精品二区三区老狼 | 成人亚洲精品久久久久软件 | 中文字幕乱码人妻无码久久 | 久久久久成人片免费观看蜜芽 | 欧美丰满少妇xxxx性 | 久久精品人人做人人综合 | 精品无码国产一区二区三区av | 亚洲成色www久久网站 | 国产成人精品一区二区在线小狼 | 色窝窝无码一区二区三区色欲 | 国产激情精品一区二区三区 | 国产一区二区三区四区五区加勒比 | 国产成人一区二区三区在线观看 | 国产精品99久久精品爆乳 | 中文字幕无码av激情不卡 | 亚洲精品国产精品乱码不卡 | 日产精品高潮呻吟av久久 | 丝袜人妻一区二区三区 | 亚洲人成人无码网www国产 | 人妻少妇精品无码专区二区 | 76少妇精品导航 | 国产97人人超碰caoprom | 国产精品久久久久9999小说 | а√天堂www在线天堂小说 | 又色又爽又黄的美女裸体网站 | v一区无码内射国产 | 啦啦啦www在线观看免费视频 | 中文字幕av日韩精品一区二区 | 欧美日韩色另类综合 | 国产日产欧产精品精品app | 欧美精品在线观看 | 蜜臀av在线播放 久久综合激激的五月天 | 色情久久久av熟女人妻网站 | 特大黑人娇小亚洲女 | 性欧美牲交xxxxx视频 | 午夜理论片yy44880影院 | 娇妻被黑人粗大高潮白浆 | 久久国语露脸国产精品电影 | 无套内谢老熟女 | 日韩欧美中文字幕公布 | 人妻无码久久精品人妻 | 精品久久久久久人妻无码中文字幕 | 天天躁夜夜躁狠狠是什么心态 | 国产日产欧产精品精品app | 成人亚洲精品久久久久软件 | 亚洲国产一区二区三区在线观看 | 日日摸日日碰夜夜爽av | 在线播放免费人成毛片乱码 | 蜜桃视频插满18在线观看 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲第一网站男人都懂 | 久久久av男人的天堂 | 国产精品亚洲五月天高清 | 国产又粗又硬又大爽黄老大爷视 | 国产精品久久精品三级 | 野外少妇愉情中文字幕 | 一本大道伊人av久久综合 | 午夜性刺激在线视频免费 | 中文字幕人妻丝袜二区 | 中文字幕av日韩精品一区二区 | 免费播放一区二区三区 | 又大又紧又粉嫩18p少妇 | 中文字幕乱码人妻无码久久 | 亚洲欧美日韩成人高清在线一区 | 黑人粗大猛烈进出高潮视频 | a国产一区二区免费入口 | 久久天天躁狠狠躁夜夜免费观看 | 性生交大片免费看女人按摩摩 | a在线亚洲男人的天堂 | 日韩av无码中文无码电影 | 帮老师解开蕾丝奶罩吸乳网站 | 婷婷色婷婷开心五月四房播播 | 亚洲欧美精品aaaaaa片 | 亚洲精品中文字幕 | 日本丰满护士爆乳xxxx | 国产精品无码久久av | 亚洲国产欧美日韩精品一区二区三区 | 一个人看的www免费视频在线观看 | 日韩人妻系列无码专区 | 亚洲日韩中文字幕在线播放 | 久久www免费人成人片 | 亚洲狠狠色丁香婷婷综合 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚拍精品一区二区三区探花 | 欧美丰满老熟妇xxxxx性 | 国产精品无码mv在线观看 | 国产疯狂伦交大片 | 正在播放东北夫妻内射 | 免费网站看v片在线18禁无码 | 伊人久久大香线蕉av一区二区 | 午夜精品一区二区三区在线观看 | 国产莉萝无码av在线播放 | 大色综合色综合网站 | 欧美日本日韩 | 欧美日韩亚洲国产精品 | 欧洲vodafone精品性 | 亚洲综合无码一区二区三区 | 国产麻豆精品一区二区三区v视界 | 人妻插b视频一区二区三区 | 欧美野外疯狂做受xxxx高潮 | 天堂在线观看www | 亚洲熟悉妇女xxx妇女av | 伊人久久大香线蕉午夜 | 国产人妻大战黑人第1集 | 色一情一乱一伦一视频免费看 | 真人与拘做受免费视频一 | 成人一区二区免费视频 | 亚洲欧洲中文日韩av乱码 | 精品无人区无码乱码毛片国产 | 99久久亚洲精品无码毛片 | 国产精品久久久久久久9999 | 曰韩少妇内射免费播放 | 国产成人综合色在线观看网站 | 人妻少妇被猛烈进入中文字幕 | 少妇无码av无码专区在线观看 | 大乳丰满人妻中文字幕日本 | 玩弄人妻少妇500系列视频 | 亚洲成a人片在线观看日本 | 久久久精品人妻久久影视 | 久在线观看福利视频 | av无码电影一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 国产精品高潮呻吟av久久 | 久久综合激激的五月天 | 国产熟妇另类久久久久 | 一本无码人妻在中文字幕免费 | 99精品国产综合久久久久五月天 | 欧美日韩一区二区综合 | aⅴ在线视频男人的天堂 | 亚洲一区二区三区四区 | 国产精品-区区久久久狼 | 夜夜夜高潮夜夜爽夜夜爰爰 | 99视频精品全部免费免费观看 | 精品亚洲成av人在线观看 | 国产香蕉97碰碰久久人人 | 中文字幕无码日韩专区 | 色欲av亚洲一区无码少妇 | 疯狂三人交性欧美 | 俺去俺来也在线www色官网 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲精品国产精品乱码视色 | 国产两女互慰高潮视频在线观看 | 久久99精品国产.久久久久 | 玩弄少妇高潮ⅹxxxyw | 亚洲大尺度无码无码专区 | 亚洲欧洲无卡二区视頻 | 日韩欧美中文字幕公布 | 亚洲精品成人福利网站 | 亚洲欧洲无卡二区视頻 | 欧美 日韩 亚洲 在线 | 妺妺窝人体色www婷婷 | 夜精品a片一区二区三区无码白浆 | 97精品人妻一区二区三区香蕉 | 亚洲精品国产品国语在线观看 | 2020久久超碰国产精品最新 | 国产特级毛片aaaaaaa高清 | 国产精品多人p群无码 | 激情国产av做激情国产爱 | 欧美35页视频在线观看 | 欧美日本免费一区二区三区 | 国产精品久免费的黄网站 | 精品熟女少妇av免费观看 | 亚洲国产精品美女久久久久 | 国产成人人人97超碰超爽8 | a在线亚洲男人的天堂 | 久久综合给合久久狠狠狠97色 | 亚洲自偷自拍另类第1页 | 国产精品久久久 | 国产真实乱对白精彩久久 | 伊人色综合久久天天小片 | 亚洲综合精品香蕉久久网 | 日日夜夜撸啊撸 | 欧洲精品码一区二区三区免费看 | 我要看www免费看插插视频 | 成熟人妻av无码专区 | 成在人线av无码免观看麻豆 | 国产午夜福利亚洲第一 | 亚洲天堂2017无码 | 乱中年女人伦av三区 | 少妇性l交大片欧洲热妇乱xxx | 丰满肥臀大屁股熟妇激情视频 | 又湿又紧又大又爽a视频国产 | 国产在线精品一区二区三区直播 | 国产精品美女久久久久av爽李琼 | 亚洲色偷偷男人的天堂 | 成人无码影片精品久久久 | 在线天堂新版最新版在线8 | 国产乱码精品一品二品 | 久久国产自偷自偷免费一区调 | 日本爽爽爽爽爽爽在线观看免 | 午夜精品一区二区三区在线观看 | 亚洲人成网站免费播放 | 精品夜夜澡人妻无码av蜜桃 | 欧美兽交xxxx×视频 | 欧美精品国产综合久久 | 亚洲国产精品成人久久蜜臀 | 国产成人午夜福利在线播放 | 国产亚洲美女精品久久久2020 | 中国女人内谢69xxxx | 无码人妻少妇伦在线电影 | 久久 国产 尿 小便 嘘嘘 | 国产精品手机免费 | 东京一本一道一二三区 | 亚洲欧洲日本无在线码 | 久久久精品国产sm最大网站 | av香港经典三级级 在线 | 国产午夜视频在线观看 | 久久精品无码一区二区三区 | 自拍偷自拍亚洲精品10p | 亚洲 激情 小说 另类 欧美 | 欧洲精品码一区二区三区免费看 | 亚洲精品中文字幕久久久久 | 欧美日本日韩 | 国产在线精品一区二区三区直播 | 欧美熟妇另类久久久久久不卡 | 老司机亚洲精品影院无码 | 精品一区二区不卡无码av | 特级做a爰片毛片免费69 | 丰腴饱满的极品熟妇 | 又大又硬又黄的免费视频 | 亚洲熟妇色xxxxx欧美老妇y | 国产女主播喷水视频在线观看 | 国产精品亚洲专区无码不卡 | 国产成人无码av片在线观看不卡 | 天天躁日日躁狠狠躁免费麻豆 | 大乳丰满人妻中文字幕日本 | 激情内射亚州一区二区三区爱妻 | 国产亲子乱弄免费视频 | 婷婷丁香六月激情综合啪 | 亚洲理论电影在线观看 | 国产成人综合在线女婷五月99播放 | 丰满人妻翻云覆雨呻吟视频 | 日本又色又爽又黄的a片18禁 | 老太婆性杂交欧美肥老太 | 久久精品国产99精品亚洲 | 国产偷国产偷精品高清尤物 | 日本丰满护士爆乳xxxx | 色五月五月丁香亚洲综合网 | 97夜夜澡人人爽人人喊中国片 | 真人与拘做受免费视频 | 亚洲人成网站免费播放 | 国产成人精品一区二区在线小狼 | 纯爱无遮挡h肉动漫在线播放 | 丰满护士巨好爽好大乳 | 国产精品多人p群无码 | 精品偷自拍另类在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 婷婷五月综合缴情在线视频 | 日韩无套无码精品 | 无码国模国产在线观看 | 久久久久久a亚洲欧洲av冫 | 天天躁日日躁狠狠躁免费麻豆 | 国产人妻精品一区二区三区 | 亚洲精品成a人在线观看 | 色综合久久久无码中文字幕 | 中国女人内谢69xxxx | 亚洲人成影院在线观看 | 国内精品人妻无码久久久影院 | 扒开双腿疯狂进出爽爽爽视频 | 天堂亚洲2017在线观看 | 无码人妻精品一区二区三区下载 | 国内精品九九久久久精品 | 亚洲色欲久久久综合网东京热 | 97资源共享在线视频 | 一区二区三区乱码在线 | 欧洲 | 蜜桃臀无码内射一区二区三区 | 1000部啪啪未满十八勿入下载 | 人妻人人添人妻人人爱 | 99久久无码一区人妻 | 久久综合久久自在自线精品自 | 成人精品天堂一区二区三区 | 国产人妻人伦精品 | 国产农村妇女高潮大叫 | 国产免费观看黄av片 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 强伦人妻一区二区三区视频18 | 麻豆国产人妻欲求不满 | 成人毛片一区二区 | 1000部夫妻午夜免费 | 国产无遮挡又黄又爽又色 | 亚洲一区二区三区偷拍女厕 | 日日碰狠狠丁香久燥 | 成人无码视频在线观看网站 | 成人av无码一区二区三区 | 一本久道高清无码视频 | 国产熟妇另类久久久久 | 国产农村乱对白刺激视频 | 日本va欧美va欧美va精品 | 亚洲中文字幕在线无码一区二区 | 中文字幕无码av波多野吉衣 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲色大成网站www国产 | 西西人体www44rt大胆高清 | 欧洲vodafone精品性 | 日本一区二区三区免费播放 | 男女超爽视频免费播放 | 日韩亚洲欧美精品综合 | 色婷婷欧美在线播放内射 | 成人精品一区二区三区中文字幕 | 小sao货水好多真紧h无码视频 | 欧美精品无码一区二区三区 | 男女爱爱好爽视频免费看 | 国内精品人妻无码久久久影院蜜桃 | 精品偷拍一区二区三区在线看 | 在线天堂新版最新版在线8 | 国产偷抇久久精品a片69 | 兔费看少妇性l交大片免费 | 国产内射爽爽大片视频社区在线 | 亚洲欧美日韩成人高清在线一区 | 久久人人爽人人人人片 | 一个人免费观看的www视频 | 精品国产精品久久一区免费式 | 日日摸夜夜摸狠狠摸婷婷 | 极品嫩模高潮叫床 | 欧美高清在线精品一区 | 一本大道伊人av久久综合 | 成人精品天堂一区二区三区 | 亚洲精品中文字幕乱码 | 亚洲小说春色综合另类 | 午夜精品久久久久久久久 | 色妞www精品免费视频 | 人人妻人人澡人人爽人人精品 | 亚洲精品国产品国语在线观看 | 国产激情一区二区三区 | 伊人久久大香线焦av综合影院 | 强开小婷嫩苞又嫩又紧视频 | 又紧又大又爽精品一区二区 | 丁香啪啪综合成人亚洲 | 国产又爽又猛又粗的视频a片 | 国产三级精品三级男人的天堂 | 鲁鲁鲁爽爽爽在线视频观看 | 国产精品久久久久久久9999 | 亚洲欧美综合区丁香五月小说 | 日本精品久久久久中文字幕 | 曰本女人与公拘交酡免费视频 | 一本色道久久综合亚洲精品不卡 | 欧美性猛交xxxx富婆 | 国产亚洲视频中文字幕97精品 | 波多野结衣av一区二区全免费观看 | 国产精品久久久 | 人人澡人人透人人爽 | 免费网站看v片在线18禁无码 | 精品国偷自产在线视频 | 蜜臀av无码人妻精品 | 日日天干夜夜狠狠爱 | 国产人妻精品一区二区三区不卡 | 国产成人无码区免费内射一片色欲 | 色综合久久久久综合一本到桃花网 | 女人被男人躁得好爽免费视频 | 久久久久免费精品国产 | 人人澡人人妻人人爽人人蜜桃 | 久久久国产一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 精品国产一区av天美传媒 | 亚洲伊人久久精品影院 | 午夜精品一区二区三区的区别 | 天堂亚洲免费视频 | 亚洲爆乳大丰满无码专区 | 国产av无码专区亚洲a∨毛片 | 成人欧美一区二区三区黑人免费 | 99久久婷婷国产综合精品青草免费 | 国产熟妇另类久久久久 | 精品成人av一区二区三区 | 麻豆精品国产精华精华液好用吗 | 欧美日本精品一区二区三区 | 国产精品久久久久久亚洲毛片 | 免费无码的av片在线观看 | 成人免费无码大片a毛片 | 在线视频网站www色 | 亚洲成a人片在线观看无码3d | 装睡被陌生人摸出水好爽 | 免费无码av一区二区 | 久久99久久99精品中文字幕 | 欧美日本免费一区二区三区 | 精品一区二区三区波多野结衣 | 国产欧美亚洲精品a | 欧美日韩综合一区二区三区 | 色诱久久久久综合网ywww | 少女韩国电视剧在线观看完整 | 狂野欧美性猛xxxx乱大交 | 在线播放亚洲第一字幕 | 欧美乱妇无乱码大黄a片 | 国产两女互慰高潮视频在线观看 | 免费观看激色视频网站 | 真人与拘做受免费视频一 | 国产精品无码mv在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 狠狠亚洲超碰狼人久久 | 在线精品亚洲一区二区 | 国产一区二区三区日韩精品 | 日韩少妇白浆无码系列 | 国产精品内射视频免费 | 久久久精品成人免费观看 | 少妇久久久久久人妻无码 | 少妇厨房愉情理9仑片视频 | 国产麻豆精品精东影业av网站 | 亚洲一区二区三区含羞草 | 5858s亚洲色大成网站www | 在线看片无码永久免费视频 | 亚洲熟女一区二区三区 | 久久国语露脸国产精品电影 | 国产日产欧产精品精品app | 女人和拘做爰正片视频 | 中文字幕无码人妻少妇免费 | 伊人久久婷婷五月综合97色 | 成熟女人特级毛片www免费 | 国产综合色产在线精品 | 免费网站看v片在线18禁无码 | 俄罗斯老熟妇色xxxx | 天堂无码人妻精品一区二区三区 | 在线播放无码字幕亚洲 | 无人区乱码一区二区三区 | 日本精品少妇一区二区三区 | 久久五月精品中文字幕 | 99久久99久久免费精品蜜桃 | 久久99精品国产麻豆蜜芽 | 国产精品无码一区二区桃花视频 | 美女黄网站人色视频免费国产 | 国产内射爽爽大片视频社区在线 | 亚洲人成网站在线播放942 | 国产xxx69麻豆国语对白 | 夫妻免费无码v看片 | 性色欲情网站iwww九文堂 | 国产乱人伦偷精品视频 | 国产绳艺sm调教室论坛 | 2019午夜福利不卡片在线 | 欧洲熟妇精品视频 | 免费播放一区二区三区 | 亚洲欧洲中文日韩av乱码 | 青春草在线视频免费观看 | 四虎国产精品一区二区 | 少妇高潮一区二区三区99 | 性生交片免费无码看人 | 色欲人妻aaaaaaa无码 | 久久国产精品偷任你爽任你 | 免费乱码人妻系列无码专区 | 成人精品视频一区二区三区尤物 | 色老头在线一区二区三区 | 又大又黄又粗又爽的免费视频 | 欧美大屁股xxxxhd黑色 | 久久精品国产亚洲精品 | 思思久久99热只有频精品66 | 国产人成高清在线视频99最全资源 | 国产亚洲日韩欧美另类第八页 | 久久久久亚洲精品中文字幕 | 欧美成人家庭影院 | 色欲综合久久中文字幕网 | 少妇性l交大片欧洲热妇乱xxx | 老太婆性杂交欧美肥老太 | 性色av无码免费一区二区三区 | 亚洲 另类 在线 欧美 制服 | 中文无码伦av中文字幕 | 四十如虎的丰满熟妇啪啪 | 免费乱码人妻系列无码专区 | aⅴ在线视频男人的天堂 | 88国产精品欧美一区二区三区 | 色一情一乱一伦一视频免费看 | 久久人妻内射无码一区三区 | 成人精品天堂一区二区三区 | 国精品人妻无码一区二区三区蜜柚 | 无码纯肉视频在线观看 | 色欲综合久久中文字幕网 | 国产av剧情md精品麻豆 | 人妻人人添人妻人人爱 | 人人澡人人透人人爽 | 国产女主播喷水视频在线观看 | 99精品国产综合久久久久五月天 | 亚洲国产成人av在线观看 | 国产午夜无码视频在线观看 | 国产9 9在线 | 中文 | 国产国语老龄妇女a片 | 国产亚洲欧美在线专区 | 色诱久久久久综合网ywww | 一区二区三区高清视频一 | 免费观看的无遮挡av | 亚洲国产精品无码久久久久高潮 | 亚洲天堂2017无码 | 亚洲一区二区三区国产精华液 | 免费观看的无遮挡av | 成人综合网亚洲伊人 | 国内少妇偷人精品视频免费 | 成人精品视频一区二区三区尤物 | 18无码粉嫩小泬无套在线观看 | 国产亚洲美女精品久久久2020 | 久久久久99精品国产片 | 日韩视频 中文字幕 视频一区 | 亚洲成在人网站无码天堂 | 亚洲自偷精品视频自拍 | 亚洲国产av精品一区二区蜜芽 | 97精品人妻一区二区三区香蕉 | 女人被男人躁得好爽免费视频 | 国产猛烈高潮尖叫视频免费 | 99久久久无码国产aaa精品 | 300部国产真实乱 | 亚洲精品一区二区三区在线观看 | 久久久久se色偷偷亚洲精品av | 中文字幕av伊人av无码av | 国精品人妻无码一区二区三区蜜柚 | 亚洲精品美女久久久久久久 | 日本xxxx色视频在线观看免费 | 免费人成网站视频在线观看 | 欧美黑人性暴力猛交喷水 | 动漫av一区二区在线观看 | 国产极品视觉盛宴 | 国产真实伦对白全集 | 久9re热视频这里只有精品 | 国产精品福利视频导航 | 4hu四虎永久在线观看 | 日日躁夜夜躁狠狠躁 | 久久99国产综合精品 | 风流少妇按摩来高潮 | 欧美激情内射喷水高潮 | 亚洲精品一区二区三区在线 | 亚洲乱码中文字幕在线 | 亚洲日本一区二区三区在线 | 理论片87福利理论电影 | 精品厕所偷拍各类美女tp嘘嘘 | 日本精品人妻无码77777 天堂一区人妻无码 | 麻豆国产97在线 | 欧洲 | 少妇愉情理伦片bd | 国产 浪潮av性色四虎 | aa片在线观看视频在线播放 | 成 人影片 免费观看 | 国产亚洲精品久久久久久久久动漫 | 国产精品无码成人午夜电影 | 亚洲国产精品久久久久久 | 欧美黑人性暴力猛交喷水 | 国产香蕉97碰碰久久人人 | 一个人免费观看的www视频 | 精品久久久久久亚洲精品 | 波多野结衣av一区二区全免费观看 | 天天做天天爱天天爽综合网 | 精品欧洲av无码一区二区三区 | 亚洲 另类 在线 欧美 制服 | 无码福利日韩神码福利片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 内射白嫩少妇超碰 | 精品国产一区二区三区四区 | 日本va欧美va欧美va精品 | 亚洲成av人片在线观看无码不卡 | 国内精品久久久久久中文字幕 | 亚洲呦女专区 | 免费观看黄网站 | 黑人巨大精品欧美黑寡妇 | 中文无码伦av中文字幕 | 亚洲综合另类小说色区 | 免费人成在线观看网站 | 久久人妻内射无码一区三区 | 国产精品无码久久av | 人人妻人人澡人人爽欧美一区 | 亚洲阿v天堂在线 | 真人与拘做受免费视频 | 青草视频在线播放 | 自拍偷自拍亚洲精品被多人伦好爽 | 日韩欧美中文字幕在线三区 | 国产精品毛多多水多 | 樱花草在线播放免费中文 | 亚洲一区二区三区偷拍女厕 | 精品国产aⅴ无码一区二区 | 亚洲精品成a人在线观看 | 亚洲中文字幕成人无码 | 国产精品亚洲а∨无码播放麻豆 | 久久午夜无码鲁丝片午夜精品 | 国产av无码专区亚洲awww | 亚洲精品午夜无码电影网 | 男女猛烈xx00免费视频试看 | 鲁一鲁av2019在线 | 中文字幕人成乱码熟女app | 国产香蕉尹人综合在线观看 | 国产av一区二区精品久久凹凸 | 荫蒂被男人添的好舒服爽免费视频 | 东京一本一道一二三区 | 日日摸天天摸爽爽狠狠97 | 成 人 免费观看网站 | 内射老妇bbwx0c0ck | 牛和人交xxxx欧美 | 久久综合网欧美色妞网 | 亚洲日韩一区二区 | 国产精品久久久久久无码 | 中文字幕久久久久人妻 | 久久精品国产精品国产精品污 | 偷窥村妇洗澡毛毛多 | 亚洲一区二区观看播放 | 日日麻批免费40分钟无码 | 老太婆性杂交欧美肥老太 | 国产香蕉97碰碰久久人人 | 天堂亚洲免费视频 | 一本色道婷婷久久欧美 | a国产一区二区免费入口 | 国产成人精品视频ⅴa片软件竹菊 | 中文字幕精品av一区二区五区 | 日韩人妻少妇一区二区三区 | 精品久久综合1区2区3区激情 | 18无码粉嫩小泬无套在线观看 | 人妻aⅴ无码一区二区三区 | 亚洲 日韩 欧美 成人 在线观看 | 日本精品少妇一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产无套粉嫩白浆在线 | 免费男性肉肉影院 | 亚洲区欧美区综合区自拍区 | 无套内射视频囯产 | 国产精品久久久久影院嫩草 | 国产精品毛片一区二区 | 99精品无人区乱码1区2区3区 | 日韩精品无码一本二本三本色 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品内射视频免费 | 青青青手机频在线观看 | 99久久人妻精品免费一区 | 日本大乳高潮视频在线观看 | 欧美大屁股xxxxhd黑色 | 国内精品人妻无码久久久影院 | 露脸叫床粗话东北少妇 | 国产精品对白交换视频 | 日韩少妇白浆无码系列 | 无码av最新清无码专区吞精 | 亚洲区小说区激情区图片区 | 激情爆乳一区二区三区 | 无码福利日韩神码福利片 | 大肉大捧一进一出视频出来呀 | 中文字幕人妻无码一区二区三区 | 精品国产麻豆免费人成网站 | 亚洲日韩精品欧美一区二区 | 欧美精品一区二区精品久久 | 久久人人爽人人人人片 | 大肉大捧一进一出好爽视频 | 久久人妻内射无码一区三区 | 波多野结衣乳巨码无在线观看 | 精品欧美一区二区三区久久久 | 亚洲aⅴ无码成人网站国产app | 水蜜桃色314在线观看 | 亚洲国产精品无码久久久久高潮 | 午夜无码人妻av大片色欲 | 欧美成人高清在线播放 | 国产特级毛片aaaaaa高潮流水 | 国产xxx69麻豆国语对白 | 午夜福利电影 | 欧美丰满少妇xxxx性 | 一本久久a久久精品vr综合 | 人妻中文无码久热丝袜 | 精品无码av一区二区三区 | 久久无码专区国产精品s | 狂野欧美性猛xxxx乱大交 | а√天堂www在线天堂小说 | 亚洲精品一区三区三区在线观看 | 国产精品a成v人在线播放 | 亚洲另类伦春色综合小说 | 国产成人人人97超碰超爽8 | 丰满护士巨好爽好大乳 | 成人性做爰aaa片免费看 | 思思久久99热只有频精品66 | 日本饥渴人妻欲求不满 | 亚洲a无码综合a国产av中文 | 欧美人与善在线com | 成人动漫在线观看 | 久久精品中文字幕大胸 | 丰满少妇女裸体bbw | 久久综合色之久久综合 | 久久久www成人免费毛片 | 欧美激情内射喷水高潮 | 任你躁在线精品免费 | 大色综合色综合网站 | 精品国精品国产自在久国产87 | 日韩视频 中文字幕 视频一区 | 中文字幕乱码中文乱码51精品 | 三级4级全黄60分钟 | 亚洲色www成人永久网址 | 久久成人a毛片免费观看网站 | 在线天堂新版最新版在线8 | 性欧美videos高清精品 | 一本色道婷婷久久欧美 | 国产精品无码成人午夜电影 | 久久精品人人做人人综合 | 久久精品中文字幕大胸 | 欧美三级不卡在线观看 | 精品无码av一区二区三区 | 国产色xx群视频射精 | 色一情一乱一伦一视频免费看 | 国产成人无码区免费内射一片色欲 | 中文字幕日产无线码一区 | 丰满诱人的人妻3 | 麻豆果冻传媒2021精品传媒一区下载 | 粉嫩少妇内射浓精videos | 日本高清一区免费中文视频 | 国产精品久久久久无码av色戒 | 亚洲狠狠色丁香婷婷综合 | 欧美国产日韩久久mv | 午夜男女很黄的视频 | 亚洲国产精品久久人人爱 | 中文字幕精品av一区二区五区 | 久久久久久av无码免费看大片 | 大肉大捧一进一出视频出来呀 | 国产午夜精品一区二区三区嫩草 | 亚洲天堂2017无码 | 激情内射日本一区二区三区 | 亚洲精品久久久久中文第一幕 | 一区二区三区乱码在线 | 欧洲 | 鲁大师影院在线观看 | 亚洲一区二区三区在线观看网站 | 中国大陆精品视频xxxx | 国产精品第一区揄拍无码 | √天堂中文官网8在线 | 免费观看又污又黄的网站 | 成人亚洲精品久久久久软件 | 人人妻人人澡人人爽人人精品浪潮 | 水蜜桃亚洲一二三四在线 | 久久zyz资源站无码中文动漫 | 狂野欧美性猛xxxx乱大交 | 国产网红无码精品视频 | 亚洲va中文字幕无码久久不卡 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产乱子伦视频在线播放 | 国产精品毛片一区二区 | 亚洲精品欧美二区三区中文字幕 | 装睡被陌生人摸出水好爽 | 亚洲а∨天堂久久精品2021 | 欧美刺激性大交 | 俄罗斯老熟妇色xxxx | 特黄特色大片免费播放器图片 | 真人与拘做受免费视频一 | 国产一区二区三区精品视频 | 久久国产自偷自偷免费一区调 | 三上悠亚人妻中文字幕在线 | 国产亚洲日韩欧美另类第八页 | 欧美性生交活xxxxxdddd | 国产电影无码午夜在线播放 | 高潮毛片无遮挡高清免费视频 | 全球成人中文在线 | 三上悠亚人妻中文字幕在线 | 伊人色综合久久天天小片 | 国产精品久久久午夜夜伦鲁鲁 | 波多野结衣av一区二区全免费观看 | 国内老熟妇对白xxxxhd | 免费播放一区二区三区 | 日本精品少妇一区二区三区 | 俺去俺来也www色官网 | 久久zyz资源站无码中文动漫 | 成人毛片一区二区 | 无码国内精品人妻少妇 | 色综合久久88色综合天天 | 欧美黑人巨大xxxxx | 无码帝国www无码专区色综合 | 国产九九九九九九九a片 | 天天做天天爱天天爽综合网 | 国产亚洲美女精品久久久2020 | 亚洲综合伊人久久大杳蕉 | 97夜夜澡人人爽人人喊中国片 | 一本大道伊人av久久综合 | 国产精品鲁鲁鲁 | 三上悠亚人妻中文字幕在线 | 国产成人无码区免费内射一片色欲 | 一本色道久久综合狠狠躁 | 中文字幕无码日韩欧毛 | 国产精品人人妻人人爽 | 丰满人妻被黑人猛烈进入 | 老头边吃奶边弄进去呻吟 | 日韩人妻系列无码专区 | 国产精品对白交换视频 | 国产色在线 | 国产 | 精品国产av色一区二区深夜久久 | 麻豆av传媒蜜桃天美传媒 | 欧美放荡的少妇 | 国产av剧情md精品麻豆 | 中文字幕无码免费久久99 | 免费乱码人妻系列无码专区 | 久久久久亚洲精品男人的天堂 | 18禁黄网站男男禁片免费观看 | 欧美人妻一区二区三区 | 377p欧洲日本亚洲大胆 | 风流少妇按摩来高潮 | 午夜精品一区二区三区在线观看 | 亚洲国产成人av在线观看 | 无码精品国产va在线观看dvd | 久久97精品久久久久久久不卡 | 国产精品人人爽人人做我的可爱 | 亚洲色大成网站www国产 | 久久久www成人免费毛片 | 精品久久久久久人妻无码中文字幕 | 中国女人内谢69xxxxxa片 | 亚洲一区二区三区含羞草 | 欧美激情一区二区三区成人 | 久久人人爽人人爽人人片ⅴ | 国产精品久久国产精品99 | 国产深夜福利视频在线 | 日本熟妇人妻xxxxx人hd | 国产激情无码一区二区 | 3d动漫精品啪啪一区二区中 | 日本xxxx色视频在线观看免费 | 一二三四在线观看免费视频 | 久久精品中文字幕大胸 | 少妇被粗大的猛进出69影院 | 人妻少妇精品久久 | 亚洲一区二区三区国产精华液 | 亚洲色大成网站www | 丝袜人妻一区二区三区 | 精品国精品国产自在久国产87 | 国产午夜福利100集发布 | 极品尤物被啪到呻吟喷水 | 影音先锋中文字幕无码 | 免费无码一区二区三区蜜桃大 | 无码人妻少妇伦在线电影 | 精品国产青草久久久久福利 | 特级做a爰片毛片免费69 | 国产明星裸体无码xxxx视频 | 2020最新国产自产精品 | 天天av天天av天天透 | 55夜色66夜色国产精品视频 | 少妇人妻大乳在线视频 | 1000部夫妻午夜免费 | 色一情一乱一伦一区二区三欧美 | 成人精品一区二区三区中文字幕 | 国产精品99久久精品爆乳 | 成人亚洲精品久久久久软件 | 国产精品-区区久久久狼 | 午夜性刺激在线视频免费 | 亚洲欧美日韩成人高清在线一区 | 精品成人av一区二区三区 | 精品欧美一区二区三区久久久 | 国产色精品久久人妻 | 美女极度色诱视频国产 | 四虎永久在线精品免费网址 | 久青草影院在线观看国产 | 国色天香社区在线视频 | 国内精品人妻无码久久久影院蜜桃 | 国精品人妻无码一区二区三区蜜柚 | 牲欲强的熟妇农村老妇女 | av在线亚洲欧洲日产一区二区 | 丰满岳乱妇在线观看中字无码 | 亚洲精品国产精品乱码视色 | 天天综合网天天综合色 | 精品无码一区二区三区的天堂 | 亚洲成色www久久网站 | 日韩视频 中文字幕 视频一区 | аⅴ资源天堂资源库在线 | 九月婷婷人人澡人人添人人爽 | 秋霞成人午夜鲁丝一区二区三区 | a片在线免费观看 | 久久亚洲中文字幕无码 | 5858s亚洲色大成网站www | 欧美人与牲动交xxxx | 亚洲精品国产品国语在线观看 | 一本色道久久综合狠狠躁 | 国产精品二区一区二区aⅴ污介绍 | 久久精品人妻少妇一区二区三区 | 奇米影视7777久久精品人人爽 | 日本乱人伦片中文三区 | 无码人妻黑人中文字幕 | 一区二区三区乱码在线 | 欧洲 | 欧美亚洲日韩国产人成在线播放 | 欧洲熟妇色 欧美 | 粉嫩少妇内射浓精videos | 俺去俺来也在线www色官网 | 亚洲精品国产a久久久久久 | 成人免费视频视频在线观看 免费 | 2020久久香蕉国产线看观看 | 国产精品毛片一区二区 | 老熟女重囗味hdxx69 | 久久99久久99精品中文字幕 | 精品 日韩 国产 欧美 视频 | 奇米影视888欧美在线观看 | 国产农村妇女高潮大叫 | 日本丰满护士爆乳xxxx | 婷婷综合久久中文字幕蜜桃三电影 | 鲁一鲁av2019在线 | 亚洲国产精品一区二区第一页 | 麻豆精品国产精华精华液好用吗 | 亚洲精品成a人在线观看 | 伊人久久大香线焦av综合影院 | 中文字幕+乱码+中文字幕一区 | 亚洲精品久久久久avwww潮水 | 国产极品美女高潮无套在线观看 | 精品国产aⅴ无码一区二区 | 欧美性黑人极品hd | 中文字幕亚洲情99在线 | 国产又爽又黄又刺激的视频 | 欧美老人巨大xxxx做受 | 成人影院yy111111在线观看 | 亚洲成av人影院在线观看 | 日韩精品一区二区av在线 | 亚洲色成人中文字幕网站 | 国产av一区二区精品久久凹凸 | 国产亚洲tv在线观看 | 香蕉久久久久久av成人 | 少妇性l交大片 | 乱人伦人妻中文字幕无码久久网 | 国产精品久久国产精品99 | 国产深夜福利视频在线 | 亚洲男女内射在线播放 | 欧美 丝袜 自拍 制服 另类 | 亚洲精品国偷拍自产在线观看蜜桃 | 一个人看的视频www在线 | 丝袜人妻一区二区三区 | 亚洲精品一区二区三区在线 | 国产香蕉尹人综合在线观看 | 久久久久免费精品国产 | 日韩精品a片一区二区三区妖精 | 天海翼激烈高潮到腰振不止 | 粗大的内捧猛烈进出视频 | 国产女主播喷水视频在线观看 | 精品久久久中文字幕人妻 | а√天堂www在线天堂小说 | 又色又爽又黄的美女裸体网站 | 国产人妻人伦精品1国产丝袜 | 97资源共享在线视频 | 国产精品国产三级国产专播 | 久久久久99精品国产片 | 日韩av无码一区二区三区 | 丰满人妻一区二区三区免费视频 | 强辱丰满人妻hd中文字幕 | 亚洲日韩中文字幕在线播放 | 久久久成人毛片无码 | 成人av无码一区二区三区 | 一二三四在线观看免费视频 | 97se亚洲精品一区 | 国产热a欧美热a在线视频 | 国产av一区二区三区最新精品 | 国产精品久久久久无码av色戒 | 国产电影无码午夜在线播放 | 漂亮人妻洗澡被公强 日日躁 | 久久综合给合久久狠狠狠97色 | 亚洲日韩一区二区三区 | 99久久人妻精品免费二区 | 欧美性猛交内射兽交老熟妇 | 波多野结衣aⅴ在线 | 水蜜桃亚洲一二三四在线 | 18禁黄网站男男禁片免费观看 | 国产性生交xxxxx无码 | 四虎永久在线精品免费网址 | 国产97人人超碰caoprom | 亚洲国产精品一区二区美利坚 | 国精品人妻无码一区二区三区蜜柚 | 天海翼激烈高潮到腰振不止 | 黑人巨大精品欧美黑寡妇 | 人妻无码αv中文字幕久久琪琪布 | 人人妻在人人 | 国产农村乱对白刺激视频 | 亚洲区小说区激情区图片区 | 成人亚洲精品久久久久软件 | 国产特级毛片aaaaaaa高清 | 精品无人区无码乱码毛片国产 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品亚洲综合色区韩国 | 国产av人人夜夜澡人人爽麻豆 | 黑人巨大精品欧美黑寡妇 | 日韩人妻少妇一区二区三区 | 欧美日韩色另类综合 | 2020最新国产自产精品 | 中文字幕无线码免费人妻 | 成人精品视频一区二区三区尤物 | 国产精品久久国产三级国 | 六月丁香婷婷色狠狠久久 | 美女黄网站人色视频免费国产 | 国产成人一区二区三区在线观看 | 国产欧美熟妇另类久久久 | 粗大的内捧猛烈进出视频 | 曰本女人与公拘交酡免费视频 | 亚洲精品国产第一综合99久久 | 亚洲天堂2017无码中文 | 国产国语老龄妇女a片 | 国产精品99久久精品爆乳 | 国产成人精品必看 | 精品成人av一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 亚洲熟妇自偷自拍另类 | 一本久道久久综合狠狠爱 | 欧美zoozzooz性欧美 | 久久99精品久久久久久动态图 | 亚洲成熟女人毛毛耸耸多 | 丰满少妇人妻久久久久久 | 丰满肥臀大屁股熟妇激情视频 | 少妇人妻av毛片在线看 | 欧美成人家庭影院 | 久久精品国产精品国产精品污 | 亚洲a无码综合a国产av中文 |