精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产三级一区二区三区| 亚洲日本激情| 精品日韩一区二区三区| 欧美韩国日本在线| 生活片a∨在线观看| 国产精品亚洲专一区二区三区| 欧美—级a级欧美特级ar全黄| 麻豆国产精品一区| 国产精品18| 日韩欧美中文字幕在线播放| 特级黄色录像片| 熟妇高潮一区二区高潮| 久久69国产一区二区蜜臀| 性欧美激情精品| 婷婷激情四射网| 久久97视频| 亚洲成人激情在线| www.色就是色.com| 欧美gay囗交囗交| 夜夜操天天操亚洲| 亚洲视频小说| 麻豆影视在线| eeuss影院一区二区三区| 国产日韩精品入口| 狠狠狠狠狠狠狠| 欧美网站在线| 精品国产欧美一区二区三区成人| 中国美女乱淫免费看视频| 一区二区中文字幕在线观看| 欧美日韩久久一区| 国产成人久久婷婷精品流白浆| 中文在线免费| 日韩毛片视频在线看| 亚欧精品在线| 国产最新视频在线观看| 91首页免费视频| 国产精品v欧美精品∨日韩| 国产理论片在线观看| 美国毛片一区二区| 国产精品扒开腿爽爽爽视频| 久久久久99精品成人片三人毛片| 国产精品v日韩精品v欧美精品网站 | 中文字幕一区二区三区色视频| 久久综合九九| 亚洲人妻一区二区| 91影院在线免费观看| 粉嫩av一区二区三区免费观看| a级片在线免费看| 国产在线不卡一区| 91老司机精品视频| 国产内射老熟女aaaa∵| 韩国欧美国产1区| 亚洲伊人第一页| 99热这里只有精品5| 国产揄拍国内精品对白| 91在线中文字幕| 国产免费的av| 国产精品一区二区不卡| 91久久精品国产91久久性色tv| 国产福利小视频| 国产a区久久久| 国产女人水真多18毛片18精品| 四虎免费在线观看| www国产精品av| 青青草成人激情在线| 第一福利在线| 国产精品免费久久| 干日本少妇视频| 影音先锋在线视频| 婷婷国产v国产偷v亚洲高清| 无码aⅴ精品一区二区三区浪潮 | 成人国产精品一区| 国产黄色高清视频| 成人看片黄a免费看在线| 国产一区二区三区色淫影院| 欧洲一区av| 国产精品伦理在线| 久久久久久av无码免费网站下载| 蜜臀av国内免费精品久久久夜夜| 五月天欧美精品| 99久久国产宗和精品1上映| 久久亚洲国产精品尤物| 日韩久久免费av| 日韩乱码人妻无码中文字幕久久| 精品欧美久久| 欧美成人四级hd版| 91视频免费网址| 免费欧美日韩国产三级电影| 91在线观看网站| 三级黄视频在线观看| 国产精品乱人伦| 精品视频在线观看一区| 久久久久伊人| 亚洲精品成人av| 懂色av粉嫩av蜜臀av一区二区三区| 国产真实久久| 国产裸体写真av一区二区 | 久草手机在线观看| 老司机一区二区| 国产精品三区四区| 无遮挡的视频在线观看 | 国产精品久久三| 福利视频一区二区三区四区| h1515四虎成人| 精品国产制服丝袜高跟| 中文字幕在线1| 亚洲网站在线| 国产深夜精品福利| 免费a在线观看| 亚洲综合一二三区| 中文字幕66页| 欧美少妇xxxx| 2019国产精品自在线拍国产不卡| 天堂а√在线中文在线| 永久av免费网站| 一本久道久久综合婷婷鲸鱼| 91亚洲人电影| 成人av电影观看| 偷偷要91色婷婷| 欧美视频亚洲图片| 欧美少妇性xxxx| 日本高清久久天堂| 欧美视频久久久| 亚洲品质自拍视频| 午夜国产一区二区三区| 亚洲免费专区| 久久久久久综合网天天| 国产女18毛片多18精品| 国产精品伦理一区二区| 国产精品69页| 亚洲自拍电影| 97色在线视频观看| www.亚洲欧美| 亚洲精品免费播放| 国产精品嫩草影院8vv8| 欧洲激情视频| 国产精品久久9| 国产特黄在线| 色婷婷综合久久久中文一区二区| 天天躁日日躁狠狠躁免费麻豆| 亚洲影视一区| 91牛牛免费视频| 国产原厂视频在线观看| 欧美丰满一区二区免费视频| 色撸撸在线视频| 久久黄色网页| 欧洲一区二区在线| 春暖花开亚洲一区二区三区| 亚洲精品在线视频| 中文字幕在线观看视频免费| 国产日韩欧美麻豆| 男人插女人下面免费视频| 国产中文精品久高清在线不| 人妖精品videosex性欧美| 四虎影院在线播放| 色综合久久中文字幕综合网| 中文幕无线码中文字蜜桃| 久久一区激情| 日本欧美色综合网站免费| 日韩在线免费| 日韩中文视频免费在线观看| 一卡二卡在线观看| 亚洲精选视频在线| 亚洲天堂av网站| 国产亚洲精品v| 欧美一区二区三区四区在线观看地址| 视频在线日韩| 美女福利精品视频| 成人免费视频国产| 欧美午夜精品久久久久久久| 人妻一区二区视频| 国产麻豆精品在线| 日韩精品xxxx| 欧美先锋资源| 91亚色免费| 成人福利av| www.欧美免费| 欧洲av在线播放| 欧洲一区二区三区在线| 看免费黄色录像| 97久久超碰精品国产| 天堂在线资源视频| 欧美激情91| 欧美一进一出视频| 国产乱码精品一区二区三区亚洲人 | 欧美性生交大片免费| 日本美女xxx| 国v精品久久久网| 国产日韩一区二区在线| 国产精品国内免费一区二区三区| 成人欧美一区二区三区视频xxx| xx欧美视频| 欧美成人午夜剧场免费观看| 亚欧在线观看视频| 欧美精品 国产精品| 亚洲一区欧美在线| 国产精品久久毛片a| 在线观看免费视频国产| 免费在线视频一区| 久久99久久99精品| 欧美日韩激情| 精品91免费| 成人综合日日夜夜| 国产精品白嫩美女在线观看| 狂野欧美性猛交xxxxx视频| 国产亚洲精品久久久优势| 亚洲高清视频在线播放| 欧美在线视频全部完| 日本一本高清视频| 亚洲精品欧美专区| www..com.cn蕾丝视频在线观看免费版| 国产精品996| 色综合色综合色综合色综合| 国产日韩1区| www.avtt| 欧美aⅴ99久久黑人专区| 亚洲mv在线看| 免费一区二区三区视频导航| 国产精品久久波多野结衣| av在线成人| 国产精品视频在线观看| 亚洲欧洲美洲av| 欧美激情在线观看视频| 国产色在线观看| 国产亚洲综合久久| 日本亚洲一区| 日韩av在线免费播放| 亚洲第一视频在线播放| 欧美一区二区美女| 91无套直看片红桃| 欧美色综合久久| 免费精品一区二区| 欧美日韩色婷婷| 国产精品老女人| 亚洲福利国产精品| 黄色一级视频在线观看| 一区二区在线观看视频| 青青草成人免费| 尤物视频一区二区| 欧美日韩激情在线观看| 一区二区在线观看不卡| 欧美精品成人久久| 亚洲自拍与偷拍| 久久综合成人网| 婷婷成人综合网| 国内免费精品视频| 欧美午夜激情在线| 免费黄色片视频| 欧美少妇bbb| 国产精品久久久国产盗摄| 欧美丰满少妇xxxbbb| 国产熟女精品视频| 精品国产乱码久久久久久久| 香蕉久久国产av一区二区| 亚洲精品国精品久久99热| 人操人视频在线观看| 亚洲视频axxx| 免费在线观看黄| 久久91精品国产91久久久| 女人天堂av在线播放| 91精品国产色综合| 成人在线爆射| 成人午夜高潮视频| 哺乳挤奶一区二区三区免费看| 精品91免费| 日韩精品不卡一区二区| 99亚洲国产精品| 亚洲手机在线| 成年人小视频网站| 国产真人真事毛片| 国产喷白浆一区二区三区| 99久久久无码国产精品衣服| 国产精品色眯眯| a级片在线观看免费| 午夜精品一区二区三区免费视频 | 91在线观看免费高清| 都市激情久久| 日本一区不卡| 亚洲有吗中文字幕| 国产av人人夜夜澡人人爽麻豆| 香蕉视频成人在线观看| 在线黄色免费看| 成人app下载| 欧美黄色高清视频| 亚洲精品乱码久久久久| 一区二区三区视频免费看| 欧美三级视频在线观看| 亚洲成a人片77777精品| 亚洲欧美综合另类中字| 成人在线观看亚洲| 青草成人免费视频| 激情综合婷婷| 欧美一区二区三区四区夜夜大片| 欧美.www| 超碰在线公开97| 不卡的av中国片| 三级av在线免费观看| 疯狂做受xxxx欧美肥白少妇| 一区二区自拍偷拍| 国产视频久久久久| 最爽无遮挡行房视频在线| 国产精品69久久久久| 999国产精品一区| 亚洲精品无人区| 午夜亚洲精品| 国产精九九网站漫画| 中文字幕一区二区视频| 日韩在线 中文字幕| 日韩精品一区二区三区蜜臀 | 欧美日韩精品国产| 国产精品日韩无码| 国产午夜精品一区理论片飘花 | 午夜精品福利在线| 国产精品久久久久久久一区二区| 亚洲精品在线不卡| 精灵使的剑舞无删减版在线观看| 国产玖玖精品视频| 精品一区av| 久久久久久久久久久免费视频| 成人性色生活片免费看爆迷你毛片| 精品少妇一区二区三区密爱| 色久优优欧美色久优优| 婷婷五月综合久久中文字幕| 久久久久久av| 蜜桃在线一区| 老司机av福利| 精品一区二区三区在线播放| 在线观看国产精品一区| 欧美网站在线观看| 天堂中文网在线| 国产做受69高潮| 成人直播在线观看| 欧美性潮喷xxxxx免费视频看| 久久99久久99小草精品免视看| 一级片久久久久| 欧美亚洲动漫另类| h视频在线观看免费| 欧美性受xxxx黑人猛交| 青青草原在线亚洲| 黄色免费观看视频网站| 91麻豆精东视频| www.毛片.com| 亚洲欧美综合区自拍另类| 久久野战av| 午夜精品视频在线观看一区二区 | 午夜a成v人精品| 婷婷久久久久久| 日本国产欧美一区二区三区| 美女精品一区最新中文字幕一区二区三区 | 91麻豆精品国产91久久久更新时间| 一本一道波多野毛片中文在线| 国产精品色婷婷视频| 国产精品99一区二区三| 三年中文在线观看免费大全中国| 亚洲色图清纯唯美| 精品黑人一区二区三区在线观看 | 日韩黄色三级在线观看| 中文字幕超清在线免费观看| 国产一区二区中文字幕| 免费看一级一片| 精品在线欧美视频| 成人四虎影院| 三级在线免费观看| 成人18精品视频| 中文字幕在线观看视频免费| 中文字幕无线精品亚洲乱码一区 | 一本一道久久a久久综合蜜桃| 亚洲人精品一区| 黄色aaa毛片| 欧洲午夜精品久久久| 成人午夜av| 久久久久亚洲av片无码v| 亚洲妇女屁股眼交7| 欧美捆绑视频| 亚洲精品免费网站| 亚洲毛片播放| www中文在线| 欧美成人高清电影在线| 另类专区亚洲| 国产又粗又大又爽的视频| 91香蕉视频mp4| 88av在线视频| 性欧美xxxx交| 97精品国产| 精品影片一区二区入口| 精品视频1区2区| 92久久精品| 伊人色综合久久天天五月婷| 99久久久国产精品| 91午夜交换视频| 欧美综合国产精品久久丁香| 91精品天堂福利在线观看| 亚洲视频在线播放免费| 欧美美女一区二区三区| 欧美伦理91| 超碰97在线看| 国产欧美日本一区二区三区| 亚洲乱码国产乱码精品精软件| 国产精品久久二区| 亚洲视频大全|