亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? migong.txt

?? 這是C語言編寫的迷宮程序
?? TXT
字號:
程序目的:
輸入一個(gè)任意大小的迷宮,用棧求出一條走出迷宮的路徑,并
顯示在屏幕上。
程序?qū)崿F(xiàn):
可以實(shí)現(xiàn)載入迷宮和保存迷宮,附帶文件中有4個(gè)測試迷宮路徑的
文件test1~4.dd。請將這些文件拷貝到TC當(dāng)前目錄下,或者在載
入時(shí)寫明完全路徑。由于屏幕大小的限制,當(dāng)用戶自己輸入迷宮
時(shí)一定要注意:迷宮大小是有限制的,不小于4*3,不大于30*20。
否則會(huì)出現(xiàn)錯(cuò)誤信息。輸入開始時(shí)全是墻,用上下左右鍵移動(dòng),
用Del鍵刪除墻,形成通路,用Enter鍵添加墻。輸入結(jié)束時(shí)可以
將迷宮保存下來,以dd為擴(kuò)展名。輸入完畢時(shí)用F9鍵來得到結(jié)果,
找到路徑時(shí),屏幕下方會(huì)出現(xiàn)Path found,否則出現(xiàn)Path not found。
程序經(jīng)Turbo C 2.0編譯調(diào)試成功。運(yùn)行時(shí)不用添加任何運(yùn)行庫。
不可以在VC上編譯。
下載DOS版和windows版的迷宮游戲全部代碼
用戶名:migong 
----------------------------------------------------------------------------------
/*
MazePath Demo BY Turbo C 2.0
Copyright(c) RoverUnion. All right reserved.
Filename: Maze.c
Author Dongchengyu.
Ver 1.10
*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <conio.h>
#include <dos.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define F9 0x43
#define Esc 0x1b
#define Del 0x53
#define Home 0x47
#define End 0x4f
#define Space 0x20
#define Up 0x48
#define Down 0x50
#define Left 0x4b
#define Right 0x4d
#define Enter 0x0d
#define F2 0x3c
#define F3 0x3d
#define STACK_INIT_SIZE 200
#define STACKINCREMENT 10
typedef int Boolean;
typedef int Status;
typedef struct {
int x;
int y;
} PosType;
typedef struct {
int ord;
PosType seat;
int di;
} SElemType;
typedef struct {
int td;
int foot;
int mark;
} MazeType;
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
} Stack;
int Maze[20][30];
MazeType maze[20][30];
PosType StartPlace;
PosType EndPlace;
int count;
int m,n;
Boolean b_start=FALSE,b_end=FALSE;
void CreatMaze(void);
Status SaveMaze(char *filename);
Status LoadMaze(char *filename);
void Error(char *message);
Status InitStack(Stack *s);
Status DestroyStack(Stack *s);
Status ClearStack(Stack *s);
Boolean StackEmpty(Stack *s);
int StackLength(Stack *s);
Status Push(Stack *s,SElemType e);
SElemType Pop(Stack *s,SElemType e);
Status GetTop(Stack *s,SElemType *e);
Status StackTraverse(Stack *s,Status (* visit)(SElemType *se));
Boolean Pass(PosType curpos);
void MarkPrint(PosType seat);
void FootPrint(PosType curpos);
PosType NextPos(PosType seat,int di);
Status MazePath(PosType start,PosType end);
void CreatMaze(void)
/* Form the maze. */
{
void Error(char *message);
Status SaveMaze(char *filename);
Status LoadMaze(char *filename);
int i,j;
int x,y;
char c;
char savename[12],loadname[12];
Boolean flag=FALSE,load=FALSE;
clrscr();
printf("Menu:\n\n");
printf("1.Load Mazefile:(*.dd)\n\n");
printf("2.Input Maze:\n\n");
printf("Input your choice: ");
do
{
c=getch();
switch(c)
{
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;
case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;
case Esc: sleep(1); exit(1);
default: break;
}
}
while(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;
if(c==''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''')
{
printf("\n\nLoadName: ");
scanf("%s",loadname);
if(LoadMaze(loadname))
{
sleep(1); load=TRUE;
}
else { gotoxy(1,9); printf("Load fail! "); }
}
if(!load)
{
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");
printf("\nInput Length :\n");
scanf("%d",&m);
printf("\nInput Width :\n");
scanf("%d",&n);
if(m<4||n<4) Error("Input");
if(m>30||n>20) Error("Maze too large");
for(i=0;i<30;i++)
for(j=0;j<20;j++)
Maze[j][i]=2;
StartPlace.x=0;
StartPlace.y=0;
EndPlace.x=0;
EndPlace.y=0;
clrscr();
printf("\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
printf(" #");
Maze[i-1][j-1]=0;
}
printf("\n");
}
}
gotoxy(65,5);
printf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");
gotoxy(65,7);
printf("Start:Home");
gotoxy(65,9);
printf("End:End");
gotoxy(65,11);
printf("Delete Wall:Del");
gotoxy(65,13);
printf("Enter Wall:Enter");
gotoxy(65,15);
printf("Save Maze:F2");
gotoxy(65,17);
printf("Complete:F9");
gotoxy(65,19);
printf("Exit:Esc");
gotoxy(4,3);
x=4;y=3;
do
{
c=getch();
switch(c)
{
case Up: if(y>3) { y--; gotoxy(x,y); }
break;
case Down: if(y<n) { y++; gotoxy(x,y); }
break;
case Left: if(x>4) { x-=2; gotoxy(x,y); }
break;
case Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }
break;
case Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE;
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;
putch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);
break;
case Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;
putch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);
break;
case Home: if(Maze[y-2][x/2-1]&&!b_start)
{
StartPlace.x=x/2-1;
StartPlace.y=y-2;
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
gotoxy(x,y);
b_start=TRUE;
}
break;
case End: if(Maze[y-2][x/2-1]&&!b_end)
{
EndPlace.x=x/2-1;
EndPlace.y=y-2;
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
gotoxy(x,y);
b_end=TRUE;
}
break;
case Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);
case F9: if(b_start&&b_end) flag=TRUE; break;
case F2: gotoxy(2,22);
printf("Savename:");
scanf("%s",savename);
gotoxy(2,22);
if(SaveMaze(savename)) printf("Save OK! ");
else printf("Save fail! ");
sleep(1);
gotoxy(2,22);
printf(" ");
gotoxy(x,y);
break;
default: break;
}
}
while(!flag);
for(i=0;i<30;i++)
for(j=0;j<20;j++)
{
maze[j][i].td=Maze[j][i];
maze[j][i].mark=0;
maze[j][i].foot=0;
}
}
Status LoadMaze(char *file)
/* The maze has been loaded. */
{
FILE *fp;
char *buffer;
char ch;
int i=0,j,k;
Boolean len=FALSE,wid=FALSE;
if((fp=fopen(file,"r"))==NULL)
return ERROR;
buffer=(char *)malloc(600*sizeof(char));
ch=fgetc(fp);
while(ch!=EOF)
{
buffer[i]=ch;
i++;
ch=fgetc(fp);
}
m=30;n=20;
for(i=0;i<600;i++)
{
j=i/30; k=i%30;
if(buffer[i]==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }
if(k==0&&buffer[i]==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }
switch(buffer[i])
{
case ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;
case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;
case ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;
StartPlace.x=k;
StartPlace.y=j;
b_start=TRUE;
break;
case ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;
EndPlace.x=k;
EndPlace.y=j;
b_end=TRUE;
break;
default : break;
}
}
fclose(fp);
clrscr();
for(i=0;i<30;i++)
for(j=0;j<20;j++)
{
maze[j][i].td=Maze[j][i];
maze[j][i].foot=0;
maze[j][i].mark=0;
if(Maze[j][i]==0)
{
gotoxy(2*i+2,j+2);
putch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');
}
}
gotoxy(2*StartPlace.x+2,StartPlace.y+2);
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
gotoxy(2*EndPlace.x+2,EndPlace.y+2);
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
return OK;
}
Status SaveMaze(char *filename)
/* The maze has been saved. */
{
FILE *fp;
char *buffer;
int i,j,k;
fp=fopen(filename,"wb");
buffer=(char *)malloc(600*sizeof(char));
for(i=0;i<600;i++)
{
j=i/30; k=i%30;
switch(Maze[j][k])
{
case 0: buffer[i]=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break;
case 1: buffer[i]=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;
case 2: buffer[i]=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;
default : Error("Write"); break;
}
if(k==StartPlace.x&&j==StartPlace.y) buffer[i]=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';
if(k==EndPlace.x&&j==EndPlace.y) buffer[i]=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';
}
fwrite(buffer,600,1,fp);
free(buffer);
fclose(fp);
return OK;
}
void Error(char *message)
{
clrscr();
fprintf(stderr,"Error:%s\n",message);
exit(1);
} /* Error */

Status InitStack(Stack *s)
/* The stack s has been created and is initialized to be empty. */
{
s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!s->base) Error("Overflow");
s->top=s->base;
s->stacksize=STACK_INIT_SIZE;
return OK;
} /* InitStack */
Status DestroyStack(Stack *s)
/* The stack s has been destroyed. */
{
s->top=NULL;
s->stacksize=0;
free(s->base);
s->base=NULL;
return OK;
} /* DestroyStack */
Status ClearStack(Stack *s)
/* The stack has been clear to be maximum. */
{
s->top=s->base;
s->stacksize=STACK_INIT_SIZE;
return OK;
} /* ClearStack */
Boolean StackEmpty(Stack *s)
/* Check if the stack s is empty. */
{
if(s->top==s->base) return TRUE;
else return FALSE;
} /* StackEmpty */
int StackLength(Stack *s)
/* Gain the length of the stack s. */
{
if(s->top>s->base) return (int)(s->top-s->base);
else return 0;
} /* StackLength */
Status Push(Stack *s,SElemType e)
/* The element e has been pushed into the stack s. */
{
if(s->top-s->base>=s->stacksize)
{
s->base=(SElemType *)realloc(s->base,
(s->stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!s->base) Error("Overflow");
s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*s->top++=e;
return OK;
} /* Push */
SElemType Pop(Stack *s,SElemType e)
/* The element e has been removed from the stack s. */
{
if(s->top==s->base) Error("Pop");
e=*--s->top;
return e;
} /* Pop */
Status GetTop(Stack *s,SElemType *e)
/* The element e has got to the top of the stack s.*/
{
if(s->top==s->base) Error("GetTop");
*e=*(s->top-1);
return OK;
} /* GetTop */
/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */
/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))
{
SElemType p;
int result;
if(s->top==s->base) return ERROR;
p=s->base;
while(!(p==s->top))
{
result=(*visit)(p);
p++;
}
return OK;
} */
Boolean Pass(PosType curpos)
/* Check if the current position can be passed. */
{
if(maze[curpos.x][curpos.y].td==1&&
maze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)
return TRUE;
else return FALSE;
} /* Pass */
void MarkPrint(PosType seat)
/* Mark the position seat. */
{
maze[seat.x][seat.y].mark=-1;
/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */
} /* MarkPrint */
void FootPrint(PosType curpos)
/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */
{
maze[curpos.x][curpos.y].foot=1;
} /* FootPrint */
PosType NextPos(PosType seat,int di)
{
switch(di)
{
case 1: seat.y++; return seat; /* Eastward */
case 2: seat.x++; return seat; /* Southward */
case 3: seat.y--; return seat; /* Westward */
case 4: seat.x--; return seat; /* Northward */
default: seat.x=0; seat.y=0; return seat;
}
} /* NextPos */

/* The key to the program. */
/* Pre: The maze array & the startplace & the endplace.
Post: Find the one traverse of the maze and perform the mazepath.
Uses: The ADT stack class.
*/
Status MazePath(PosType start,PosType end)
{
PosType curpos;
int curstep;
SElemType e;
Stack *s,stack;
stack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!stack.base) Error("Overflow");
stack.top=stack.base;
stack.stacksize=STACK_INIT_SIZE;
s=&stack;
curpos=start;
curstep=1;
do
{
if(Pass(curpos))
{
FootPrint(curpos);
e.ord=curstep; e.seat=curpos; e.di=1;
gotoxy((curpos.y+1)*2,curpos.x+2);
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
delay(8000); /* pospone time. */
Push(s,e);
if(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */
{
DestroyStack(s);
return TRUE;
}
curpos=NextPos(curpos,1); /* Try next position. */
curstep++;
}
else
{
if(!StackEmpty(s))
{
e=Pop(s,e); /* Removed e from s. */
while(e.di==4&&!StackEmpty(s)) /* Four directions have been checked
and s is not empty. */
{
MarkPrint(e.seat);
gotoxy((e.seat.y+1)*2,e.seat.x+2);
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
delay(8000); /* Pospone time. */
gotoxy((e.seat.y+1)*2,e.seat.x+2);
putch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');
e=Pop(s,e); /* Remove e from s. */
curstep--;
}
if(e.di<4) /* The current position hasnot been checked. */
{
e.di++;
Push(s,e); /* Insert e into s. */
curpos=NextPos(e.seat,e.di); /* Try next position. */
}
}
}
}
while(!StackEmpty(s));
DestroyStack(s);
return FALSE;
} /* MazePath */
void main()
{
PosType start,end;
CreatMaze();
start.x=StartPlace.y;
start.y=StartPlace.x;
end.x=EndPlace.y;
end.y=EndPlace.x;
if(MazePath(start,end))
{
gotoxy(2,22);
printf("Path found\n");
}
else
{
gotoxy(2,22);
printf("Path not found\n");
}
getch();
clrscr();
} 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看高清完整版| 亚洲国产成人私人影院tom| 国产综合色视频| 一区二区三区四区不卡视频| 精品日韩成人av| 欧美日韩三级一区| 成人av电影在线网| 黄色精品一二区| 亚洲超丰满肉感bbw| 日韩美女视频一区二区 | 国产麻豆精品theporn| 亚洲自拍都市欧美小说| 欧美高清在线一区| 精品国产欧美一区二区| 欧美久久久久久久久中文字幕| 91性感美女视频| 国产一区二区不卡在线| 久久精品国产精品亚洲综合| 首页综合国产亚洲丝袜| 亚洲欧美日韩成人高清在线一区| 久久久综合视频| 日韩亚洲欧美一区| 欧美日韩亚洲国产综合| 日本久久电影网| 色婷婷综合久久久中文字幕| 成人精品gif动图一区| 国产伦精品一区二区三区在线观看| 日本在线不卡一区| 五月婷婷综合在线| 丝袜美腿亚洲一区二区图片| 夜夜精品浪潮av一区二区三区| 亚洲丝袜另类动漫二区| 国产精品伦一区| 国产精品色一区二区三区| 久久久久久久久久久电影| 精品日韩在线一区| 久久―日本道色综合久久| 欧美精品一区二区蜜臀亚洲| 日韩欧美国产精品一区| 精品日韩99亚洲| 337p日本欧洲亚洲大胆色噜噜| 欧美成人伊人久久综合网| 日韩一区二区三| 欧美精品一区二区三区蜜桃| 精品国产乱码久久久久久免费 | 亚洲人成网站色在线观看| 中文字幕一区二区三区视频| 国产精品久久久久久久久久久免费看 | eeuss鲁片一区二区三区| 成人毛片老司机大片| av亚洲精华国产精华| av一区二区不卡| 日本精品一级二级| 欧美日韩一区久久| 欧美一区二区在线免费播放| 精品日韩一区二区| 日本一区二区三区高清不卡| 日韩毛片视频在线看| 亚洲夂夂婷婷色拍ww47| 秋霞成人午夜伦在线观看| 韩国三级在线一区| 99精品1区2区| 欧美日韩精品欧美日韩精品一| 欧美肥妇毛茸茸| 精品对白一区国产伦| 中文字幕中文字幕在线一区| 亚洲国产精品欧美一二99 | 高清免费成人av| 色综合久久久久综合体| 欧美一区二区三区在线观看| 久久久亚洲精品石原莉奈 | 亚洲国产精品久久人人爱蜜臀| 午夜不卡av免费| 国内精品写真在线观看| 99精品欧美一区二区三区小说| 91福利资源站| 精品国产一区二区三区久久影院 | 蜜臀av一区二区| 成人av电影免费在线播放| 欧美日韩电影在线| 欧美极品另类videosde| 亚洲五码中文字幕| 国产在线视频一区二区| 日本精品裸体写真集在线观看| 日韩视频免费观看高清完整版 | 99久久久国产精品免费蜜臀| 在线综合亚洲欧美在线视频| 国产欧美一区视频| 亚洲国产一区二区视频| 国产成人免费视频精品含羞草妖精| 欧美在线视频日韩| 欧美高清在线精品一区| 日韩电影在线观看一区| 不卡大黄网站免费看| 日韩一区二区电影网| 亚洲欧美视频一区| 国产福利一区二区三区| 欧美高清视频不卡网| 国产精品国产三级国产aⅴ无密码| 免费在线观看成人| 91国在线观看| 中文字幕va一区二区三区| 日韩av在线播放中文字幕| 91美女片黄在线观看91美女| 亚洲精品一线二线三线| 亚洲bt欧美bt精品| 色综合夜色一区| 欧美高清在线视频| 精品亚洲免费视频| 欧美日韩国产bt| 亚洲免费视频成人| 成人网在线免费视频| 欧美精品一区二区三区在线| 全部av―极品视觉盛宴亚洲| 欧美色精品在线视频| 亚洲美女区一区| 99久免费精品视频在线观看| 国产亚洲欧洲一区高清在线观看| 三级欧美韩日大片在线看| 欧洲一区二区三区在线| 亚洲乱码国产乱码精品精的特点| 国产精品性做久久久久久| 久久女同性恋中文字幕| 狠狠色伊人亚洲综合成人| 欧美一区二区三区免费大片 | 国产一区二区福利| 欧美不卡一区二区三区四区| 青青草伊人久久| 欧美喷潮久久久xxxxx| 亚洲va欧美va人人爽| 欧美影院一区二区三区| 亚洲精品欧美激情| 在线视频一区二区三区| 亚洲精品亚洲人成人网在线播放| 91亚洲国产成人精品一区二区三| 亚洲欧洲精品一区二区三区不卡| 99久久综合精品| 亚洲综合在线视频| 欧美性受xxxx黑人xyx性爽| 亚洲高清免费在线| 欧美色图第一页| 视频一区在线视频| 欧美一级免费大片| 老司机免费视频一区二区三区| 欧美大片在线观看一区| 国产乱人伦精品一区二区在线观看 | 精品久久久久一区| 国产精品自拍一区| 国产精品免费久久| 91久久线看在观草草青青| 亚洲一区二区三区中文字幕在线| 欧美日韩国产综合草草| 日本欧美韩国一区三区| 久久色在线视频| 99视频在线精品| 亚洲成人高清在线| 精品捆绑美女sm三区| 成人av动漫在线| 亚洲国产视频在线| 精品国产乱码久久久久久图片| 成人一区二区三区视频在线观看| 国产精品久久久久久亚洲伦 | 色综合久久中文字幕综合网| 午夜伦理一区二区| 久久免费看少妇高潮| 91麻豆国产福利精品| 午夜精品久久久久久| 精品成人私密视频| 91免费视频网| 日本欧美加勒比视频| 中文字幕乱码一区二区免费| 欧美午夜电影在线播放| 久久精品国产一区二区| 亚洲欧洲三级电影| 欧美一二三区在线| 成人精品在线视频观看| 香蕉乱码成人久久天堂爱免费| 久久综合色婷婷| 欧美亚洲动漫精品| 国精产品一区一区三区mba桃花| 亚洲欧洲精品一区二区精品久久久 | 亚洲.国产.中文慕字在线| 久久精品一区二区三区四区| 欧美午夜一区二区| 国产精品一二三区在线| 亚洲成人777| 国产精品久久久久久久久晋中 | 天天操天天干天天综合网| 久久日韩粉嫩一区二区三区| 色av成人天堂桃色av| 国产一区二区三区四| 三级不卡在线观看| 《视频一区视频二区| 精品乱人伦小说| 欧美日韩国产综合一区二区三区 | 视频在线观看一区二区三区| 国产精品久久久久毛片软件| 日韩精品一区二区三区视频在线观看 | 国产米奇在线777精品观看| 亚洲影视资源网|