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

鴻蒙基于WiFi IoT套件開發的猜數字小游戲代碼分享

系統
猜數字是一個很經典的小游戲,也是編程開發入門的典型,以下為基于WiFi IoT套件開發的猜數字小游戲的具體開發過程和效果。

猜數字是一個很經典的小游戲,也是編程開發入門的典型,以下為基于WiFi IoT套件開發的猜數字小游戲的具體開發過程和效果。

基本規則:

由甲方(玩家)默想一個1-99(包含)內的任意數字(整數),然后由乙方進行猜測,并詢問甲方猜測的數字是大了還是小了,甲方根據實際情況進行回復,則乙方最多問6個問題,就一定能夠猜中甲方默想的數字。

基本原理:

乙方問最多6次,包括最后一次說出猜中的數字,實際上乙方最多有7次猜測的機會。

而使用二分進行查找,2^7=128,則99以內的數字,完全可以覆蓋,因此乙方絕對可以猜中。

實現概述:

以上的基本規則和基本原理明確了,我們要在WiFi IoT套件上實現,并且甲方需要參與,需要處理以下三個部分:

  1. 猜數字的主邏輯
  2. 使用OLED屏幕顯示提示信息,讓玩家進行互動操作:我們需要在屏幕上顯示漢字,進行玩家當前猜測的數字,以及玩家按鍵后告知玩家結果
  3. 使用按鍵接收玩家操作(大了或者小了等):在這個實例中,我們使用了ADC方式來讀取按鍵信息,從而獲得玩家具體操作。所使用的按鍵為核心板上的USR按鍵,和OLED板上的S1,S2按鍵。使用ADC方式讀取的時候,他們所使用的輸入端口為GPIO5/ADC2,具體的按鍵作用如下:
  • USR:開始游戲,或者確認
  • S1:如果猜小了,則玩家按S1告知
  • S2:如果猜大了,則玩家按S2告知

