孩子学编程好还是学围棋好
建议学围棋,围棋锻炼的地方和培养孩子的习惯方面超过编程,而且现阶段市面上的编程少儿课程大多都是噱头,做点小游戏哄孩子的,真正的编程语言思想需要孩子有了一定的思维能力以后才好学的。围棋不难学,但难学好。想要成为高手需要长年累月的练习。那些世界冠军看似年纪轻轻,但实际上有寒窗十年。如果想学好围棋,提供一条路线:了解基本规则,了解活棋与死棋学习基本边角定式,网上都有学习死活常型,会做基本死活题,会基本手筋练习计算力:做成千上万死活题练习大局观:对弈学习新定式并了解为什么成为定式:用AI(例如LeelaZero)拆解围棋要学多少年才能有所成围棋要学多少年才能有所成并没有一个统一的标准,主要看人的天赋。天赋越强,越能更早有所成。学习围棋是一个漫长的战役,是一个循序渐进的过程,切忌急功近利,何况学无止境,有的人学了一辈子也就是个业余四段,有的人学了十年还是需要继续学习。除此之外,围棋本身就是一场修行,学习者要随着学习的时间增长才能慢慢体会其中蕴藏的内涵。一步一步来才踏实,学到的才是精华。
C++编程,象棋好编还是围棋,算法方面那个更简单点,各自特点,本人在学windowsAPI,C++功底还行
我个人觉得象棋好编一些,我正准备做一个象棋的,用AS3。。不过说算法就跟哪个语言无关了。。以前也用C++的,好久不用忘得差不多了。。
理由就是象棋的博弈复杂度比较低,一个固定的棋局顶多只有几十种“下一步”走法,而围棋是19*19数量级的,且象棋越到后面越简单,围棋越到后面越复杂。。
算法嘛,我也不是很清楚,很久以前只做过一个五子棋的,就穷举,算分,比最大。。
可以去网上看看别人的源码。。
更多追问追答
那五子棋和象棋比较,哪个的算法会比较复杂点?你以前写的五子棋算法复杂不,大概写了多少行?算法分析哪本书好点?谢谢。
感觉……当然象棋复杂些……
用AS3写了387行,不是蛮复杂,包括画棋盘棋子设置鼠标事件判断输赢等等加在一起,你给我个邮箱我可以把代码发给你。。
算法分析不清楚,在学校图书馆里看过不少,但觉得都差不多。。名字也忘了。。
可以先学一下《数据结构C语言版》,清华大学出版社的,严蔚敏编的,肯定有帮助。。
302527811@qq.com,是C++写的吧,其他语言写的我没编译器
...说过了用AS3写的。。我把代码和编译好的程序发给你。。发个swf和exe,swf你用浏览器打开试试看,要是你家浏览器没装flash插件你就开exe(毕竟exe总是不那么令人信服。。)。代码用记事本好了。。这个语言很好理解的,跟jsp差不多,语句跟C++除了声明变量和函数有一点不一样其他都差不多。。你也可以翻译成c++再编译。。
那个,我用的面向过程模式(帧上写代码),你就当C读。。其实它是个OPP语言,但是也可以不用。。这个程序比较小,就直接写算了。。。
已经发过去了。。
VB课程设计第二版第七题围棋的编写程序
界面你自已做一下了,源代码如下。Option?ExplicitDim?Board(0?To?18,?0?To?18)?As?Byte此数组标识棋盘上每个点是否有子:0?无子,1?黑,2?白子Dim?lastnum?As?Integer最新放置棋子的位置号Const?HDist?As?Integer?=?250Const?VDist?As?Integer?=?800Const?Grid?As?Integer?=?250Private?Sub?cmdRemoveBlack_Click()移除黑子Dim?i?As?IntegerFor?i?=?0?To?360If?Board(i?Mod?19,?i?\?19)?=?1?Then?Board(i?Mod?19,?i?\?19)?=?0:?shpChess(i).Visible?=?FalseNextCall?CountChessEnd?SubPrivate?Sub?cmdRemoveWhite_Click()移除白子Dim?i?As?IntegerFor?i?=?0?To?360If?Board(i?Mod?19,?i?\?19)?=?2?Then?Board(i?Mod?19,?i?\?19)?=?0:?shpChess(i).Visible?=?FalseNextCall?CountChessEnd?SubPrivate?Sub?cmdUndo_Click()撤消最后一步shpChess(lastnum).Visible?=?FalseBoard(lastnum?Mod?19,?lastnum?\?19)?=?0Call?CountChessEnd?SubPrivate?Sub?Command1_Click()Unload?MeEnd?SubPrivate?Sub?Form_Load()窗体加载时,使用直线控件数组生成19*19的围棋盘Dim?i?As?IntegerRandomize生成横线For?i?=?1?To?18Load?LinH(i)NextFor?i?=?0?To?18LinH(i).Visible?=?TrueLinH(i).X1?=?HDistLinH(i).Y1?=?VDist?+?Grid?*?iLinH(i).Y2?=?VDist?+?Grid?*?iLinH(i).X2?=?HDist?+?Grid?*?18Next生成竖线For?i?=?1?To?18Load?LinV(i)NextFor?i?=?0?To?18LinV(i).Visible?=?TrueLinV(i).Y1?=?VDistLinV(i).X1?=?HDist?+?Grid?*?iLinV(i).Y2?=?VDist?+?Grid?*?18LinV(i).X2?=?HDist?+?Grid?*?iNext生成棋子For?i?=?1?To?360Load?shpChess(i)shpChess(i).FillStyle?=?0shpChess(i).FillColor?=?vbWhiteNextFor?i?=?0?To?360shpChess(i).Top?=?(i?\?19)?*?Grid?+?VDist?-?100shpChess(i).Left?=?(i?Mod?19)?*?Grid?+?HDist?-?100shpChess(i).Visible?=?TrueNext读取已存的棋局If?Dir("save.txt")?<>?""?ThenOpen?"save.txt"?For?Input?As?#1For?i?=?0?To?360Input?#1,?Board(i?Mod?19,?i?\?19)NextCloseEnd?IfCall?CountChessEnd?SubPrivate?Sub?Form_MouseDown(Button?As?Integer,?Shift?As?Integer,?X?As?Single,?Y?As?Single)Dim?i?As?IntegerDim?j?As?Integer计算行列i?=?(X?-?HDist)?/?Gridj?=?(Y?-?VDist)?/?Grid防止下标越界If?i?>?18?Then?i?=?18If?i??18?Then?j?=?18If?j?