精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java版A星算法實(shí)現(xiàn)步驟

開發(fā) 后端 算法
A星算法步驟:1.起點(diǎn)先添加到開啟列表中;2.開啟列表中有節(jié)點(diǎn)的話,取出第一個(gè)節(jié)點(diǎn),即最小F值的節(jié)點(diǎn)……

A星算法步驟:

1.起點(diǎn)先添加到開啟列表中。

2.開啟列表中有節(jié)點(diǎn)的話,取出***個(gè)節(jié)點(diǎn),即最小F值的節(jié)點(diǎn),

判斷此節(jié)點(diǎn)是否是目標(biāo)點(diǎn),是則找到了,跳出,

根據(jù)此節(jié)點(diǎn)取得八個(gè)方向的節(jié)點(diǎn),求出G,H,F(xiàn)值,

判斷每個(gè)節(jié)點(diǎn)在地圖中是否能通過,不能通過則加入關(guān)閉列表中,跳出判斷每個(gè)節(jié)點(diǎn)是否在關(guān)閉列表中,在則跳出,

判斷每個(gè)節(jié)點(diǎn)是否在開啟列表中,在則更新G值,F(xiàn)值,還更新其父節(jié)點(diǎn);不在則將其添加到開啟列表中,計(jì)算G值,H值,F(xiàn)值,添加其節(jié)點(diǎn)。

3.把此節(jié)點(diǎn)從開啟列表中刪除,再添加到關(guān)閉列表中。

4.把開啟列表中按照F值最小的節(jié)點(diǎn)進(jìn)行排序,最小的F值在***個(gè)。

5.重復(fù)2,3,4步驟,