原始代碼修改處理:【代碼基礎為code-1.0.tar.gz】

  • 開啟I2C:vendor/hisi/hi3861/hi3861/build/config/usr_config.mk
  1. ## BSP Settings 
  2. # CONFIG_I2C_SUPPORT is not set 
  3. CONFIG_I2C_SUPPORT=y 
  4. # CONFIG_I2S_SUPPORT is not set​ 
  •  I2C復用端口設置:vendor/hisi/hi3861/hi3861/app/wifiiot_app/init/app_io_init.c
  1. #ifdef CONFIG_I2C_SUPPORT 
  2.     /* I2C IO復用也可以選擇3/4; 9/10,根據產品設計選擇 */ 
  3.     // hi_io_set_func(HI_IO_NAME_GPIO_0, HI_IO_FUNC_GPIO_0_I2C1_SDA); 
  4.     // hi_io_set_func(HI_IO_NAME_GPIO_1, HI_IO_FUNC_GPIO_1_I2C1_SCL); 
  5.     hi_io_set_func(HI_IO_NAME_GPIO_13, HI_IO_FUNC_GPIO_13_I2C0_SDA); 
  6.     hi_io_set_func(HI_IO_NAME_GPIO_14, HI_IO_FUNC_GPIO_14_I2C0_SCL); 
  7. #endif​ 

 主邏輯代碼:guess.c

  1. #include <stdio.h> 
  2. #include <unistd.h> 
  3.  
  4. #include <ohos_init.h> 
  5. #include <cmsis_os2.h> 
  6. #include <hiview_config.h> 
  7. #include <hiview_log.h> 
  8. #include <wifiiot_watchdog.h> 
  9. #include <hi_task.h> 
  10.  
  11. #include "button/button.h" 
  12. #include "oled/oled.h" 
  13.  
  14. /* 
  15. 0123456789 
  16. 請在心中默想一個1~99的整數,我能在6個問題之內猜出這個數 
  17. 想好了就按【USER】開始游戲吧,【RST】重啟 
  18. 小了按【S1】,大了按【S2】,正確按【USER】 
  19. 第?個問題,是這個數嗎:?? 
  20. 大了啊!那我再猜小一點 
  21. 小了??!那我再猜大一點 
  22. 哈哈,我猜到了吧! 
  23. 按【USER】再玩一次(請先默想一個1~99的整數) 
  24. 你默想的數一定是?? 
  25.  
  26. //  開始:0,長度10 
  27. //  開始:10,長度30 
  28. //  開始:40,長度24 
  29. //  開始:64,長度25 
  30. //  開始:89,長度14 
  31. //  開始:103,長度11 
  32. //  開始:114,長度11 
  33. //  開始:125,長度9 
  34. //  開始:134,長度26 
  35. //  開始:160,長度10 
  36. */ 
  37. char *str[] = { 
  38.     "0123456789"
  39.     "請在心中默想一個1~99的整數,我能在6個問題之內猜出這個數"
  40.     "想好了就按【USER】開始游戲吧,【RST】重啟"
  41.     "小了按【S1】,大了按【S2】,正確按【USER】"
  42.     "第?個問題,是這個數嗎:??"
  43.     "大了啊!那我再猜小一點"
  44.     "小了啊!那我再猜大一點"
  45.     "哈哈,我猜到了吧!"
  46.     "按【USER】再玩一次(請先默想一個1~99的整數)"
  47.     "你默想的數一定是??" 
  48. }; 
  49.  
  50. int pos[][2] = { 
  51.     {0, 10}, 
  52.     {10, 30}, 
  53.     {40, 24}, 
  54.     {64, 25}, 
  55.     {89, 14}, 
  56.     {103, 11}, 
  57.     {114, 11}, 
  58.     {125, 9}, 
  59.     {134, 26}, 
  60.     {160, 10} 
  61. }; 
  62.  
  63. void display_string(int idx,int delay,int num1, int num2){ 
  64.     int start=0; 
  65.     int len=0; 
  66.  
  67.     start = pos[idx][0]; 
  68.     len = pos[idx][1]; 
  69.     if(idx==4 && num2==100) { 
  70.         len = len +1; 
  71.     } 
  72.     u8 no[len]; 
  73.     for(int i=0;i<len;i++){ 
  74.         no[i] = start+i; 
  75.     } 
  76.     // 4 "第?個問題,是這個數嗎:??"
  77.     if(idx==4) { 
  78.         no[1] = num1; 
  79.         if(num2==100) { 
  80.             no[len-3] = 1; 
  81.             no[len-2] = 0; 
  82.             no[len-2] = 0; 
  83.         } else { 
  84.             no[len-2] = num2/10; 
  85.             no[len-1] = num2%10; 
  86.         } 
  87.     } 
  88.     OLED_Clear(); 
  89.     OLED_ShowChineseString(0,0,no,len,16);         
  90.     usleep(delay*1000*1000);     
  91.  
  92. // 主任務 
  93. static void *GuessTask(const char *arg){ 
  94.     (void)arg; 
  95.  
  96.     gpio_button_init(); 
  97.     oled_display_init(); 
  98.  
  99.     OLED_Clear(); 
  100.     printf("請在心中默想一個1~100的整數,我能在6個問題之內猜出這個數是什么:\n"); 
  101.     display_string(1,2,0,0); 
  102.     printf("想好了就按【USER】開始游戲吧,【RST】重啟\n"); 
  103.     display_string(2,2,0,0); 
  104.     printf("小了按【S1】,大了按【S2】,正確按【USER】\n"); 
  105.     display_string(3,0,0,0); 
  106.  
  107.     key_event_t zf; //聲明char類型來存放輸入的字符 
  108.     char number; //電腦猜測的數字 
  109.  
  110.     while ((zf = gpio_button_get())!=KEY_EVENT_NONE) 
  111.     { 
  112.         // getchar();//忽略回車 
  113.         char min_shu = 1;   // 1是初始最小數。 
  114.         char max_shu = 100; // 100是初始最大數。 
  115.  
  116.         if (zf == KEY_EVENT_USER) 
  117.         { 
  118.             int jishu = 1; // 計數用的,6個問題以內嘛。 
  119.             while (1)   // 條件一直為真,死循環,能用break跳出循環,或用return跳出整個函數。 
  120.             { 
  121.                 number = (min_shu + max_shu) / 2; // 最小數和最大數的和除2 ,意思就是取它們的中間值。 
  122.                 printf("\n第%d個問題,是這個數嗎:%d", jishu, number); 
  123.                 display_string(4,0,jishu, number); 
  124.                 zf = gpio_button_get(); 
  125.                 // getchar();//忽略回車 
  126.  
  127.                 if (zf == KEY_EVENT_S2) 
  128.                 { 
  129.                     printf("\n大了啊!那我再猜小一點\n"); 
  130.                     display_string(5,2,0,0); 
  131.                     max_shu = number - 1; //如果是大了,那最大值至少比目前的數小1。 
  132.                     jishu++;              //回答次數加1 ,如果你回答了電腦6次問題,電腦還沒有猜對,那電腦就輸了。 
  133.                 } 
  134.                 if (zf == KEY_EVENT_S1) 
  135.                 { 
  136.                     printf("\n小了啊!那我再猜大一點\n"); 
  137.                     display_string(6,2,0,0); 
  138.                     min_shu = number + 1; //如果是小了,那最小值至少比目前的數大1。 
  139.                     jishu++;              //同上面,計數加1 
  140.                 } 
  141.                 if (zf == KEY_EVENT_USER) 
  142.                 { 
  143.                     // printf("y\n"); 
  144.                     printf("\n哈哈,我猜到了吧!\n"); 
  145.                     display_string(7,2,0,0); 
  146.                     printf("按【USER】再玩一次(請在心中先默想一個1~100的整數),【RST】重啟\n"); 
  147.                     display_string(8,0,0,0); 
  148.                     break; 
  149.                 } 
  150.                 if (jishu == 7) 
  151.                 { 
  152.                     printf("\n你默想的數一定是%d",(min_shu + max_shu) / 2); 
  153.                     display_string(9,2,0,0); 
  154.                     printf("\n按【USER】再玩一次(請在心中先默想一個1~100的整數),【RST】重啟\n"); 
  155.                     display_string(8,0,0,0); 
  156.                     break; 
  157.                 } 
  158.             } 
  159.         } 
  160.         else { 
  161.             printf("\n按鍵無效,請重新選擇(按【USER】開始,【RST】重啟):"); 
  162.         } 
  163.     } 
  164.     return NULL
  165.  
  166. // 程序入口 
  167. static void GuessEntry(void) 
  168.     osThreadAttr_t attr; 
  169.     WatchDogDisable(); 
  170.     SetLogLevel(HILOG_LV_ERROR); 
  171.  
  172.     attr.name = "GuessTask"
  173.     attr.attr_bits = 0U; 
  174.     attr.cb_mem = NULL
  175.     attr.cb_size = 0U; 
  176.     attr.stack_mem = NULL
  177.     attr.stack_size = 1024; 
  178.     attr.priority = osPriorityNormal; 
  179.  
  180.     if (osThreadNew((osThreadFunc_t)GuessTask, NULL, &attr) == NULL) { 
  181.         printf("[GuessNum] Falied to create GuessTask!\n"); 
  182.     } 
  183.  
  184. SYS_RUN(GuessEntry); 

主邏輯代碼說明:

因為在OLED上面顯示字符(包括漢字),需要預先取得漢字的字模點陣數據;在這個實例中,會有不同的提示語出現,且未中文,為了方便處理,我將每句話的字模點陣數據單獨取出,所以定義了str[],pos[][2],以及display_string(),用于顯示對應的語句。其最終調用oled/oled.c中的OLED_ShowChineseString()來將漢字輸出到OLED屏幕;特別的,語句4“第?個問題,是這個數嗎:??”需要處理具體數字,所以進行了特殊的處理。

獲取按鍵的部分,在button/button.c中的gpio_button_get(),代碼隨后展示,用于獲取按鍵的狀態

OLED部分代碼:【以下為oled/oled.h,oled/oled.c和字模數據oled/oledfont.h請查看附件】

  1. #ifndef __OLED_H 
  2. #define __OLED_H 
  3.  
  4.  
  5. #define OLED_MODE 0 
  6. #define SIZE 8 
  7. #define XLevelL     0x00 
  8. #define XLevelH     0x10 
  9. #define Max_Column  128 
  10. #define Max_Row     64 
  11. #define Brightness  0xFF  
  12. #define X_WIDTH     128 
  13. #define Y_WIDTH     64       
  14.  
  15.  
  16. #define OLED_CMD  0 //寫命令 
  17. #define OLED_DATA 1 //寫數據 
  18.  
  19.  
  20. #define u8 unsigned char 
  21. #define u16 unsigned short 
  22. #define u32 unsigned int 
  23.  
  24. //OLED控制用函數 
  25. void delay_ms(unsigned int ms); 
  26. void OLED_ColorTurn(u8 i); 
  27. void OLED_DisplayTurn(u8 i); 
  28. void OLED_WR_Byte(u8 dat,u8 cmd); 
  29. void OLED_Set_Pos(u8 x, u8 y); 
  30. void OLED_Display_On(void); 
  31. void OLED_Display_Off(void); 
  32. void OLED_Clear(void); 
  33. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 sizey); 
  34. u32 oled_pow(u8 m,u8 n); 
  35. void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 sizey); 
  36. void OLED_ShowString(u8 x,u8 y,char *chr,u8 sizey); 
  37. void OLED_ShowChinese(u8 x,u8 y,u8 no,u8 sizey); 
  38. void OLED_ShowChineseString(u8 x,u8 y,u8 no[],u8 length,u8 sizey); 
  39. void OLED_Direct_ShowString(u8 x,u8 y,char *chr,u8 sizey); 
  40. void OLED_DrawBMP(u8 x,u8 y,u8 sizex, u8 sizey,u8 BMP[]); 
  41. void OLED_Init(void); 
  42. void oled_display_init(void); 
  43. #endif 

 OLED漢字字模數據獲取方式:

