用面向对象编程原理实现象棋的原理,需要实现什么类,里面有什么方法

机器人下象棋,强大的对弈系统如何实现?
> 机器人下象棋,强大的对弈系统如何实现?
机器人下象棋,强大的对弈系统如何实现?
一、项目概述本文引用地址:1.1 项目摘要技术是综合了计算机、控制论、结构学、信息与传感技术、仿生学及人工智能等多学科的一门高新技术。目前的人机对弈软件不直观、缺乏真正的对弈环境,而人机正是针对这些不足而设计的。本对弈系统以单片机芯片为核心,利用PWM调制技术控制机械手的运动,从而实现对棋子的控制;以电脑为上位机,使整个系统的动作协调一致;棋盘由数据采集、数据处理模块及信息传输模块组成。本系统的难点在于各棋子位置的检测与控制及中国象棋算法的实现。本机器人对弈系统的硬件部分由棋盘装置、控制系统、机械手三部分组成。其中控制系统包括:电机驱动模块、数据发送与接收模块等;软件部分基于VB平台,包括中国象棋算法模块与串口通信模块实现对棋子的逻辑控制并通过串口把命令发送到机械手的控制系统。本系统属于娱乐机器人,实现人与机器人的直接对弈,既可以培养人们对中国象棋的兴趣,又可以弘扬我国的传统文化。1.2 项目背景/选题动机中国象棋是一中华民族优秀而且独一无二的传统文化,也是普遍的娱乐方式,即可为老年人排遣孤独感,又可以跟儿童下棋,做到开发智力,锻炼儿童的思维能力。目前中国象棋博弈软件己经得到了一定的发展,像著名的&齐天大圣&博弈软件,己经具有了中国象棋大师的水准,但就人机博弈的应用来说,单单博弈软件还有其不足之处,比如:计算机博弈软件不直观生动,缺乏观赏性,并不具备真正的对弈环境,让对弈者找不到对弈的感觉,而且长时间对着计算机屏幕冷冰冰的面孔也容易产生枯燥乏味的感觉;计算机博弈软件对于老年博弈爱好者来说难以适应,一是因为与计算机对弈需要掌握一定的计算机基础才能操作,而老年博弈爱好者普遍不具备这些知识,二是因为长期坐在计算机前对老年人的身体健康很不利,因此给计算机博弈软件在老年人中的推广带来困难。国外在博弈机器人方面的研究主要集中在美国的IBM公司。IBM公司从1958年就开始了博弈系统的研究,可谓开辟了博弈系统研究的先河,并在此基础上,不断取得进展,直到1997年&深蓝&战胜国际象棋大师卡氏帕罗夫而引起全世界各国学者的关注,而这件事不仅成为了人工智能领域的里程碑,也更加是博弈机器人系统研究领域的里程碑。但由于中国象棋是我国独有的传统文化,国外还没有对中国象棋博弈系统的研究。而从国内的研究现状来看,研究的参与者有高校和研究所,比如上海交大,东北大学,香港理工大学,郑州机械研究所,还有企业,如首钢,再有就是由老师带领的中学生机器人爱好者们。从研究的棋的种类来看,有一部分是研究中国象棋博弈系统的,也有研究国际象棋和其他棋类系统的。总体来说他们的研究各具特色,比如研究中国象棋机器人博弈系统的的大多采用了开放式机器人控制器,如首钢是在Motorman机器人基础上开发了中国象棋机器人,上交大的机器人是国内利用开放式控制器开发成功的第一台,具有较高的开放性;博弈机器人&猜想&能完成看棋、算棋、取子下棋全过程,可以与人面对面下棋,是一台功能较完备的博弈机器人系统。而最近郑州机械研究所研制的中国象棋机器人更是智能程度和功能都比较完备。开局前,机器人自动摆放棋子,用普通话向对方介绍规则和注意事项。而且看棋、走棋,机器人30秒内就能搞定。总的来看,在棋局的识别方面,他们大都采用了机器视觉技术,采用视觉传感器结合图像处理技术来识别棋盘和棋子。但同时他们也各有其不足之处:像个头庞大,不利于搬运和进入家庭;由于机器与人下棋大而带来的安全性等问题;由于采用了现成的开放式机器人控制器,从而带来的开发成本过高的问题;由于采用了视觉传感器结合图像处理技术方案而带来的软件复杂程度提高,从而影响了系统整体处理速度。为解决上述问题,我们希望研究出的是一种小巧的、实用的、安全可靠的、智能化的中国象棋对弈机器人。二、需求分析2.1 功能要求要求机器人对弈系统能够独立完成看棋、算棋和取子下棋的全过程。2.2 性能标准1、能够进行棋盘定位、棋子识别、棋局判断2、能根据程序指令从储子装置中取出圆形棋子并放置到程序指定位置三、方案设计3.1 系统功能实现原理机器人对弈系统采用的是一种结构简单、可行的基于的机械臂设计方案。是平面关节型机器人,在此方案中把器械臂分为若干个关节进行移动,从而实现平面内定位和定向。硬件架构图本机器人对弈系统以单片机芯片为核心,利用PWM调制技术控制机械手的运动,从而实现对棋子的控制;以电脑为上位机,使整个系统的动作协调一致;棋盘由数据采集、数据处理模块及信息传输模块组成。棋盘特殊设计用来检测每个格点的信息来确定棋子的位置和类别;棋盘和机械手使用一个微控制器,通过模数转换器把棋盘每行、列的信号转化为数字量传到单片机进行分析;分析棋局,然后根据人机对弈的程序算法选择合适的棋子,进行棋局判断,同时产生控制信号,并把控制信号传回单片机,由单片机控制舵机驱动电路,指挥机械手实现对棋子的高速、准确操作;棋术分析纪录软件用VB编写,VB可视化、面向对象编程的特点以及丰富的应用模块,对中国象棋算法的编写特别有利。系统硬件结构框图如下图所示:系统硬件结构框图3.2 硬件资源配置1、用开发套件进行棋盘定位、棋子识别以及放置棋子2、用LM317、LM7805、变压器等制作稳压电源,为系统提供所需的电源3、用舵机进行棋子的抓取、移动、放置操作3.3系统软件架构软件架构图3.4 系统软件流程1.开机上电后,棋局开始,扫描棋盘并保存棋盘数据。2.判断谁为先手3.判断是否落子,并把棋子信息发送至上位机4.上位机根据落子信息分析棋局,判断棋局是否有谁胜出,如果没有则根据人机对弈的程序算法选择合适的走棋方式;如果有谁胜出则结束程序,棋局结束。5.上位机处理完成,生成的走棋信息传回主控6.主控控制舵机进行相应的落子操作7.再返回步骤3直至棋局结束。程序运行流程图
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一下次自动登录
现在的位置:
& 综合 & 正文
java面向对象学习
抽象,封装,继承,多态是面向对象程序设计中得四个特点.
对于具体事务忽略其你不关心的细节,成为一个可操作的简单数据对象,该对象只有你所需要的属性和方法。
例如对于一般网站上定义的一个user
我们一般只关心的属性有 用户名 昵称 密码 性别 出生年月 而对于其父亲是谁,看过什么书,有过什么经历是不必知道的。
他具有的方法是可以登录,推出登录,留言,而我们一般不用其吃饭,睡觉这样的方法。
在于java中抽象是由类(class)和类的一些修饰符(abstract,interface)来达到这个目的。
封装一是指对于数据的封装:对于对象的数据可以限制其数据的对外访问性质。使的数据,对象,对象的属性只能在某一范围内被访问和修改。
这个目的主要通过java的访问限定符(static,public,private,protect,finally)来达到。
封装的另一是指对于事物细节行为的封装:针对某一接口(或者方法,其实方法也是一种我们约定好的接口)我们只需要传递对象本身或者说实现某接口。
传递对象本身,我们不需要关心这个对象有哪些属性,还有哪些方法。这些都由对象本身自己去决定了。只要是这个对象是方法参数所对应的参数类型,或者是该类型的子类和实现类即可。
实现某些接口时候,当调用该接口时候,我们无需关心接口的实现细节。其内在行为由其实现者自己负责。
这些由java中类的继承和类型转换来实现。
子类能够继承父类的方法和属性,以达到扩展的目的。
通过方法的重写和重载来实现多态。其实我的理解是代码运行时候编译器知道当前对象是什么类型,会去调用该类型对象的自己的方法。以达到多态性。
java特性及一些注意点:
1、对象的初始化
(1)非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。
(2)静态对象的初始化
程序中主类的静态变量会在main方法执行前初始化。
不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
2、继承时,对象的初始化过程
(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。
(2)主类静态成员的初始化。
(3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。
(4)主类非静态成员的初始化。
(5)调用主类的构造方法。
3、关于构造方法
(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。
(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。
4、有关public、private和protected
(1)无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类在同一文件夹中,c.两个类在同一软件包中。
(2)protected:继承类和同一软件包的类可访问。
(3)如果构造方法为private,那么在其他类中不能创建该类的对象。
(1)抽象类不能创建对象。
(2)如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。
(3)继承抽象类的类在类中必须实现抽象类中的抽象方法。
(4)抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
(5)间接继承抽象类的类可以不给出抽象方法的定义。
6、final关键字
(1)一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。
(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化。
(3)final修饰的方法不能被重置(在子类中不能出现同名方法)。
(4)如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据成员可为final也可不是。
7、接口interface(用implements来实现接口)
(1)接口中的所有数据均为static和final即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值。
(2)接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。
(3)如果使用public来修饰接口,则接口必须与文件名相同。
(1)一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗号分隔。
(2)接口之间可多重实现,注意使用关键字implement。
(3)一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口继承的接口的方法,接口中的所有方法均须在类中实现。
9、接口的嵌入
(1)接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不能访问。
(2)嵌入接口中的接口一定要为public。
10、类的嵌入
(1)类可以嵌入另一个类中,但不能嵌入接口中。
(2)在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。
&&&&推荐文章:
【上篇】【下篇】js实现单机双人象棋演示及其分析_网易科技
js实现单机双人象棋演示及其分析
用微信扫码二维码
分享至好友和朋友圈
&&& 本程序实现的功能为本地二人对弈中国象棋,实现语言为javascript+VML,在windows 2000 pro+IE 6sp1的环境下测试通过。
&&& 程序默认的起始颜色为红色,只有执红色一方可以先走棋,双方轮流下棋,老将被吃则认为输棋,棋局结束,可以通过刷新页面重新开始。
&&& 下棋的时候,点击要走的棋子,将显示当前可走位置(小矩形)和可吃位置(加上红色框标记),然后点击对应位置即可走棋。如果要改选其他棋子,直接点击即可。
&&& 程序的演示地址:
&&& 设计概述:在一个复杂的、有界面、有交互的程序中,将控制模块与表现模块区分,分别编写是很有效的做法。这样能够使对界面、运算等的操作集中统一,便于修改与测试。
&&& 在整体设计上,本程序采用了将判断可行位置算法下放的做法。传统的象棋程序一般先取得欲移动棋子类型,然后由统一的算法判断目标位置是否可行。本程序把判断目标位置是否合法的方法下放到棋子,控制模块在判断当前走法合法性的时候,取得这个棋子对象,并且调用此对象的canGo方法来判断目标位置是否可行,这种做法比较有利于让程序充分体现面向对象特性。
&&& 棋盘单独作为一个模块实现,它具有一定规模,且实现了一个针对性比较强的功能,因此将它与其他模块隔离,单独编写。这个模块的主要事件集中在图形化效果的表现,同时也应当主意结构的层次性和合理性,并且应当向外界提供所生成棋盘的引用,让控制模块可以将棋子挂接在这个根元素上。
&&& 棋子本质为div对象,包含了一个图标文件,并且具有附加属性,如:颜色、种类、位置等。各种棋子有不少相似属性,但是具体差别还是不小,比如各棋子的判断可行位置走法。因此,先编写一个具有普遍性的棋子模块,拥有棋子的基本属性:坐标、图标、当前是否被攻击等情况,然后分别对于每种棋子,创建单独的模块。这个过程中采用了一种“伪继承”技术:在单独的棋子模块中,创建了一个通用的棋子变量,并且对它附加了一个canGo方法,然后,把这个棋子变量作为自己的创建结果返回出去。
&&& 为什么称这个为“伪继承”呢?很明显,js并不支持继承,而且,继承的实现方法并非如此。但是,我们做了继承所做的事情,即为父类型的对象添加了属性、方法,因此扩展了它的属性和方法,并且,最后将扩展完成的对象当作自己构造出来的对象返回出去,使得结果对象除了具有父对象的属性、方法,还拥有自己特有的属性及方法,因此,我们可以说这是某种形式的继承。
&&& 在程序中建立了一个全局二维数组situation用于保存棋子列表,各棋子对象存放其自身坐标等信息,还定义了各常量用于标记棋子颜色、种类等通用信息。
&&& 程序中所使用的资源文件有棋子图标及标记可走位置的图标。棋盘为VML代码绘制,各棋子分别置于单个div中,由一个外部的HTC文件控制其行为。这个HTC做了这样的事情:在点击当前棋子所在的div时,HTC中的check函数对当前点击对象进行处理,决定应当走棋或者其他操作。
&&& 在点击棋子时,将根据遍历棋盘坐标代入该棋子canGo方法的结果,取得可以移动的位置。如果这些位置当前没有棋子,则认为是可走位置,在对应位置产生一个Blank对象,放置一个提示图标。Blank对象同样是棋子模块的伪继承,它没有canGo方法,只保存了基本属性,专门用于标志可走位置。如果这些位置当前存在棋子,并且棋子的颜色与自身不同,则认为是可吃位置,将对应棋子加上红色边框标记,同时将其beAttack属性设为真。这样,走棋的时候即可据此判断。
&&& 走棋后,程序需要清除以前那些过期的标记,这是通过一个遍历实现的,从棋盘中检索到灰色对象,即认为它是标记,直接清除。另外,吃子的实现比较复杂,反复尝试replaceChild方法以后放弃了,因为遇到意想不到的问题,所以通过遍历检索来取代被吃棋子。这个步骤似乎可能有比较简便的实现方法,希望高手指教。
&&& 附记:很久以前,在51js论坛看见幻宇前辈的js版星际,就产生做这个象棋的念头,然后花一个小时参考美洲豹的VML教程写了棋盘,却因为各种原因搁置了。这次重新捡起来,花了一天半时间写了其他所有部分,测试了一会,没发现bug,先发布出来,给大家玩玩。有兴趣的朋友可以继续做,做成能够联机的版本,不是很难。此外,我暂时有一个部分没有设计,就是老将见面的判断,有空补上,hoho.基本的说明就先写这么多,以后慢慢把各部分代码加上注释,发在这里,大家不要着急啊。
本文来源:蓝色理想
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈基于QT的中国象棋算法设计与实现方案;(WORD版可编辑);摘要;中国象棋发展至今已有数千年的历史了,它是中华民族;本文章在研究分析对局树的基础上,先后运用极大极小;最后在此基础上,运用面向对象的技术,综合结构化程;关键词:中国象棋人工智能博弈树Alpha-Bet;WiththeimplementationofC;Abstract;Chinesechessd
基于QT的中国象棋算法设计与实现方案
(WORD版可编辑)
中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法比拟的,大至国际、国内比赛,小至社区街道。
本文章在研究分析对局树的基础上,先后运用极大极小查找和α-β修剪对查找下一步的算法进行了改进,并对中国象棋的对弈过程进行了有益的探讨。
最后在此基础上,运用面向对象的技术,综合结构化程序设计方法,将所有的操作逻辑封装于类,实现基于对局树算法的中国象棋游戏系统。系统使用QT开发工具,实现了一个具有一定棋力的中国象棋人机对弈和双人对战程序。
关键词:中国象棋 人工智能 博弈树 Alpha-Beta搜索
With the implementation of Chinese chess algorithm design based on QT
Chinese chess development has been several thousand years of history, and it is the wisdom of the Chinese nation. In China, the popularity of Chinese chess board is unmatched by other large to international and domestic competitions, small community streets。
This article is based on research and analysis on the game tree, has to find and use Minimax α-β pruning algorithm for finding the next improvement, the process of Chinese chess and chess for a useful discussion.
Finally, on this basis, the use of object-oriented technology, integrated structured programming method, all of the operating logic encapsulated in a class-based system to achieve Chinese chess game game tree algorithm. The system uses QT development tools to achieve human-computer chess and Chinese chess program that has a double battle of chess. Key words:
C artAlpha-Beta search
摘 要 ..................................................................................................................................... i Abstract ................................................................................................................................ ii
绪论 ............................................................... 1
中国象棋游戏设计背景和研究意义 ............................... 1
国内外象棋软件发展概况 ....................................... 1
中国象棋游戏设计研究方法 ..................................... 1
本文的主要工作 ............................................... 2
系统的分析和设计 ................................................... 3
棋盘和棋子的表示 ............................................. 3
着法生成 ..................................................... 5
博弈程序的实现 ..................................................... 7
搜索算法 ..................................................... 7
估值函数(Evaluation Function) ................................ 11
估值函数简介 .......................................... 11
估值函数的优化 ........................................ 12
着法排序 .............................................. 13
局面评估 .................................................... 16
走棋程序的实现 .................................................... 20
悔棋和还原功能的实现 ........................................ 20
着法名称显示功能的实现 ...................................... 22
主要函数 .................................................... 26
将军检测 .................................................... 30
系统实现 .......................................................... 31
系统的整体规划 .............................................. 31
对弈功能的实现 .............................................. 32
总 结 ................................................................ 38
参考文献 ............................................................. 39 致 谢 ................................................ 错误!未定义书签。
外文原文 ............................................................. 40
中文翻译 ............................................................. 47
中国象棋游戏设计背景和研究意义
中国象棋游戏流传至今已经有数千年的历史了,是一种古老的文化,它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人的毅力,增强人的竞争意识。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。在计算机已经普及的今天,对于可以用计算机进行程序编辑的人来说,开发属于自己的游戏,已经不再是梦想,中国象棋历史悠久不仅源远流长,而且基础广泛,作为一项智力运动更成为我们游戏开发的首选对象。
中国象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技,人可以与计算机进行对弈。控制计算机的是人类,而人工智能是综合性很强的一门边缘学科,它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中的人工智能技术的研究自然也就成了业界的一个热门研究方向。
国内外象棋软件发展概况
最早的象棋软件是一副可以外出携带的电子棋盘,后来升级到电视游戏机。开始出现的一些容量很小的象棋软件如:DOS界面《将族》、WIN31程序的《中国象棋》等等,与其说人类下不过电脑,倒不如说是没有耐性等待电脑程序慢吞吞的搜索算法,有时甚至怀疑软件是否在搜索中死掉了。后来,网络上先后出现了真正的WINDOWS窗口界面的象棋专业高级软件《棋隐》、《象棋世家》、《象棋参谋》、《象棋奇兵》等。总而言之,各类象棋软件既有自身的优点,也存在共通性的缺陷,如:中局审势不够智能化,走不出弃子取势的人性化佳构,残局时智力明显低于人脑,难以走出残局例胜的必然着法等。放眼未来,象棋软件已经走完了一波持续上涨的行情,有可能出现逐步降温的滑坡趋势。
中国象棋游戏设计研究方法
本系统主要用 Visual C++ 进行开发,里面的MFC类库,使游戏开发更加方便,并利用人工智能相关搜索算法实现人工智能的着法生成,从而完善整个游戏的功能。
该象棋人机博弈系统实现的功能主要包括:
1、选手选择(人或电脑);
2、人机对弈(人与电脑竞技);
3、悔棋、还原;
4、着法名称显示(象棋走棋规范名称)。
本文的主要工作
第一部分主要介绍了中国象棋游戏开发的背景及意义、国内外象棋软件的发展概况和象棋游戏的设计研究方法;
第二部分介绍了棋局表示方法和着法生成;
第三部分介绍了走棋和博弈程序的实现;
第四部分介绍了系统的实现。
三亿文库包含各类专业文献、中学教育、幼儿教育、小学教育、行业资料、外语学习资料、生活休闲娱乐、高等教育、10基于QT的中国象棋算法设计与实现方案等内容。 
 中国象棋需求与设计方案_企业管理_经管营销_专业资料...中国象棋需求与设计报告 开发过程:先实现了一个无 ...则其余代码的算法都不复杂,应当较容易阅读。 1.5 ...  19 5 中国象棋的算法设计与实现......Content Provider 是 Android 提供的第 三方应用数据的访问方案,提供共享的数据存储。在 Android 中,对数据的保护 是很严密...  基于Android平台的中国象棋设计与实现_互联网_IT/计算机...最后对中国象棋计算机博弈中常用 的算法进行了简要...这颗博弈树,并且找到最好的解决当前棋 局的方案。...  中国象棋游戏的设计与实现毕业设计毕业论文_工学_...搜索算法以及其它一些辅 助增强算法(还有众多基于 ...解决方案就是另外开一个线程,让各程序分开 于多个...  1.2 算法 ?指定服务器端口号 2 广西科技大学鹿...总体分析与设计 2.1 总体设计方案 ?系统功能模块图...功能及实现: 该类对棋子的走法进行了传统象棋规则...  (电脑棋力选择) *悔棋、还原; *着法名称显示; 整个程序的实现可分为两大部分: 一、人工智能算法设计(计算机下棋引擎) 该部分实现了如何让计算机下中国象棋,其中...  基于Android的中国象棋游戏的设计_其它_高等教育_教育专区。本文就在分析讨论...布局算法、音效和动画等进行了设计,并最终实现了一个界面友好、高效稳定和富有...  实现中国象棋的游戏功能,所以,棋子和棋盘 的设计在...最基本的 Alpha-Beta 算法的代码如下: int CAlpha...999感冒灵市场营销方案 汽车品牌的足球世界杯营销 网络...  代码实现 五、运行结果 Ⅵ 小结 Ⅰ摘要 中国象棋是一款很古老、很受欢迎的游戏...复 杂情况下函数的编写以及调用能力、二维数组的运用能力、复杂算法的设计能力等...}

我要回帖

更多关于 面向对象分类原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信