直到目標(biāo)點(diǎn)在開啟列表中,即找到了;目標(biāo)點(diǎn)不在開啟列表中,開啟列表為空,即沒找到。

  1. //A*算法public class AStar {  
  2.     private int[][] map;//地圖(1可通過 0不可通過)  
  3.     private List<Node> openList;//開啟列表  
  4.     private List<Node> closeList;//關(guān)閉列表  
  5.     private final int COST_STRAIGHT = 10;//垂直方向或水平方向移動(dòng)的路徑評分  
  6.     private final int COST_DIAGONAL = 14;//斜方向移動(dòng)的路徑評分  
  7.     private int row;//行  
  8.     private int column;//列  
  9.         public AStar(int[][] map,int row,int column){  
  10.         this.map=map;  
  11.         this.row=row;  
  12.         this.column=column;  
  13.         openList=new ArrayList<Node>();  
  14.         closeList=new ArrayList<Node>();  
  15.     }  
  16.         //查找坐標(biāo)(-1:錯(cuò)誤,0:沒找到,1:找到了)  
  17.     public int search(int x1,int y1,int x2,int y2){  
  18.         if(x1<0||x1>=row||x2<0||x2>=row||y1<0||y1>=column||y2<0||y2>=column){  
  19.               
  20. return -1;  
  21.         }  
  22.         if(map[x1][y1]==0||map[x2][y2]==0){            return -1;  
  23.         }  
  24.         Node sNode=new Node(x1,y1,null);  
  25.         Node eNode=new Node(x2,y2,null);        openList.add(sNode);  
  26.         List<Node> resultList=search(sNode, eNode);  
  27.         if(resultList.size()==0){  
  28.             return 0;  
  29.         }  
  30.         for(Node node:resultList){  
  31.             map[node.getX()][node.getY()]=-1;  
  32.         }  
  33.         return 1;  
  34.     }  
  35.         //查找核心算法  
  36.     private List<Node> search(Node sNode,Node eNode){  
  37.         List<Node> resultList=new ArrayList<Node>();  
  38.         boolean isFind=false;  
  39.         Node node=null;  
  40.         while(openList.size()>0){  
  41.             //取出開啟列表中***F值,即***個(gè)存儲的值的F為***的  
  42.             node=openList.get(0);  
  43.             //判斷是否找到目標(biāo)點(diǎn)  
  44.             if(node.getX()==eNode.getX()&&node.getY()==eNode.getY()){  
  45.                 isFind=true;  
  46.                 break;  
  47.             }  
  48.             //上  
  49.             if((node.getY()-1)>=0){                checkPath(node.getX(),node.getY()-1,node, eNode, COST_STRAIGHT);  
  50.             }  
  51.             //下  
  52.             if((node.getY()+1)<column){  
  53.                 checkPath(node.getX(),node.getY()+1,node, eNode, COST_STRAIGHT);  
  54.             }  
  55.             //左  
  56.             if((node.getX()-1)>=0){  
  57.                 checkPath(node.getX()-1,node.getY(),node, eNode, COST_STRAIGHT);  
  58.             }  
  59.             //右  
  60.             if((node.getX()+1)<row){  
  61.                 checkPath(node.getX()+1,node.getY(),node, eNode, COST_STRAIGHT);  
  62.             }  
  63.             //左上  
  64.             if((node.getX()-1)>=0&&(node.getY()-1)>=0){  
  65.                 checkPath(node.getX()-1,node.getY()-1,node, eNode, COST_DIAGONAL);  
  66.             }  
  67.             //左下  
  68.             if((node.getX()-1)>=0&&(node.getY()+1)<column){  
  69.                 checkPath(node.getX()-1,node.getY()+1,node, eNode,COST_DIAGONAL);  
  70.             }  
  71.             //右上  
  72.             if((node.getX()+1)<row&&(node.getY()-1)>=0){                checkPath(node.getX()+1,node.getY()-1,node, eNode, COST_DIAGONAL);  
  73.             }  
  74.             //右下  
  75.             if((node.getX()+1)<row&&(node.getY()+1)<column){  
  76.                 checkPath(node.getX()+1,node.getY()+1,node, eNode, COST_DIAGONAL);  
  77.             }  
  78.             //從開啟列表中刪除  
  79.             //添加到關(guān)閉列表中  
  80.             closeList.add(openList.remove(0));  
  81.             //開啟列表中排序,把F值***的放到***端            Collections.sort(openList, new NodeFComparator());  
  82.         }  
  83.         if(isFind){  
  84.             getPath(resultList, node);  
  85.         }  
  86.         return resultList;  
  87.     }  
  88.         //查詢此路是否能走通  
  89.     private boolean checkPath(int x,int y,Node parentNode,Node eNode,int cost){  
  90.         Node node=new Node(x, y, parentNode);  
  91.         //查找地圖中是否能通過  
  92.         if(map[x][y]==0){  
  93.             closeList.add(node);  
  94.             return false;  
  95.         }  
  96.         //查找關(guān)閉列表中是否存在  
  97.         if(isListContains(closeList, x, y)!=-1){  
  98.             return false;  
  99.         }  
  100.         //查找開啟列表中是否存在  
  101.         int index=-1;  
  102.         if((index=isListContains(openList, x, y))!=-1){  
  103.             //G值是否更小,即是否更新G,F(xiàn)值  
  104.             if((parentNode.getG()+cost)<openList.get(index).getG()){  
  105.                 node.setParentNode(parentNode);  
  106.                 countG(node, eNode, cost);  
  107.                 countF(node);  
  108.                 openList.set(index, node);  
  109.             }  
  110.         }else{  
  111.             //添加到開啟列表中  
  112.             node.setParentNode(parentNode);            count(node, eNode, cost);  
  113.             openList.add(node);  
  114.         }  
  115.         return true;  
  116.     }  
  117.         //集合中是否包含某個(gè)元素(-1:沒有找到,否則返回所在的索引)  
  118.     private int isListContains(List<Node> list,int x,int y){  
  119.         for(int i=0;i<list.size();i++){  
  120.             Node node=list.get(i);  
  121.             if(node.getX()==x&&node.getY()==y){  
  122.                 return i;  
  123.             }  
  124.         }  
  125.         return -1;  
  126.     }  
  127.         //從終點(diǎn)往返回到起點(diǎn)  
  128.     private void getPath(List<Node> resultList,Node node){  
  129.         if(node.getParentNode()!=null){            getPath(resultList, node.getParentNode());  
  130.         }  
  131.         resultList.add(node);  
  132.     }  
  133.         //計(jì)算G,H,F值  
  134.     private void count(Node node,Node eNode,int cost){  
  135.         countG(node, eNode, cost);  
  136.         countH(node, eNode);  
  137.         countF(eNode);  
  138.     }  
  139.     //計(jì)算G值  
  140.     private void countG(Node node,Node eNode,int cost){  
  141.         if(node.getParentNode()==null){  
  142.             node.setG(cost);  
  143.         }else{  
  144.             node.setG(node.getParentNode().getG()+cost);  
  145.         }  
  146.     }  
  147.     //計(jì)算H值  
  148.     private void countH(Node node,Node eNode){  
  149.         node.setF(Math.abs(node.getX()-eNode.getX())+Math.abs(node.getY()-eNode.getY()));  
  150.     }  
  151.     //計(jì)算F值  
  152.     private void countF(Node node){  
  153.         node.setF(node.getG()+node.getF());  
  154.     }  
  155.     }//節(jié)點(diǎn)類class Node {  
  156.     private int x;//X坐標(biāo)  
  157.     private int y;//Y坐標(biāo)  
  158.     private Node parentNode;//父類節(jié)點(diǎn)  
  159.     private int g;//當(dāng)前點(diǎn)到起點(diǎn)的移動(dòng)耗費(fèi)  
  160.     private int h;//當(dāng)前點(diǎn)到終點(diǎn)的移動(dòng)耗費(fèi),即曼哈頓距離|x1-x2|+|y1-y2|(忽略障礙物)  
  161.     private int f;//f=g+h  
  162.         public Node(int x,int y,Node parentNode){        this.x=x;  
  163.         this.y=y;  
  164.         this.parentNode=parentNode;  
  165.     }  
  166.         public int getX() {  
  167.         return x;  
  168.     }  
  169.     public void setX(int x) {  
  170.         this.x = x;  
  171.     }  
  172.     public int getY() {  
  173.         return y;  
  174.     }  
  175.     public void setY(int y) {  
  176.         this.y = y;  
  177.     }  
  178.     public Node getParentNode() {  
  179.         return parentNode;  
  180.     }  
  181.     public void setParentNode(Node parentNode) {  
  182.         this.parentNode = parentNode;  
  183.     }  
  184.     public int getG() {  
  185.         return g;  
  186.     }  
  187.     public void setG(int g) {  
  188.         this.g = g;  
  189.     }  
  190.     public int getH() {  
  191.         return h;  
  192.     }  
  193.     public void setH(int h) {  
  194.         this.h = h;  
  195.     }  
  196.     public int getF() {  
  197.         return f;  
  198.     }  
  199.     public void setF(int f) {  
  200.         this.f = f;  
  201.     }}//節(jié)點(diǎn)比較類class NodeFComparator implements Comparator<Node>{  
  202.     @Override 
  203.     public int compare(Node o1, Node o2) {  
  204.         return o1.getF()-o2.getF();  
  205.     }  
  206.     }  

 測試類:

  1. public class Test {  
  2.         public static void main(String[] args){
  3.         int[][] map=new int[][]{
  4. // 地圖數(shù)組
  5.                 {1,1,1,1,1,1,1,1,1,1},
  6.                 {1,1,1,1,0,1,1,1,1,1},
  7.                 {1,1,1,1,0,1,1,1,1,1},
  8.                 {1,1,1,1,0,1,1,1,1,1},
  9.                 {1,1,1,1,0,1,1,1,1,1},
  10.                 {1,1,1,1,0,1,1,1,1,1}  
  11.         };  
  12.         AStar aStar=new AStar(map, 610);  
  13.         int flag=aStar.search(4038);  
  14.         if(flag==-1){  
  15.             System.out.println("傳輸數(shù)據(jù)有誤!");  
  16.         }else if(flag==0){  
  17.             System.out.println("沒找到!");  
  18.         }else{  
  19.             for(int x=0;x<6;x++){  
  20.                 for(int y=0;y<10;y++){
  21.                     if(map[x][y]==1){
  22.                         System.out.print(" ");
  23.                     }else if(map[x][y]==0){
  24.                         System.out.print("〓");
  25.                     }else if(map[x][y]==-1){
  26.                         System.out.print("※");  
  27.                     }  
  28.                 }  
  29.                 System.out.println();  
  30.             }  
  31.         }  
  32.     }} 