在OLED上面顯示字符(包括漢字),本質上是描點,所以獲取對應字符的點陣數據即可。

生成字模數據的工具為PCToLCD,設置為字符模式和C51格式;這個工具還可以用于取圖片的點陣數據。

具體獲取方式如下:

按鍵部分代碼:【以下為button/button.h,button/button.c請查看附件】

  1. #ifndef __BUTTON_H 
  2. #define __BUTTON_H 
  3.  
  4. #include <hi_types_base.h> 
  5.  
  6. #define APP_DEMO_ADC 
  7. #define ADC_TEST_LENGTH 64 
  8. #define VLT_MIN 100 
  9. #define STATUS_LEN 4 
  10.  
  11. // 按鍵狀態定義 
  12. typedef enum 
  13.     KEY_EVENT_NONE = 0, 
  14.     KEY_EVENT_S1, 
  15.     KEY_EVENT_S2, 
  16.     KEY_EVENT_USER 
  17. } key_event_t; 
  18.  
  19. //獲取當前按鍵 
  20. key_event_t get_key_event(void); 
  21.  
  22. // ADC轉換 
  23. hi_void convert_to_voltage(hi_u32 data_len); 
  24.  
  25. // ADC獲取 
  26. void button_adc_test(void); 
  27.  
  28. // 設置 按鍵中斷響應 
  29. void gpio_button_init(void); 
  30.  
  31. // 獲取需要的按鍵狀態 
  32. key_event_t gpio_button_get(void); 
  33.  
  34. #endif 

 按鍵部分代碼說明:

