围棋源码
① 棋牌源码可以破解是真是假
假的。根据查询相关公开信息显示,网上还有许多骗子贩卖棋牌源码破解方法,下载后其实没有任何功能,而且还有盗号、木马的风险。棋牌是棋类和牌类娱乐项目让凯慎的总称,包括中国坦敬象棋、围棋、国际象棋、蒙古象棋孙兆、五子棋、跳棋、国际跳棋(已列入首届世界智力运动会项目)、军棋、桥牌、扑克、麻将等等诸多传统或新兴娱乐项目,也是一种传统文化。
② 逐鹿围棋的逐鹿围棋发展历史
在2002年左右,由于兴趣爱好,作者开发了逐鹿围棋的原型,一个叫HappyGO的小程序。这个程序非常简单,只对GNUGO围棋引擎做了简单封装,提供一个图型用户界面供用户使用。但是这个版本仅存在作者硬盘里,并未公开发布过。
后来通过修改HappyGO,完成了逐鹿1.0 Beta版,并发布到网上。不久即收到了不少用户的反馈信息,同时也发现了许多围棋软件的一些问题。 但由于时间的原因, 当时并没有立即解决这些问题。
为了满足广大棋友的要求, 作者大幅优化了系统,大部分模块都进行了重新设计。在经过较长时间的测试和试用测试后,在2003年推出1.0正式版。1.0包括两部分:围棋服务器和客户端。围棋服务器负责管理对局,提供人工智能,客户端则提供界面。首先要安装围棋服务器和客户端,使用时客户端通过网络连接到服务器,就可以开始下棋了,这样的设计很容易支持网络对局。但这样的系统安装和配置都比较麻烦,而且在网络条件不好的环境下很不稳定。
为了解决1.0版的问题,作者再次进行较大的修改,于2004年发布了逐鹿围棋2.0,这个版本采用回归到将围棋引擎(服务器)与客户端集成在一起的办法(两者之间通过计算机的管道进行通信), 使用户只要安装一个系统就可以了, 系统采用自动配置引擎的方式, 提高系统易用性, 让那些对计算机不太了解的用户也能顺利使用。这个版本非常稳定,而缺少了网络对局功能。
逐鹿围棋3.0在原来的2.0的基础上新增加了支持网络对局(局域网)的功能, 同时对系统原来不合理的地方进行了优化, 并且改正了原来的一些系统BUG。直到逐鹿围棋3.0,才是一个比较好用的版本,因此严格地说这个才是1.0的正式版,但于版本编号的原因,不可能再回退了。
2005年7月16日、9月26日和11月19日分别发布了逐鹿围棋3.0 Beta1、Beta2和Beta3三个测试版。
2006年1月20日发布3.0正式版 (3.0.2006.2)。
2006年6月27日发布3.1 (3.1.2006.7),作了局部优化改进.
2007年7月19日,发布逐鹿围棋3.2 (3.2.2007.7),新增了键盘落子功能。
2008年3月26日,发布逐鹿围棋3.3 (3.3.2008.4),新增了显示落子顺序的功能。
2008年5月18日,发布逐鹿围棋3.4 (3.4.2008.6),增加了将对局棋盘导出到单张BMP图片的功能。
2009年1月31日,发布逐鹿围棋3.5 (3.5.2009.2),变化:(1)改正了一个在小内存环境下导致引擎停止工作的严重BUG; (2)因更改主页而更新地址;(3)提供完整引擎源码下载连接。
2009年3月17日,发布逐鹿围棋4.0 Beta 1 (4.0.2009.4)。 变化:(1)增加了升级版的GNUGO围棋引擎3.6(至此系统支持四个GNUGO围棋引擎:3.0,3.2, 3.4,3.6),3.6的棋力较原有3个都强;(2)界面美化,支持主界面的棋盘背景、棋格线、光标、最后落子点的颜色或图片自定义设置; (3)增加了强大的对局导出功能,可以导出成单张图片或图组,如果是图组,可以采用HTML 格式支持浏览,图片格式有所增强,支持BMP格式和JPEG格式;(4)增加了侧边栏,既充分利用界面的剩余空间,又可以为棋友提供更多信息,同时也对免费逐鹿围棋不断发展提供了可能。
2009年12月29日,发布逐鹿围棋4.0 Beta 2 (4.0.2009.12),增加了落子音效,对局历史记录快速浏览,并加入重大子系统“逐鹿围棋共享工具”。
2010年7月5日, 发布逐鹿围棋4.0 Beta 3 (4.0.2010.7), 新增了保存/打开对局的功能,可以复盘;界面进一步美化(采用图型化棋子)。另外,由于存在较多问题,逐鹿围棋共享工具暂去掉。
2010年12月5日,发布逐鹿围棋4.0 RC1 (4.0.2011.2),开始支持远程在线看棋功能。
2011年1月2日,发布逐鹿围棋4.0 RC2 (4.0.2011.3),远程在线看棋功能优化并正式公开使用。
2011年2月13日,发布逐鹿围棋4.0 RC3 (4.0.2011.4),应一位盲人棋友的要求,简单地增加了语音助手, 可以支持语音报坐标、对局状态等信息。由于这个功能的加入,逐鹿围棋自此不再支持Windows 2000。
2011年9月26日,发布逐鹿围棋4.0最终正式版 (Final, 4.0.2011.9),仅在原有基础上作调整,无重大更新,恢复了逐鹿围棋共享工具(此时此工具仍有待完善)。至此,逐鹿围棋4.0的开发工作全部完成。
2011年11月20日,发布逐鹿围棋4.5 Beta (4.5.2012.0) ,变化包括:增加了两个新的围棋引擎Fuego, AmiGoGtp,去掉了较旧的GNU Go 3.0;界面变化;原来在新局界面中直接敲回车关闭对话框时直接在棋盘上落子的错误修正。
2012年2月14日,发布逐鹿围棋4.5 Beta 2 (4.5.2012.2),变化包括:棋盘四侧均显示坐标, 以方便在截图与他人沟通;增加了一个新的小工具 “逐鹿围棋动画制作工具”, 可以将导出的对局图片制作成GIF动画;去掉了一些不再需要的后台功能。
2012年6月26日,发布逐鹿围棋4.5 RC (4.5.2012.6),变化为:正式将最新fuego 1.1.3引擎集成到系统安装包中(这是在软件发布时,fuego发布的最强的版本);逐步去掉了网络对战功能(网络对战功能计划在5.0再全新支持),隐藏状态栏上的一些信息;检查XP系统的防火墙并将自己作为例外以方便其他用户网络看棋。 2012年10月21日,发布逐鹿围棋4.5 RC2 (4.5.2012.9),变化为:(a)增加了全新的程序初始化设置窗口, 在安装后第一次启动时要求用户选择使用的界面语言和防火墙设置;(b)比较全面的英文界面支持;(c)工具栏图标支持tooltip提示;(d)解决了非GNUGO引擎使用让子模式时出错的问题;(e)修改安装程序,以更好地支持英文和中文繁体安装界面。
2012年12月16日,发布逐鹿围棋4.5 RC3 (4.5.2013.0),变化为:(a)去掉右下角图片广告区;(b)英文版界面优化,去除少量没有彻底改成英文的信息; (c)修正了对局比分带负数的BUG;(d)安装程序链接地址调整;(e)程序在其它方面进行了微小调整(如检查.Net framewrok的策略变化)。
4.x系列仍然是采用3.0的框架和内核,只是一些功能增强和错误修正。4.5将是WIN32平台的最后版本,已经进入RC阶段,将不会有功能变化和升级。
③ 用C语言编程 在屏幕上显示围棋棋盘
--
以怎么不用 MS VC++6 ??
编C语言一般都用啊
还有\xCD是C语言
Ascii代码 表示一个图形
用循环语句啊!
等我一下 晚上写出来 贴上哦
晚上10:00 上完课回来
呵呵 分给不给 随便 你的问题让我熟练了许多
分不重要了
我终于写出来了
调试了30分钟啊!
纯粹的循环 + 判断
-- 我就这点水平了 算法可能不好
如果有更好的告诉我 上QQ 或发网络消息给我
网络的显示有问题 最好
用源代码格式化工具格式化一下 网络有搜
#include <stdio.h>
void main()
{
int n,m,x,y,temp,j=0,i=0 ;
printf("输入棋盘的横格数,竖格数:\n");
scanf("%d,%d",&x,&y);
printf("%d,%d\n",x,y);
n=2*x+1 ;
m=2*y+1 ;
printf("%d,%d\n",n,m);
while(j<m)
{
j++;
temp=j%2 ;
i=0 ;
if(j==1)
{
while(i<n)
{
i++;
if(i==1)
{
printf("\xC9");
continue ;
}
if(n==i)
{
printf("\xBB\n");
continue ;
}
if(i%2!=0)
{
printf("\xCB");
continue ;
}
if(i%2==0)
{
printf("\xCD\xCD\xCD");
continue ;
}
}
continue ;
}
if(m==j)
{
while(i<n)
{
i++;
if(i==1)
{
printf("\xC8");
continue ;
}
if(n==i)
{
printf("\xBC\n");
continue ;
}
if(i%2!=0)
{
printf("\xCA");
continue ;
}
if(i%2==0)
{
printf("\xCD\xCD\xCD");
continue ;
}
}
continue ;
}
if(temp==0)
{
while(i<n)
{
i++;
if(i%2!=0)
{
printf("\xBA");
if(n==i)printf("\n");
continue ;
}
if(i%2==0)
{
printf(" ");
continue ;
}
}
continue ;
}
if(temp!=0&&j!=1)
{
while(i<n)
{
i++;
if(i==1)
{
printf("\xCC");
continue ;
}
if(n==i)
{
printf("\xB9\n");
continue ;
}
if(i%2!=0)
{
printf("\xCE");
continue ;
}
if(i%2==0)
{
printf("\xCD\xCD\xCD");
continue ;
}
}
continue ;
}
}
}
100%编译通过
可以画出任意大小的棋盘
如 5*3 5*5
只要你的屏幕能够显示
以上是用图像库画的棋盘
下面是用 __ 和 |
画的棋盘 其实很简单 替换一下就可以了
#include <stdio.h>
void main()
{
int n,m,x,y,temp,j=0,i=0 ;
printf("输入棋盘的横格数,竖格数:\n");
scanf("%d,%d",&x,&y);
printf("%d,%d\n",x,y);
n=2*x+1 ;
m=2*y+1 ;
printf("%d,%d\n",n,m);
while(j<m)
{
j++;
temp=j%2 ;
i=0 ;
if(j==1)
{
while(i<n)
{
i++;
if(i==1)
{
printf("__");
continue ;
}
if(n==i)
{
printf("__\n");
continue ;
}
if(i%2!=0)
{
printf("__");
continue ;
}
if(i%2==0)
{
printf("__");
continue ;
}
}
continue ;
}
if(m==j)
{
while(i<n)
{
i++;
if(i==1)
{
printf("__");
continue ;
}
if(n==i)
{
printf("__\n");
continue ;
}
if(i%2!=0)
{
printf("__");
continue ;
}
if(i%2==0)
{
printf("__");
continue ;
}
}
continue ;
}
if(temp==0)
{
while(i<n)
{
i++;
if(i%2!=0)
{
printf("|");
if(n==i)printf("\n");
continue ;
}
if(i%2==0)
{
printf(" ");
continue ;
}
}
continue ;
}
if(temp!=0&&j!=1)
{
while(i<n)
{
i++;
if(i==1)
{
printf("__");
continue ;
}
if(n==i)
{
printf("__\n");
continue ;
}
if(i%2!=0)
{
printf("__");
continue ;
}
if(i%2==0)
{
printf("__");
continue ;
}
}
continue ;
}
}
}
④ 求围棋的VB源代码~
来~加 我 的QQ405557154 我做了一个,还有一同学做的,还有一是网上的朋友做的呵呵
Private Sub Timer1_Timer()
Dim ms As Boolean
Dim Info, temp As String
Dim p, p1, p2, i As Integer
Dim Ch
' Begin of Time Show Process
If ModemState <> LOGIN And SocketState <> CONNECTED Then
'it is not a multiusers game
Exit Sub
Else
If (S_R = 1) And (TURN = BLACKP) Then
Black_Time = Black_Time + Time - Start_Time
TimeB.Caption = CDate(Black_Time / 200)
Else
If (S_R = 1) And (TURN = WHITEP) Then
White_Time = White_Time + Time - Start_Time
TimeW.Caption = CDate(White_Time / 200)
Else
If (S_R = 0) And (TURN = WHITEP) Then
Black_Time = Black_Time + Time - Start_Time
TimeB.Caption = CDate(Black_Time / 200)
Else
If (S_R = 0) And (TURN = BLACKP) Then
White_Time = White_Time + Time - Start_Time
TimeW.Caption = CDate(White_Time / 200)
End If
End If
End If
End If
End If
'End If
' End of Time Show Process
'Begin of winsockt process
If SocketState = CONNECTED And Begin_Flag = 1 Then
ms = Net.Message_Exist
If ms = False Then
Exit Sub
End If
Info = Net.WaitForValue(Chr$(26), 5)
If g_ErrorCode = 1 Then
'Some error such as Timeout occured
Exit Sub
End If
p1 = InStr(Info, "B")
p2 = InStr(Info, "E|;")
If p1 = 0 Or p2 = 0 Then
Exit Sub
End If
temp = Mid$(Info, p1 + 1, p2 - p1 - 1)
ParseLine (temp)
Msg(Msg_No).No = CInt(ParseArray(1))
Msg(Msg_No).Color = CInt(ParseArray(2))
If IsNumeric(ParseArray(3)) Then
Msg(Msg_No).X = CInt(ParseArray(3))
Msg(Msg_No).Y = CInt(ParseArray(4))
Else
Msg(Msg_No).X = ParseArray(3)
Msg(Msg_No).Y = ParseArray(4)
End If
If Msg(Msg_No).Color = GIVEUP Then
Beep
MsgBox ("对方已经认输了")
Net.Winsock1.SendData ("R_O" + Chr$(26))
Pause 3
Call Begin_Click
Exit Sub
End If
If Side = BLACKP Then
p = Draw_Point(Msg(Msg_No).X, Msg(Msg_No).Y, WHITEP)
Record(Step).Color = WHITEP
step_show.Cls
step_show.Print Step
TURN = BLACKP
Else
p = Draw_Point(Msg(Msg_No).X, Msg(Msg_No).Y, BLACKP)
Record(Step).Color = BLACKP
step_show.Cls
step_show.Print Step
TURN = WHITEP
End If
Record(Step).X = Msg(Msg_No).X
Record(Step).Y = Msg(Msg_No).Y
Step = Step + 1
S_R = 1
R_R = 0
p = Count_All_Gas
If (Msg(Msg_No).X > 0 And Msg(Msg_No).Y > 0 _
And Msg(Msg_No).X < 20 And Msg(Msg_No).Y < 20) Then
Board(Msg(Msg_No).X, Msg(Msg_No).Y).Current = True
Refresh_Board
Board(Msg(Msg_No).X, Msg(Msg_No).Y).Current = False
End If
Msg_No = Msg_No + 1
Pause 1
Net.Winsock1.SendData ("R_O" + Chr$(26))
Exit Sub
End If
'End of process of winsocket
'Begin of modem process
If ModemState <> LOGIN Or R_R <> 1 Then
'It isn't a Inter_Modem Game
Exit Sub
End If
ms = Modem_F.Exist_Msg
If ms = False Then
'IO Port don't have any message
Exit Sub
End If
Info = Modem_F.WaitForValue(Chr$(26), 5)
'Wait a playing message
If g_ErrorCode = 1 Then
'Some error such as Timeout occured
Exit Sub
End If
p1 = InStr(Info, "B")
p2 = InStr(Info, "E|;")
If p1 = 0 Or p2 = 0 Then
Exit Sub
End If
temp = Mid$(Info, p1 + 1, p2 - p1 - 1)
ParseLine (temp)
Msg(Msg_No).No = CInt(ParseArray(1))
Msg(Msg_No).Color = CInt(ParseArray(2))
If IsNumeric(ParseArray(3)) Then
Msg(Msg_No).X = CInt(ParseArray(3))
Msg(Msg_No).Y = CInt(ParseArray(4))
Else
Msg(Msg_No).X = ParseArray(3)
Msg(Msg_No).Y = ParseArray(4)
End If
Modem_F.Comm1.InBufferCount = 0
'Clear Buffer
If Msg(Msg_No).Color = LOGOUT Then
Beep
MsgBox ("对方已经退出了")
Modem_F.Comm1.InBufferCount = 0
Modem_F.Comm1.Output = "R_O" + Chr$(26)
Cls
Step = 0
Start_Time = Time
Black_Time = 0
White_Time = 0
Exit Sub
End If
If Msg(Msg_No).Color = FINISHED Then
Beep
Ch = MsgBox("对方要求结束比赛,可以吗?", vbYesNo)
Modem_F.Comm1.InBufferCount = 0
If Ch = 6 Then
Modem_F.Comm1.Output = "YESR_O" + Chr$(26)
Else
Modem_F.Comm1.Output = "NOR_O" + Chr$(26)
Exit Sub
End If
PlayState = FINISHED
Count_Area.Enabled = True
End If
If Msg(Msg_No).Color = GIVEUP Then
Beep
MsgBox ("对方已经认输了")
Modem_F.Comm1.InBufferCount = 0
Modem_F.Comm1.Output = "R_O" + Chr$(26)
Call Begin_Click
Exit Sub
End If
If Msg(Msg_No).Color = TALK Then
Beep
MsgBox (Modem_F.His_Name.Text & "说: " & Msg(Msg_No).X)
Modem_F.Comm1.InBufferCount = 0
Modem_F.Comm1.Output = "R_O" + Chr$(26)
Exit Sub
End If
If Msg(Msg_No).Color = UNDO Then
Step = Step - 1
Beep
Modem_F.Comm1.InBufferCount = 0
Modem_F.Comm1.Output = "R_O" + Chr$(26)
Draw_Board
Ini_Board
For i = 1 To Step - 1
Board(Record(i).X, Record(i).Y).Current = False
p = Draw_Point(Record(i).X, Record(i).Y, Record(i).Color)
step_show.Cls
step_show.Print Step
p = Count_All_Gas
Next i
Board(Record(Step - 1).X, Record(Step - 1).Y).Current = True
Refresh_Board
Board(Record(Step - 1).X, Record(Step - 1).Y).Current = False
S_R = 1
R_R = 0
TURN = Side
Exit Sub
End If
Modem_F.Comm1.InBufferCount = 0
Modem_F.Comm1.Output = "R_O" + Chr$(26)
If Side = BLACKP Then
p = Draw_Point(Msg(Msg_No).X, Msg(Msg_No).Y, WHITEP)
Record(Step).Color = WHITEP
step_show.Cls
step_show.Print Step
Else
p = Draw_Point(Msg(Msg_No).X, Msg(Msg_No).Y, BLACKP)
Record(Step).Color = BLACKP
step_show.Cls
step_show.Print Step
End If
Record(Step).X = Msg(Msg_No).X
Record(Step).Y = Msg(Msg_No).Y
Step = Step + 1
S_R = 1
R_R = 0
p = Count_All_Gas
If (Msg(Msg_No).X > 0 And Msg(Msg_No).Y > 0 _
And Msg(Msg_No).X < 20 And Msg(Msg_No).Y < 20) Then
Board(Msg(Msg_No).X, Msg(Msg_No).Y).Current = True
Refresh_Board
Board(Msg(Msg_No).X, Msg(Msg_No).Y).Current = False
End If
Msg_No = Msg_No + 1
End Sub
Private Sub Timer2_Timer()
ShowS.Cls
ShowS.Print " :-):-):-):-):-) " + Show_String(C1) + " (:-(:-(:-(:-(:-"
C1 = C1 + 1
If C1 = 10 Then
C1 = 0
End If
Game_Time.Cls
Game_Time.Print " 现在时间: " & Time
End Sub
Private Sub Set_Hand(h As Integer)
'设置让子(1-9)
Dim p As Integer
If h <= 1 Then
'Not a Handicap game
Exit Sub
End If
部分代码。。