原文鏈接:http://www.cnblogs.com/xmmdream/archive/2011/12/12/2284627.html

【編輯推薦】

  1. Tomcat運(yùn)行Java Web內(nèi)存溢出總結(jié)
  2. Java NIO如何處理慢速的連接
  3. Java數(shù)據(jù)緩存實(shí)現(xiàn)的核心機(jī)制
  4. Java與Cobol對決:Cobol軟件質(zhì)量最過硬
  5. Java NIO類庫關(guān)系圖解
責(zé)任編輯:林師授 來源: 塵鋒的博客
相關(guān)推薦

2020-05-19 14:27:10

GitHubPythonAI算法

2011-04-20 10:58:34

Java

2020-08-21 13:41:04

代碼開發(fā)工具

2023-06-13 06:51:09

Spark機(jī)器學(xué)習(xí)回歸

2019-08-12 08:43:53

GitHub代碼開發(fā)者

2010-06-08 10:34:23

opensuse 10

2011-10-17 10:15:12

iMessageChatON三星

2018-03-07 15:27:57

三星筆記本

2010-06-04 16:47:49

實(shí)現(xiàn)Hadoop

2010-06-09 11:05:48

Opensuse安裝m

2010-06-09 09:33:41

Opensuse硬盤

2023-06-25 07:42:02