當使用ADC方式來讀取按鍵狀態的時候,本質上,是讀取了ADC輸入端口的數據,這個數據進過一定的轉換,能夠化為對應的電壓數據。而不同的按鍵按下后,ADC端口讀取的電壓是不同的,并且是在一定范圍內波動的,對應按鍵的電壓范圍在上述vlt_val_scopes中進行了定義。我們獲取到了對應的電壓數據,然后與vlt_val_scopes每個范圍數據進行對比,從而據此得到對應的按鍵信息。

實際結果演示:

視頻地址: 鏈接: https://pan.baidu.com/s/1RtT8Wh3ZPbasJ-dK7x1QRg 提取碼: vkyh

完整代碼:

下載地址: https://pan.baidu.com/s/1RtT8Wh3ZPbasJ-dK7x1QRg 提取碼: vkyh

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2012-01-10 12:48:52

Java

2015-09-29 09:38:50

Java程序猜大小

2020-11-10 12:08:25

開發框架

2019-09-23 09:11:02

Python文本編輯器操作系統

2023-02-23 14:30:27

游戲Tcl

2023-02-13 08:26:28

猜數字Basic

2022-12-27 14:39:38

2023-01-03 15:16:27

2022-08-04 13:55:08

拼數字小游戲鴻蒙

2022-08-25 21:41:43

ArkUI鴻蒙

2020-11-13 11:53:52

4.WiFi IoT

2020-11-12 09:44:43

鴻蒙

2012-09-11 09:19:35

JavaScriptJSjQ

