QQ登录

只需要一步,快速开始

 注册地址  找回密码

tag 标签: 游戏

相关帖子

版块 作者 回复/查看 最后发表
提高能力的游戏~ attachment 数模资源交流 guanyuhang 2012-5-10 11 4267 wssl103050 2012-6-3 07:40
数学游戏 attachment 趣味数学/科普数学 guanyuhang 2012-5-25 4 2254 2855820365 2021-7-30 11:52
游戏算法,各抒己见 建议交流区 小龙女种地瓜 2012-6-28 7 2157 梦天涯M 2012-7-26 16:35
mathematica的各种游戏合集!! Mathematica论坛 zhb 2012-7-18 6 5105 昝斌 2012-7-21 21:59
数学谜题及数学游戏 attachment 趣味数学/科普数学 guanyuhang 2012-12-11 8 3366 流雨星月 2014-8-27 13:49
悬赏 求助解一个游戏问题! - [悬赏 20 点体力] attach_img LINDO\LINGO论坛 雪海无涯1314 2013-5-18 2 1779 雪海无涯1314 2013-5-18 13:52
二年级奥数题及答案:换书游戏 二年级数学论坛 挚爱/Sunsgne° 2013-6-26 0 1447 挚爱/Sunsgne° 2013-6-26 15:02
三年级奥数题及答案:套圈游戏 三年级数学论坛 挚爱/Sunsgne° 2013-6-26 0 1576 挚爱/Sunsgne° 2013-6-26 15:12
一年级奥数题(间隔趣题)及答案:做游戏 attach_img 一年级数学论坛 挚爱/Sunsgne° 2013-7-23 2 3356 cgh1061 2021-11-11 11:55
懂UNIX的进---两个经典UNIX下的游戏 attach_img Unix/Linux wangzheng3056 2013-7-25 0 6610 wangzheng3056 2013-7-25 10:23
四年级奥数题及答案:数字游戏 四年级数学论坛 挚爱/Sunsgne° 2013-7-26 0 1049 挚爱/Sunsgne° 2013-7-26 10:14
【连载】科普之---随机数的应用(猜数字游戏的实现) attachment Visual C++ wangzheng3056 2013-7-30 4 7182 他山石 2013-8-8 18:03
【连载】科普之---随机数的应用(猜数字游戏的实现) C/C++ wangzheng3056 2013-7-30 0 1537 wangzheng3056 2013-7-30 15:31
谁说linux操作系统不能玩CS-一款linux下的游戏(附下载地址) attach_img Unix/Linux wangzheng3056 2013-7-31 4 7126 不自洽的爱 2013-7-31 10:58
接龙游戏 attachment 数学游戏 wangzheng3056 2013-7-31 0 3204 wangzheng3056 2013-7-31 11:40
简单数学游戏 attachment 数学游戏 挚爱/Sunsgne° 2013-7-31 0 1310 挚爱/Sunsgne° 2013-7-31 14:34
花了一个上午用vc++编写的汉诺塔游戏,给界面换了个皮肤,中间有点问题。 attach_img Visual C++ wangzheng3056 2013-8-1 2 5310 wangzheng3056 2013-8-1 12:00
猜数字游戏--提高你的逻辑推理能力 attachment 数学游戏 wangzheng3056 2013-8-2 0 1930 wangzheng3056 2013-8-2 10:57
用java制作的找茬游戏外挂 attach_img Java wangzheng3056 2013-8-3 0 2638 匿名 1970-1-1 08:00
一年级奥数题及答案:运球游戏 一年级数学论坛 挚爱/Sunsgne° 2013-9-23 4 1968 孤单老男孩 2021-10-14 14:54

相关日志