2015-07-29 10:31:16

Java緩存算法

2017-02-09 16:16:24

Java負(fù)載均衡算法

2020-04-14 15:00:04

PyTorchGitHub檢測

2010-09-09 08:52:19

JavascriptDIV

2010-07-22 13:23:46

telnet SMTP

2009-10-09 16:40:45

RHEL5安裝

2010-04-06 16:36:55

Oracle綁定變量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产乱色在线观看| 久久久老熟女一区二区三区91| 国产经典自拍视频在线观看| 麻豆精品网站| 久久国产精品影视| 国产偷人妻精品一区| 日韩综合av| 精品国产乱码久久久久久虫虫漫画 | 日本一级一片免费视频| av中字幕久久| 精品国产乱码久久久久久牛牛| 日韩一级免费在线观看| 在线观看电影av| 2023国产精品自拍| www.av一区视频| 一区精品在线观看| 亚洲免费综合| 欧美激情videoshd| 国产jizz18女人高潮| 美女视频亚洲色图| 日韩亚洲欧美综合| 在线观看免费的av| 大胆人体一区二区| 亚洲高清久久久| 婷婷亚洲婷婷综合色香五月| 国产av无码专区亚洲av麻豆| 蜜桃av一区二区三区电影| 国内精品模特av私拍在线观看| 91n在线视频| 奇米777国产一区国产二区| 欧美日本国产视频| 欧美污视频网站| 天堂av最新在线| 亚洲视频综合在线| 日韩精品资源| 免费在线视频你懂得| 国产91在线观看丝袜| 欧美激情日韩图片| 综合五月激情网| 天天影视欧美综合在线观看| 国产一区二区黑人欧美xxxx| 岛国精品资源网站| 精品日产乱码久久久久久仙踪林| 日韩欧美你懂的| 永久av免费在线观看| 国产伊人久久| 欧美日韩一区二区在线观看| 成人亚洲视频在线观看| 手机av在线| 亚洲精品久久嫩草网站秘色| 在线观看日韩羞羞视频| 一级毛片视频在线观看| 中文字幕第一区第二区| 麻豆av一区二区三区| 色播色播色播色播色播在线 | caopo在线| 亚洲人成精品久久久久久 | 欧美成人国产精品一区二区| 久久黄色影视| 亚洲精品电影网| 久久性爱视频网站| 麻豆一区二区麻豆免费观看| 亚洲国产91精品在线观看| 久久久久成人精品无码中文字幕| 天堂一区二区三区四区| 亚洲少妇激情视频| 女人裸体性做爰全过| 久久免费精品视频在这里| 波霸ol色综合久久| 欧洲第一无人区观看| 国产精品xvideos88| 午夜精品一区二区三区在线 | 欧美吞精做爰啪啪高潮| 免费看污黄网站| 97色婷婷成人综合在线观看| 欧美夫妻性生活| 成人av毛片在线观看| 亚洲伊人精品酒店| 日韩视频中午一区| 国产精品日日摸夜夜爽| 亚洲福利合集| 国产视频精品在线| 麻豆视频免费在线播放| 99国产**精品****| 国内外成人免费激情在线视频 | 欧美日韩大陆在线| 免费在线观看污网站| 91欧美日韩在线| 亚洲偷熟乱区亚洲香蕉av| 欧美一级片在线视频| 激情婷婷欧美| 欧美一区第一页| 精品国产一区a| 日韩欧美xxxx| vam成人资源在线观看| 精品少妇一区二区| 性高潮久久久久久久| 欧美激情精品久久久久久大尺度| www.日本高清| 国产成人ay| 久久国产加勒比精品无码| 色婷婷在线观看视频| 日本不卡高清视频| 97av自拍| 成人精品一区二区三区免费| 一区二区三区四区亚洲| 成人一对一视频| 欧美视频精品| 欧美岛国在线观看| 女人裸体性做爰全过| 精品福利电影| 成人免费网站在线看| 日本视频在线观看一区二区三区| 中文字幕一区二区三区不卡在线| 人妻精品无码一区二区三区| 中文字幕在线免费观看视频| 制服丝袜日韩国产| 青青草视频成人| 黄色av成人| 91久久国产婷婷一区二区| 青青青手机在线视频观看| 国产精品久久久久久久第一福利| 欧美牲交a欧美牲交aⅴ免费真 | www.黄色网| 成人在线免费视频观看| 欧美整片在线观看| 精品人妻一区二区三区三区四区 | 成人激情校园春色| 亚洲国产一区二区精品视频 | 国产精品成人品| 亚洲欧美另类综合| 一区二区三区四区中文字幕| 亚洲怡红院在线| 欧美猛男做受videos| 51午夜精品视频| 欧美视频在线观看一区二区三区| 国产女同性恋一区二区| 日本黄网站免费| 日本久久伊人| 欧美理论片在线观看| 国产xxxx孕妇| 亚洲色图清纯唯美| 污污的视频免费观看| 91精品啪在线观看国产18| 国产精品美女视频网站| 97视频精彩视频在线观看| 在线观看亚洲精品视频| av黄色在线免费观看| 可以免费看不卡的av网站| 欧美一进一出视频| 国产成人精品一区二三区在线观看| 亚洲色图15p| 天堂网av手机版| 久久综合国产精品| 青青草原成人网| 国产精品一在线观看| 国产成人在线播放| www.成人.com| 911精品国产一区二区在线| 免费成人美女女在线观看| 视频一区国产视频| 日韩免费电影一区二区| 日韩成人一区| 欧美精品一二区| 亚洲精品国产手机| 五月天激情小说综合| 波多野结衣影院| 国产欧美二区| 亚洲黄色一区二区三区| 久久精品 人人爱| 欧美成年人视频网站| 乱精品一区字幕二区| 香蕉成人伊视频在线观看| 美女脱光内衣内裤| 久久福利资源站| www.日本在线视频| 亚洲黄页网站| 国产精品igao视频| 国产一二区在线| 亚洲成色777777女色窝| 91午夜视频在线观看| 国产免费成人在线视频| 不卡的一区二区| 国产精品丝袜xxxxxxx| 日韩片电影在线免费观看| 中文字幕成人| 91精品国产高清久久久久久| www.亚洲免费| 亚洲第一av在线| 中文字幕人妻一区二区在线视频 | 超碰成人97| 国产成+人+综合+亚洲欧洲| 成人日日夜夜| 亚洲欧美国产精品久久久久久久| 国产精品久久久久久无人区| 午夜精品久久一牛影视| 久久精品国产亚洲av麻豆| 蜜臀久久久99精品久久久久久| 国产在线观看欧美| 国内精品久久久久久久影视简单 | 国产又黄又猛又粗又爽的视频| 欧美一区网站| 日韩av一级大片| 一区二区在线视频观看| 国产精品无码专区在线观看| 97人人在线视频| 日韩中文字幕国产| 青青草在线免费视频| 欧美三级在线看| 国产成年人免费视频| 91亚洲国产成人精品一区二区三 | wwwwww在线观看| 午夜精品一区在线观看| 91porn在线视频| 久久精品视频网| 中文字幕影片免费在线观看| 精品亚洲欧美一区| 色婷婷狠狠18| 免费日韩av片| www..com日韩| 中文在线日韩| 在线视频不卡一区二区三区| 精品国产一区二区三区香蕉沈先生| 国产精品加勒比| 欧美一区在线观看视频| 91在线观看免费观看| 91综合国产| 性欧美xxxx| 日本性爱视频在线观看| 久久香蕉国产线看观看网| 在线日本中文字幕| 中文字幕亚洲一区在线观看| 可以直接在线观看的av| 亚洲女人天堂色在线7777| 亚洲色偷精品一区二区三区| 精品福利一区二区三区免费视频| 国产精品久久久久久久免费| 欧美日韩视频一区二区| 又色又爽又黄无遮挡的免费视频| 在线免费观看视频一区| 波多野结衣一区二区三区在线 | 久久人妻精品白浆国产| 亚洲永久免费精品| 国产精品无码人妻一区二区在线| 狠久久av成人天堂| www.日本在线播放| 亚洲免费影视| 激情视频综合网| 日本成人中文字幕| 欧美日韩第二页| 日韩极品在线观看| 日韩大片一区二区| 美女在线观看视频一区二区| 少妇性饥渴无码a区免费| 久久免费国产| 日韩 欧美 高清| 麻豆国产一区二区| 99中文字幕在线| 国产成人免费av在线| 奇米777第四色| www.日韩精品| 大尺度做爰床戏呻吟舒畅| a在线欧美一区| 五月天精品视频| 中文字幕亚洲在| 韩国一级黄色录像| 亚洲免费资源在线播放| 久久精品www人人爽人人| 天天综合天天做天天综合| 亚洲图片在线视频| 色综合色狠狠天天综合色| 久久一区二区三区视频| 91福利在线导航| 欧美性受xxx黑人xyx性爽| 欧美日韩国产成人在线91| 国产黄色片免费| 亚洲第一网站男人都懂| 国产永久av在线| 久久精品男人天堂| 日本在线视频中文有码| 欧美一级在线亚洲天堂| a一区二区三区亚洲| 激情伦成人综合小说| 国产一区二区三区网| 一区二区日本伦理| 亚洲黄色免费| 黄色三级视频片| 国产成人精品免费一区二区| 亚洲av成人片无码| 国产精品久线观看视频| 日韩免费不卡视频| 欧美日韩精品福利| 亚洲 美腿 欧美 偷拍| 久久精品人人爽| 视频二区不卡| 国产精品区一区| 久久99国产精品视频| 国产日韩第一页| 136国产福利精品导航网址| 欧美三级理论片| 91麻豆swag| 国产美女久久久久久| 欧美性猛交xxxx乱大交极品| www.天天干.com| 视频直播国产精品| 超碰高清在线| 91av一区二区三区| 色琪琪久久se色| 自慰无码一区二区三区| 国产精品亚洲成人| 能直接看的av| 日韩欧美亚洲综合| 国产精品爽爽久久久久久| 亚洲欧洲午夜一线一品| 蜜臀av在线| 成人日韩av在线| 深爱激情综合网| 六月婷婷激情网| 狠狠色综合日日| 中文字幕av一区二区三区人妻少妇| 国产日韩一级二级三级| 五月天婷婷网站| 欧美r级电影在线观看| 欧美性videos| 性色av一区二区三区红粉影视| 亚洲五码在线| 久久久无码中文字幕久...| 另类专区欧美蜜桃臀第一页| 日本精品在线观看视频| 色综合天天综合| 免费在线国产| 欧美一级高清免费| 思热99re视热频这里只精品| 欧美激情亚洲天堂| 国产精品亚洲专一区二区三区| 韩国一级黄色录像| 欧美午夜影院一区| 国产鲁鲁视频在线观看免费| 91成人国产在线观看| 免费福利视频一区| 免费在线观看视频a| 波多野结衣在线一区| 久久久久久久久久99| 精品国产欧美一区二区| 女囚岛在线观看| 147欧美人体大胆444| 综合一区二区三区| 免费黄视频在线观看| 国产精品国产自产拍在线| 国产一区二区女内射| 久久中文字幕视频| 欧美jizz18| 伊人婷婷久久| 国产麻豆视频精品| 亚洲精品成人av久久| 在线播放91灌醉迷j高跟美女 | 黄色三级中文字幕| 国产91精品精华液一区二区三区 | 色综合久久久久久久久久久| 亚洲日本国产精品| 国产精品久久久久久久久久三级| 国产一区二区电影在线观看| 男女视频在线看| 亚洲欧美日韩在线不卡| 欧美视频一二区| 国产成人精品免费视频| 五月开心六月丁香综合色啪| 国产一精品一aⅴ一免费| 精品久久久在线观看| 国产对白叫床清晰在线播放| 成人乱色短篇合集| 欧美日韩一区二区三区四区在线观看| 91香蕉视频免费看| 午夜一区二区三区在线观看| 亚洲色图欧美视频| 国产精品久久久久久一区二区| 国内黄色精品| 国产无套精品一区二区三区| 欧美午夜宅男影院在线观看| 九色视频成人自拍| 国产精品九九九| 国产一区二区三区四区老人| 一本色道久久综合亚洲精品图片 | 婷婷色在线观看| 国产精品私拍pans大尺度在线| 久久国产电影| 亚洲色偷偷色噜噜狠狠99网| 色视频欧美一区二区三区| 欧美日韩在线精品一区二区三区激情综 | 18精品爽视频在线观看| 亚洲人成毛片在线播放| 精品国产三级| 波多野结衣av一区二区全免费观看 | 91精品久久| 欧美三级网色| 国产一区二区三区黄视频| 久久亚洲天堂网| 久久九九亚洲综合| 精品毛片免费观看| 老司机免费视频|