2021-01-12 06:42:50

Lua腳本語言編程語言

2021-10-04 18:49:46

Fortran 77語言猜數字

2020-10-30 17:57:11

鴻蒙HiSpark

2018-01-22 20:35:27

微信小游戲開發

2022-06-03 16:59:13

編程語言Awk

2022-08-22 17:28:34

ArkUI鴻蒙

2012-01-17 12:39:09

JavaSwing
點贊
收藏

51CTO技術棧公眾號

www.久久视频| 欧美 日韩 成人| 嗯~啊~轻一点视频日本在线观看| 成人性视频免费网站| 欧美自拍视频在线| 日本二区三区视频| 国产精品chinese在线观看| 色拍拍在线精品视频8848| 在线视频欧美一区| 天天操天天操天天| 蜜桃精品视频在线观看| 欧美激情在线播放| av电影网站在线观看| 欧洲精品99毛片免费高清观看| 精品久久久久久久久国产字幕| 亚洲韩国在线| 手机看片福利在线观看| 国产综合久久久久影院| 日本高清不卡的在线| 男人与禽猛交狂配| 欧美视频免费| 日韩一级完整毛片| 国产又粗又长又大的视频| av免费在线视| 亚洲欧美另类久久久精品2019| 精品无人区一区二区三区| 国产乱淫av免费| 热久久一区二区| 91成人在线播放| 黄色一级视频免费| 99久久这里只有精品| 亚洲精品小视频在线观看| 岛国大片在线免费观看| 成人在线视频观看| 色婷婷国产精品| 欧美图片激情小说| 99在线视频观看| 亚洲欧洲日产国码二区| 日韩精品在在线一区二区中文| 精品国产18久久久久久| 日韩av一级电影| 日韩av电影中文字幕| 久久久久97国产| 欧美 亚欧 日韩视频在线 | 免费观看av网站| 伊人久久大香伊蕉在人线观看热v| 色综合一区二区三区| 国产视频九色蝌蚪| 久久五月精品中文字幕| 亚洲激情图片qvod| 麻豆一区二区三区在线观看| 日本不卡在线| 国产精品久99| 中文视频一区视频二区视频三区| 中文日本在线观看| 欧美国产综合一区二区| 日韩av一区二区三区在线| 久久精品色图| 中文字幕 久热精品 视频在线 | 欧美日韩美女在线| 亚洲熟妇av日韩熟妇在线| 黄色污网站在线观看| 精品久久久视频| 日韩av资源在线| 性高爱久久久久久久久| 欧美亚洲综合一区| 天堂av8在线| 精品91福利视频| 日韩精品一区二区三区蜜臀| 97精品人妻一区二区三区蜜桃| 极品国产人妖chinesets亚洲人妖| 亚洲电影免费观看高清| 朝桐光av一区二区三区| 精品国产美女| 久久精品国产电影| 久久久国产精华液| 国产精品久久久久久久久久妞妞| 日本久久久久亚洲中字幕| 久久久久亚洲视频| 国产在线不卡一区| 国产伦精品一区二区三| 欧美日本韩国一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 在线免费观看成人| av美女在线观看| 欧美午夜一区二区三区| 香蕉视频xxxx| 日韩精品丝袜美腿| 日韩视频在线免费观看| 久草视频在线资源| 老牛嫩草一区二区三区日本 | 成人免费在线小视频| 性欧美1819sex性高清| 欧美老人xxxx18| 亚洲精品第二页| 精品香蕉视频| 欧美丰满少妇xxxxx| 日本黄色中文字幕| 国产盗摄女厕一区二区三区| 欧美裸体网站| 好看的中文字幕在线播放| 日韩欧美主播在线| 亚洲一区二区三区三州| 少妇精品久久久| 久久国产加勒比精品无码| 日韩一区二区视频在线| 蜜臀久久99精品久久久久久9| 高清不卡日本v二区在线| 国产高清免费av在线| 亚洲综合色丁香婷婷六月图片| 黄色一级一级片| 亚洲一区二区电影| 一本色道久久88综合亚洲精品ⅰ | 99免在线观看免费视频高清| 亚洲综合成人网| 中国黄色片免费看| 日韩av中文字幕一区| 久久夜精品香蕉| 一级黄色av片| av资源站一区| 国产精品无码电影在线观看| 97成人超碰| 亚洲精品视频免费| 日本免费一二三区| 国产精品一卡二卡在线观看| 亚洲一区高清| 日本另类视频| 亚洲欧美日韩网| 国产对白videos麻豆高潮| 国产美女精品一区二区三区| 视频在线99re| 另类激情视频| 精品五月天久久| 99视频在线看| 国产成人免费视频一区| 中国一级黄色录像| 日韩亚洲国产免费| 日韩中文字幕在线免费观看| 国产伦精品一区二区三区视频网站| 成人av免费观看| 日本熟妇人妻xxxx| 成人涩涩网站| 国内精品一区二区三区四区| 六月丁香综合网| 亚洲午夜精品网| 精品国产aⅴ一区二区三区东京热| 99精品在线| 91视频8mav| 国产二区三区在线| 日韩一级欧美一级| 久久久久人妻一区精品色欧美| 国产一区二区剧情av在线| 91社在线播放| 成人精品视频在线观看| 欧美刺激性大交免费视频| 99er热精品视频| 亚洲欧美国产77777| 成人三级做爰av| 韩日欧美一区| 国产在线一区二| 在线天堂资源www在线污| 亚洲人av在线影院| 欧美另类高清videos的特点| 国产精品传媒入口麻豆| 永久免费黄色片| 欧美视频导航| 精品无人乱码一区二区三区的优势 | 18禁裸男晨勃露j毛免费观看| 中文字幕区一区二区三| 久久久欧美一区二区| 头脑特工队2免费完整版在线观看| 激情懂色av一区av二区av| 免费看黄色的视频| 久久精品二区亚洲w码| 波多野结衣激情| 国产精品一区二区三区美女| 热99在线视频| 伦xxxx在线| 欧美大片一区二区| 超碰中文字幕在线| 国产精品免费av| 国模无码视频一区| 丝袜美腿高跟呻吟高潮一区| 日本黄色播放器| 国偷自产av一区二区三区| 日本欧美爱爱爱| 久草中文在线| 日韩av在线网址| 在线视频你懂得| 亚洲综合视频在线观看| 性猛交娇小69hd| 国产一区三区三区| 亚洲色成人一区二区三区小说| 99精品一区| 欧美亚州在线观看| 精品麻豆剧传媒av国产九九九| 97超级碰碰碰久久久| 欧美人xxx| 亚洲国产私拍精品国模在线观看| 日韩xxx视频| 亚洲大片在线观看| 极品美妇后花庭翘臀娇吟小说| 成人午夜视频网站| 亚欧美在线观看| 99视频在线精品国自产拍免费观看| 亚洲v国产v| 欧美三级电影在线| 成人天堂噜噜噜| 美脚恋feet久草欧美| 欧美大片网站在线观看| 最新av网站在线观看| 亚洲激情在线观看视频免费| jizz中国女人| 欧美性猛片xxxx免费看久爱| 日韩av综合在线| 亚洲欧美日韩久久| 亚洲一二三精品| 91啪亚洲精品| www.555国产精品免费| 国产在线一区观看| 中文字幕第80页| 国产亚洲永久域名| 国产精品videossex国产高清 | 亚洲色欲久久久综合网东京热| 色综合咪咪久久网| 欧美另类一区| 日韩最新在线| 国模精品娜娜一二三区| 日韩免费成人| 亚洲淫片在线视频| 成人豆花视频| 国产中文字幕91| 久久人体av| 国产精品成人在线| 欧美电影h版| 亲爱的老师9免费观看全集电视剧| 欧洲黄色一区| 欧美国产日韩免费| 日本在线视频www鲁啊鲁| 欧美成人精品h版在线观看| 日本激情在线观看| www.久久久久久.com| 成人av毛片| 自拍偷拍亚洲在线| 在线观看完整版免费| 国产亚洲欧美日韩一区二区| 国产三级在线免费| 亚洲无限av看| 香蕉视频国产在线观看| 色妞在线综合亚洲欧美| 三级外国片在线观看视频| 亚洲日本中文字幕| 成a人片在线观看www视频| 国产亚洲视频在线观看| 国产98在线| www.日韩欧美| 新版中文在线官网| 久久久欧美精品| 亚洲综合电影| 国产精品丝袜一区二区三区| 日韩在线电影| 成人免费看片网址| 狠狠一区二区三区| 欧美xxxx黑人又粗又长密月 | 99视频精品全部免费在线| 国产精品久久AV无码| 91免费国产在线| 国产av自拍一区| 中文字幕一区二区三区四区| 久久精品黄色片| 天天免费综合色| 亚洲精品一区二三区| 91精品国产美女浴室洗澡无遮挡| 午夜精品久久久久久久99| 日韩不卡中文字幕| 国产青青草在线| 久久影院资源网| 阿v视频在线观看| 国产精品一区二区三| 亚洲一区二区三区在线免费| 久久久久无码国产精品一区| 欧美在线电影| 男人添女人下部视频免费| 亚洲神马久久| 亚洲免费在线播放视频| 99久久亚洲一区二区三区青草| 国产成人一区二区在线观看| 亚洲精品久久嫩草网站秘色| 天堂а√在线中文在线新版| 欧美日韩国产一级片| 色丁香婷婷综合久久| 中文字幕欧美在线| 136福利第一导航国产在线| 国产精品嫩草影院久久久| 一区二区免费| 亚洲第一综合| 国产精品久久777777毛茸茸| 久久出品必属精品| 久久午夜电影网| 免费在线观看亚洲| 欧美三级视频在线播放| 天天干天天舔天天射| 按摩亚洲人久久| 日韩免费福利视频| 成人av免费电影| 97精品一区| 免费在线观看的av网站| 国产99久久久久| 2014亚洲天堂| 欧美性xxxx极品hd满灌| 性一交一乱一透一a级| 色妞色视频一区二区三区四区| 欧美大胆a人体大胆做受| 亚洲综合小说区| 日韩国产一区二区三区| 日韩av一二三四区| 国产.欧美.日韩| 午夜剧场免费在线观看| 在线看不卡av| 久久久资源网| 17婷婷久久www| 成人午夜网址| 免费看日b视频| 国产呦萝稀缺另类资源| 成人信息集中地| 在线亚洲人成电影网站色www| 五月激情丁香婷婷| 欧美激情综合色综合啪啪五月| 成人在线分类| 一区二区三区国| 美洲天堂一区二卡三卡四卡视频| a级大片在线观看| 欧美日韩中文字幕在线视频| 日本黄色大片视频| 欧美多人爱爱视频网站| 日韩成人在线观看视频| 无码人妻精品一区二区三区99v| 热久久一区二区| 黄色裸体一级片| 欧美麻豆精品久久久久久| 午夜伦理在线| 91精品久久久久久久久久| 日韩欧美网站| 依人在线免费视频| 国产精品久久久久一区二区三区共| 伊人久久中文字幕| 中文字幕亚洲无线码a| 成人黄色毛片| 永久久久久久| 国产在线一区观看| 久久精品www| 亚洲第一色中文字幕| 色老头在线一区二区三区| 欧美高清性xxxxhd| 日本大胆欧美人术艺术动态| 国产视频123区| 91麻豆精品国产91久久久久久 | 成人国产精品久久久久久亚洲| 日韩欧美一区免费| 91欧美一区二区三区| 亚洲精品视频在线观看免费| 亚洲av无码片一区二区三区| 久久久人成影片一区二区三区| 日韩成人午夜| 奇米影视四色在线| 亚洲精品国产视频| 男人天堂手机在线观看| 欧美做受高潮1| av一区二区在线播放| xxxx在线免费观看| 亚洲一区精品在线| 日本成人一区| 国产精品天天狠天天看| 欧美日韩中文| 成人片黄网站色大片免费毛片| 91成人在线精品| 国产原创精品视频| 国产欧美日韩一区二区三区| 久久精品综合| 欧洲第一无人区观看| 亚洲经典中文字幕| 久久爱.com| 无码人妻少妇伦在线电影| 国产午夜亚洲精品羞羞网站| 国产乱淫片视频| 青青草精品毛片| 911久久香蕉国产线看观看| 国产免费一区二区三区最新6| 在线观看中文字幕不卡| 香蕉久久aⅴ一区二区三区| 欧美日韩一区二区三区在线观看免| 久久精品国产久精国产爱| 国产精品自拍视频一区| 最近2019中文字幕一页二页| 第四色在线一区二区| 国产高潮免费视频| 亚洲成年人网站在线观看| 91高清在线| 久久综合给合久久狠狠色| 国产在线播放一区二区三区|