分享 诸神之战在星际争霸1的实现[001]AI游戏的发端
parcool 2013-7-24 09:30
诸神之战在星际争霸1的实现 AI游戏的发端 启示录19:12至19:16,那率领众军的,没人知道他的名字。 古希腊创造了至今无人能及的民主政体,为后世留下了光辉灿烂的哲学思想,还有一本记载了诸神欲望、善恶和争战的神话故事。由此,人们找到了一个唯美掩盖血腥的词——诸神之战。 诸神之战在人世以游戏方式的展现,是因为上帝喜欢玩游戏;AI战争系统以星际争霸1为展现,是因为星际争霸乃上帝借暴雪之手赠与玩家的礼物。游戏的结束,是另一个唯美却掩盖更大血腥的词——诸神的黄昏。 这一切的到来,都是由于有人在大地上显神迹。临到终了,就有人要显更大的神迹。8000万美元的无人机太过昂贵,8000元或800元人民币的才是AI战争系统所追求的。在决定性意义上,AI战争系统只需要一个兵种——自杀机,让所有的钢铁都化做飞行机器,布满天宇,遮蔽太阳的光芒。它的历史任务是将现代化高科技战机、航母舰队和地面装甲集群送入垃圾堆,为《黑客帝国》的锡安抵御并摧毁乌贼军团,进攻乃至夺取机器之城。 于是,有这样一句话:给你一个上帝系统,你就能占领整个世界。 启示录21:23至21:25,那里不用日月光照,因为原没有黑夜。 游戏名称:星际争霸之母巢之战 游戏版本:1.08 种族:Protoss(简称P或P族,神族) 游戏任务M001:分矿 在《星际争霸1的AI设计思路:以人族开局为例》一文中,轮廓式地阐述了AI战争系统的基本概念和设计思路。这一模型主要使用了随机性的思想。为了更贴切地描述真实游戏玩家的意识,更完美地诠释复命思想,特对模型进行改进、调整和规范,将控制线(上帝系统)和指令序列分别视为玩家的大局观和具体操作,使两者均拥有分析中心、策略中心和计算中心,并实现两者在一定程度上的共享。这样,就确立了整个AI的基本结构。 所谓分矿,是指进入游戏后,对已有的4个Probe(俗称“农民”)进行操作,使1个农民采集1个矿的行为。AI进入游戏后,控制线要完成的动作有:计时(从0开始,以秒或更短的时间为单位,由分析中心完成),给建筑单位(大本)和兵种单位(4个Probe)分别建立指令序列(由策略中心完成),选取随机策略(由策略中心完成)。 此时,控制线可选择的策略有:采集资源(采矿),或建造建筑(水晶柱,气矿,等等)。可以想象,采集资源应该是最优的一种策略,因此,经过分析中心的多次比对后,AI应该可以认定游戏的开始时总应该选择这个策略,从而,其他的策略可以删除。这就实现了一个小概率事件。 1个Probe的指令序列可选择的策略有很多,从选择Probe后地图右下的小图中可以看到(有关策略应该在兵种分析中完成),指令序列应如上总是选择采矿。这里有两个技术性问题,一是这个Probe如何做到去采集离它最近的那一点矿?在地图分析中应该完成的是,将地图制作为网格地图,使得地图上每一个位置和单位都有自己唯一的坐标。Probe的计算中心依照网格坐标为它计算出一条路径,给予一个时间限制,命令其前往最近的那一点矿进行采集。为什么Probe完成的任务要带时间限定,是因为为了以后的防止敌方封气矿等策略。二是假如有2个Probe计算出某点距自己最近的矿是同一个时,该怎么办?这就需要它们共享控制线的分析中心,在前往采集前传送任务信息给控制线,告知自己将要去往的位置等信息,进而,等待控制线判断是否出现两个相同的位置信息,如果是的,就可以由控制线的策略中心随机选1个Probe采集那点矿,另一个则由控制线的计算中心和分析中心另行计算和重新分配要采集的矿点。这样,可以防止2个Probe采集同一片矿时有一个处于“停工”的状态,实现同一时间内资源采集的最大化。兵种单位与任务或地理位置之间,则建立起了一一对应的关系。 可以看到,时间与随机性和复命思想一样,在AI系统里的意义是“非凡”的,虽然在哲学里对时间概念的滥用、误用进行了大加鞭笞;AI系统的操作更加复杂了,却更实用了,也更加真切地体现了我们这个现实的AI系统里的运作模式。 相关阅读 ★绝对真理的内涵、架构与印证 ★概率论:完全可能性的理论与现实图景 ★悖论问题的统一解 ★从延安文艺座谈会到人类社会的未来 ★发现号航天飞机——自然算法伟大的飞矢变换 ★星际争霸1的AI设计思路:以人族开局为例
个人分类: 人工智能|291 次阅读|0 个评论
分享 感觉游戏应用和数学中国的整体风格有些不符了。。。
lcubed 2013-1-9 18:18
个人感觉而已
1 次阅读|0 个评论
分享 连连看游戏(c语言实现)
水木淋溪 2012-5-4 16:50
经典的连连看游戏。 程序作者:水木淋溪 577712541@qq.com 游戏运行截图如下: 游戏中使用了资源文件, 点这里下载该游戏的完整 VC 项目包 。 游戏主代码如下(相关图片资源请下载完整 VC 项目包): /////////////////////////////////////////////////// // 程序名称:连连看 // 编译环境:Visual C++ 6.0 / 2012,EasyX 20120501(beta) // 作  者:水木淋溪 577712541@qq.com // 最后修改:2012-4-28 // 注:本游戏可以说是网上一个游戏的复制 // 但是是用自己的思想编制的(生成算法有参考) // 游戏的优点我就不多说了,玩的过的人都知道 // 游戏缺点:音乐、背景选的不好,只有一关,很传统··· // 没有计时,没有提示,没有自动完成··· // 总之是有待完成,不过这些代码是核心 ////////////////////////////////////////////////// #include graphics.h #include conio.h #include time.h #include stdio.h #include windows.h #pragma comment(lib,"winmm.lib") //150 150 12 7 21 易 //60 100 16 9 32 中 //100 120 14 8 28 难 #define leftedge 150 //游戏区距左边框距离 #define topedge 150 //游戏区距上边框距离 #define COL 12 //游戏区列数 #define ROW 7 //游戏区行数 #define GridNum 21 //游戏图片数目 #define GridW 42 //游戏图片的长 #define GridH 48 //游戏图片的宽 #define N 555 //开屏大小(宽) #define M 785 //开屏大小(长) IMAGE image ; //图片库 IMAGE image2; //填充图片 int GridID ; //游戏图纸 MOUSEMSG mouse; //记录鼠标信息 struct GridInfor //记入击中图片信息 { int idx,idy; //图纸坐标 int leftx,lefty; //屏幕坐标 int GridID; //图片类型 }pre,cur,dur; struct //记录连线点 { int x; int y; }point ; static int pn; //记录连线点个数 void InitFace (); //初始化界面 void Shuffle (); //随即打乱图片 void ShowGrid (); //显示图片 void RandGrid (); //绘制地图 void Link (); //连接两图 void Des_direct (); //直接相消 void Des_one_corner(); //一折相消 void Des_two_corner(); //两折相消 void Load_picture (); //加载图片 void Init_Grid (GridInfor pre); //初始化格子信息 void Leftbottondown (MOUSEMSG mouse); //实现鼠标左击效果 void Draw_frame (int leftx,int lefty); //绘制边框 void Mousemove (int leftx,int lefty); //实现鼠标移动效果 bool Judg_val (int leftx,int lefty); //判断鼠标是否在游戏区 void SeleReact (int leftx,int lefty); //显示选中效果 void TranstoPhycoor (int* idx,int* idy); //图纸坐标转变为屏幕坐标 void GridPhy_coor (int leftx,int lefty); //规范物理坐标 void iPaint (long x1,long y1,long x2,long y2); //将直线销毁 void DrawLine (int x1,int y1,int x2,int y2) ; //用直线连接两图 bool DesGrid (GridInfor pre,GridInfor cur); //判断两者是否能相消 bool Match_direct (POINT ppre,POINT pcur); //判断两者是否能够直接相消 bool Match_one_corner (POINT ppre,POINT pcur); //判断两者是否能一折相消 bool Match_two_corner (POINT ppre,POINT pcur); //判断两者是否能两折相消 void ExchaVal (GridInfor pre,GridInfor cur); //交换图片信息 bool Single_click_judge (int mousex,int mousey); //判断单击是否有效 void RecordInfor (int leftx,int lefty,GridInfor grid); //记录选中的信息 void TranstoDracoor (int mousex,int mousey,int *idx,int *idy); //鼠标坐标转化为图纸坐标 void Explot (POINT point,int *left,int *right,int *top,int *bottel);//探索point点附近的空位置 void main() { initgraph(M,N); mciSendString("play game_begin.mp3 repeat", NULL, 0, NULL); InitFace(); while(1) { mouse = GetMouseMsg(); switch(mouse.uMsg) { case WM_MOUSEMOVE: Mousemove(mouse.x,mouse.y); break; case WM_LBUTTONDOWN: if(Single_click_judge(mouse.x,mouse.y)) { Leftbottondown(mouse); } break; default: break; } } closegraph(); } ////////////////////////////////////////生成操作////////////////////////////// void RandGrid() //产生图片的标记 { for(int iCount = 0, x = 1; x = ROW; ++x ) { for( int y = 1; y = COL; ++y ) { GridID = iCount++ % GridNum + 1; } } } void Shuffle( ) //打乱棋盘 { int ix, iy, jx, jy, grid; for( int k = 0; k 84; ++k ) { ix = rand() % ROW + 1; // 产生 1 - COL 的随机数 iy = rand() % COL + 1; // 产生 1 - ROW 的随机数 jx = rand() % ROW + 1; // 产生 1 - COL 的随机数 jy = rand() % COL + 1; // 产生 1 - ROW 的随机数 if( GridID != GridID ) //如果不相等就交换数据 { grid = GridID ; GridID = GridID ; GridID = grid; } } } ////////////////////////////////初始化界面/////////////////////////////////////// void InitFace() { srand((unsigned)time(NULL)); Load_picture(); RandGrid(); IMAGE image3; loadimage(image3,"res\\bg.bmp"); putimage(0,0,image3); getimage(image2,3 * 42,2 * 48,42, 48); Shuffle(); ShowGrid(); } void Load_picture() //加载图片 { IMAGE image1,background; loadimage(image1,"IMAGE","grids"); SetWorkingImage(image1); for(int i = 1 ;i GridNum + 1 ;i ++) for(int j = 0;j 2;j++) getimage(image ,j * 42,i * 48,42, 48); loadimage(background,"IMAGE","bg"); SetWorkingImage(background); getimage(image2,3 * 42,2 * 48,42, 48); SetWorkingImage(); putimage(0,0,background); } void ShowGrid() { int idx,idy; for(int i = 0 ;i ROW; i ++) for(int j = 0 ;j COL ; j++) { idy = i * 48 + topedge ,idx = j * 42 + leftedge; putimage(idx,idy,image ] ); } } /////////////////////////////////鼠标操作//////////////////////////////////////// void Mousemove (int leftx,int lefty) //鼠标移动时的变化 { static int prex,prey,preidx,preidy, curidx,curidy; if(Judg_val(leftx,lefty)) { TranstoDracoor(leftx,lefty,curidx,curidy); //转化为图纸坐标 if(GridID != 0) { GridPhy_coor(leftx,lefty); if(pre.idx == preidx pre.idy == preidy) putimage(prex,prey,image ] ); else putimage(prex,prey,image ] ); prex = leftx, prey = lefty; preidx = curidx, preidy = curidy; Draw_frame(leftx,lefty); //绘制边框 } } } void Leftbottondown (MOUSEMSG mouse) //左击时的变化 { static int click = 0, idx,idy; click++; SeleReact (mouse.x,mouse.y); //显示选中效果 if(click == 1) RecordInfor(mouse.x,mouse.y,pre); if(click == 2) { TranstoDracoor (mouse.x,mouse.y,idx,idy); if(idx != pre.idx || idy != pre.idy) { RecordInfor (mouse.x,mouse.y,cur); if(pre.GridID == cur.GridID DesGrid(pre,cur)) { GridID = GridID =0; Link (); pn = 0; putimage(pre.leftx,pre.lefty,image2); putimage(cur.leftx,cur.lefty,image2); Init_Grid(pre); Init_Grid(cur); click = 0; } else { ExchaVal(dur,pre); ExchaVal(pre,cur); Init_Grid(cur); click = 1; putimage(dur.leftx,dur.lefty,image ] ); } } else click = 1; } } void SeleReact (int leftx,int lefty) //选中时效果 { if(Judg_val(leftx,lefty)) { int idx,idy; TranstoDracoor (leftx,lefty,idx,idy); GridPhy_coor (leftx,lefty); putimage(leftx,lefty,image ] ); } } bool Judg_val(int leftx,int lefty) //判断鼠标是否在游戏区 { return leftx leftedge leftx leftedge + GridW * COL lefty topedge lefty topedge + GridH * ROW; } void TranstoDracoor (int mousex,int mousey ,int *idx,int *idy) //鼠标坐标转化为图纸坐标 { if(Judg_val(mousex,mousey)) { *idx = (mousex - leftedge) / 42 + 1; *idy = (mousey - topedge) / 48 + 1 ; } } void RecordInfor(int leftx,int lefty,GridInfor grid) //记录选中的信息 { TranstoDracoor(leftx,lefty,grid.idx,grid.idy); grid.leftx = (grid.idx - 1) * 42 + leftedge; grid.lefty = (grid.idy - 1) * 48 + topedge; grid.GridID = GridID ; } bool Single_click_judge (int mousex,int mousey) //判断单击是否有效 { int idx,idy; TranstoDracoor (mousex,mousey,idx,idy); //转化为图纸坐标 if(Judg_val(mouse.x,mouse.y) GridID != 0) return true; return false; } void Draw_frame(int leftx,int lefty) //绘制方框 { setcolor(RGB(126,91,68)); setlinestyle(PS_SOLID,NULL,1); rectangle(leftx,lefty,leftx+41,lefty+47); rectangle(leftx + 2,lefty + 2,leftx+39,lefty+45); setcolor(RGB(250,230,169)); rectangle(leftx + 1,lefty + 1,leftx+40,lefty+46); } ////////////////////////////////判断消除操作///////////////////////////////////// bool DesGrid (GridInfor pre,GridInfor cur) //判断两者是否能相消 { bool match = false; POINT ppre,pcur; ppre.x = pre.idx; ppre.y = pre.idy; pcur.x = cur.idx; pcur.y = cur.idy; if(Match_direct(ppre,pcur)) match = true; else if(Match_one_corner(ppre,pcur)) match = true; else if(Match_two_corner(ppre,pcur)) match =true; return match; } bool Match_direct(POINT ppre,POINT pcur) //判断两者是否能够直接相消 { int k,t; if(ppre.x == pcur.x) { k = ppre.y pcur.y ? ppre.y : pcur.y; t = ppre.y pcur.y ? ppre.y : pcur.y; if(t + 1 == k) goto FIND; for(int i = t + 1;i k ;i++) if(GridID != 0) return false; if(i == k) goto FIND; } else if(ppre.y == pcur.y) { k = ppre.x pcur.x ? ppre.x : pcur.x; t = ppre.x pcur.x ? ppre.x : pcur.x; if(t + 1 == k) goto FIND; for(int i = t + 1;i k ;i++) if(GridID != 0) return false; if(i == k) goto FIND; } return false; FIND: point .x = pcur.x, point .y = pcur.y; pn++; point .x = ppre.x, point .y = ppre.y; pn++; return true; } bool Match_one_corner(POINT ppre,POINT pcur) //判断两者是否能一折相消 { int left,right,top,bottel,x = ppre.x,y = ppre.y; Explot(ppre,left,right,top,bottel); ppre.y = top - 1; RESEARCHX: if(ppre.y bottel) ppre.y++; else goto BACK; if(Match_direct(ppre,pcur)) goto FIND; else goto RESEARCHX; BACK: ppre.y = y; ppre.x = left - 1; RESEARCHY: if(ppre.x right) ppre.x++; else goto REBACK; if(Match_direct(ppre,pcur)) goto FIND; else goto RESEARCHY; REBACK: pn = 0; return false; FIND: point .x = x,point .y = y,pn++; return true; } bool Match_two_corner(POINT ppre,POINT pcur) //判断两者是否能两折相消 { int left,right,top,bottel,x = ppre.x,y = ppre.y; Explot(ppre,left,right,top,bottel); ppre.y = top - 1; RESEARCHX: if(ppre.y bottel) ppre.y++; else goto BACK; if(Match_one_corner(ppre,pcur)) goto FIND; else goto RESEARCHX; BACK: ppre.y = y; ppre.x = left - 1; RESEARCHY: if(ppre.x right) ppre.x++; else goto REBACK; if(Match_one_corner(ppre,pcur)) goto FIND; else goto RESEARCHY; REBACK: pn = 0;return false; FIND: point .x = x,point .y = y,pn++; return true; } void Explot(POINT point,int *left,int *right,int *top,int *bottel) { int x = point.x,y = point.y; x++; while(x = COL + 1 GridID == 0) x++; *right = x - 1; x = point.x; x--; while(x = 0 GridID == 0) x--; *left = x + 1; x = point.x; y++; while(y = ROW + 1 GridID == 0) y++; *bottel= y - 1; y = point.y; y--; while(y = 0 GridID == 0) y--; *top = y + 1; } /////////////////////////////////消除操作//////////////////////////////////////// void Link () { switch(pn) { case 2: Des_direct(); break; case 3: Des_one_corner(); break; case 4: Des_two_corner(); break; default : break; } } void Des_direct () { TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); Sleep(250); iPaint(point .x,point .y,point .x,point .y); } void Des_one_corner() { TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); Sleep(250); iPaint(point .x,point .y,point .x,point .y); iPaint(point .x,point .y,point .x,point .y); } void Des_two_corner() { TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); TranstoPhycoor(point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); DrawLine(point .x,point .y,point .x,point .y); Sleep(250); iPaint(point .x,point .y,point .x,point .y); iPaint(point .x,point .y,point .x,point .y); iPaint(point .x,point .y,point .x,point .y); } void DrawLine (int x1,int y1,int x2,int y2) { setlinestyle(PS_SOLID,NULL,3); setcolor(RGB(90,43,9)); line(x1 + 21,y1 + 24,x2 + 21,y2 + 24); } void iPaint (long x1,long y1,long x2,long y2) { int minx,miny,maxx,maxy; if(x1 == x2) { maxy = y1 y2? y1:y2; miny = y1 y2? y1:y2; for(int i = miny; i = maxy;i += 48) putimage(x1,i,image2); } else if(y1 == y2) { maxx = x1 x2? x1:x2; minx = x1 x2? x1:x2; for(int j = minx; j = maxx;j += 42 ) putimage(j,y1,image2); } } ///////////////////////////////////////////////////////////////////////////////// void GridPhy_coor(int leftx,int lefty) //转化为标准物理坐标 { leftx = ((leftx - leftedge) / 42) * 42 + leftedge; lefty = ((lefty - topedge) / 48) * 48 + topedge; } void ExchaVal(GridInfor pre,GridInfor cur) //交换格子信息 { pre.GridID = cur.GridID; pre.idx = cur.idx;pre.idy = cur.idy; pre.leftx = cur.leftx;pre.lefty = cur.lefty; } void Init_Grid(GridInfor grid) //初始化格子 { grid.GridID = 0; grid.idx = 0; grid.idy = 0; grid.leftx = 0; grid.lefty = 0; } void TranstoPhycoor (int* idx,int* idy) //图纸坐标转变为屏幕坐标 { int x ,y;x =*idx,y = *idy; *idy = (y - 1) * 48 + leftedge; *idx = (x - 1) * 42 + topedge; } ///////////////////////////////////end//////////////////////////////////////////
个人分类: 编程小游戏|326 次阅读|0 个评论
分享 浪漫表白
马蒂哦 2011-11-17 12:22
浪漫表白
手机响了,有一条信息“我决定去告白了!”他和她一直是好朋友,可她一直爱着他。“哦…那你加油。”“我在她家门外好久了,不敢敲门。”“大着胆子敲吧!我挺你!”“你说她会答应吗?”“我不知道。”她放下手机,不争气的掉泪。手机又响,却是电话,她接起。“你开下门吧,我还是不敢敲。”
246 次阅读|0 个评论
qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-4-27 00:52 , Processed in 0.244937 second(s), 27 queries .

回顶部