五子棋人机在线玩(五子棋人机在线玩)
谁有C语言人人和人机对战,键盘输入,有禁手的 控制台 黑窗口程序代码???
Private Sub mnuHigher_ClIf Grid(I) = 0 Thenick()帮做,50微信红包就可以
五子棋人机在线玩(五子棋人机在线玩)
五子棋人机在线玩(五子棋人机在线玩)
从键盘输入的语句scanf函数语句C语言输入是最常用的函数原型INT scanf函数(字符格式的args,...);功能是从标准输入设备格式串的格式指向由格式所规定的输入数据点到的args单元。 C ++,您可以通过两种方式使用scanf函数语句和CIN(标准输入流)。霉素是从键盘向数据流的存储器流从与>>作者输入的CIN流输入设备键盘获得数据的标准输入流。
有斗兽棋五子棋连连看的软件叫什么
LineGen wz, -6《斗兽棋》、《五子棋》、《连连看》的软件分别有:
lblHelp.Visible = False1. 斗兽棋:For出品的经典国产桌面游戏移植,支持在线对战,可与计算机对战。
2. 五子棋:日本研发,经典五子棋游戏,支持人机对战、战地模式、联机对战三种。
3. 连连看:由国内团队开发的一款经典小游戏的合集类游戏,包括消消乐、对对碰、方块等游戏。
十种简易棋类游戏
Grid(Tb(0)) = 2十种简易棋类游戏如下:
b = IIf(I - 4 > 0, I - 4, 0)1、《五子棋经典版》。
《五子棋经典版》黑白世界两相争,棋枰方寸定输赢。妙趣五子棋-经典两人对弈策略,趣味横生,引人入胜。
2、《万宁五子棋》。
《万宁五子棋》花样玩棋,游戏分为新手模式,大招模式,经典模式。
3、《五子棋传奇》。
《五子棋传奇》是一款经典五子棋的休闲益智向游戏 经典的五子棋,黑子与白子的对决 挑战各种五子棋残局,与各种等级的AI对战 好友面对面线下PK,传奇对决现场见证 不断磨炼技巧,成为最强的五子棋达人!
4、《天元五子棋》。
《天元五子棋》是一款清新在线联网对战,房间邀请好友的五子棋游戏。
5、《口袋象棋》。
《口袋象棋》是一款特色象棋对战游戏,游戏有多种都可以选择,还有全新模式等待玩家们参与哦。
6、《经典象棋》。
《经典象棋》经典象棋是一款类游戏,象棋作为古代伟大发明,其魅力一直延续至今,在国内流传十分广泛。
7、《斗兽战棋》。
《斗兽战棋》是一款多人决斗的斗兽战棋游戏,在这款游戏中玩家可以体验3-5分钟的策略战斗过程,并且与来自全球各个地区的玩家一决胜负。
8、《双人象棋》。
《双人象棋》是一款二人对抗性的游戏,象棋由于用具简单,对抗性强,成为广泛流行的棋艺活动。
9、《童年飞行棋》。
《童年飞行棋》是一款版飞行棋游戏来。让玩家可以随时随地的都能来一把飞行棋游戏,重温童年的游戏快乐时光。
10、《跳棋大作战》。
《跳棋大作战》是一款具有浓郁特色的益智游戏,具有人机对战模式,新增的联网对战,同时支持6人在线对战。
棋有哪几种:
棋包括象棋、围棋、象棋、蒙古象棋、五子棋、跳棋、跳棋。其中的象棋是棋文化也是中华民族的文化瑰宝,它源远流长,趣味浓厚,基本规则简明易懂,千百年来长盛不衰。象棋是模拟的古代、直线、陆地、平面。
在古代,象棋被列为士大夫们的修身之艺。
通过网络五子棋的人机对战中,为什么赢不了电脑? 通过网络五子棋的人机对战中,为什
mnuFirst.Checked = True本人认为你的观点是不对的。只要懂得那些五If Grid(I + K 15) = 0 Then LineWin = I + K 15: Exit Function子定式、在无禁手的规则下、黑(先)是可以必胜的。而在禁手规则时、“花月”和“浦月”这两个定式也是可以持黑必胜的。所以也就没有电脑必胜的说法了。建议在“爱五子棋网”注册、很多好东西的。
因为他走禁手与必胜开局 如果他开疏星瑞星平衡就不会赢的
人可以思考几步?而机器可以思考几步?而且机器总是把它搜索到的步骤内的解找出来,而人是做不到这一点的。
人赢机器只有当机器的搜索步骤小于人的思考步骤,或者人找到了足以使机器输掉的程序漏洞,比如说一些学习机上的五子棋我就可以以同样的步骤赢一千遍。
五子棋联机,人机模式有什么区别
区别如If Grid(I + 5) = 0 Then下:
联机模式:有三个不同的场次和难度可以选择,你随时都可以邀请好友加入来玩If mnuAfter.Checked = True Then。
人机模式:也有多个不同的难度可以选择,和智能AI对战,是更加具有挑战性的。
求一个带界面的人机对战的五子棋游戏,AI不用很高
'四子一线界面人人对战,已完成,人机还在研究中~~c实现,截个图吧:
Image3(I).Left = (I Mod 15) 22 + 5c:和c++不多
C#:功能强大:
正好只写过dos界面的人机对战和带界面的人人对战,就是没有带界面人机对战
求五子棋人机对战算法
Next K'在窗体上加入以下控件
'image1(0),image1(0) - 黑白棋
'image2,image3(0)
'form中的picture为棋盘。因无法上传,请自行领会。
Option Explicit
Dim I, J, K, Counter, Firstmoved, Rt, Gen, r, flag As Integer
Dim Grid(225), H(224), V(224), RL(224), LR(224), Tb(2), Order(225) As Integer
Private Sub Form_Initialize()
lblHelp.Top = 0
lblHelp.Left = 0
Image1(0).Top = -1000
Image1(1).Top = -1000
lblHelp.Left = -lblHelp.Width
lblHelp = vbCrLf + vbCrLf + " 游戏帮助" + vbCrLf _
+ vbCrLf + vbCrLf + "●游戏规则:黑方先行,轮流弈子,任一方向先连成五子者胜." _
+ vbCrLf + vbCrLf + vbCrLf + "●作提示:①可选择[先后]、[难度]和[对手]菜单设置游戏," _
+ vbCrLf + vbCrLf + " 只有按[游戏]->[开始]后才可在棋盘上落子." _
+ vbCrLf + vbCrLf + " ②按[游戏]->[清盘]可重玩并设置游戏." _
+ vbCrLf + vbCrLf + " ③落子后按[动作]菜单下的选择可任意悔棋和恢复." _
+ vbCrLf + vbCrLf + " ④各功能菜单都提供了快捷键(Alt+相应字母)." _
+ vbCrLf + vbCrLf + vbCrLf + "●有什么问题请与本人联系.电子邮件:xwwxyz@sin." _
+ vbCrLf + vbCrLf + vbCrLf + "●本页面单击后隐藏."
End Sub
Private Sub Form_Resize()
Me.Height = 5800
Me.Width = 5100
End Sub
Private Sub lblHelp_Click()
End Sub
Private Sub mnuAfter_Click()
Firstmoved = 0
mnuAfter.Checked = True
mnuFirst.Checked = False
End Sub
Private Sub Form_Load()
Dim I As Integer
For I = 1 To 224
Load Image3(I) '加载棋子控件
Image3(I).Top = (I 15) 22 + 5
Image3(I).Visible = True
Next
Ini
End Sub
'游戏初始化
Sub Ini()
For I = 0 To 224
Image3(I) = Image2
Image3(I).Enabled = False
Grid(I) = 0
V(I) = 0
H(I) = 0
LR(I) = 0
RL(I) = 0
Next I
mnuBack.Enabled = False
Counter = 0
Gen = 0
Firstmoved = 0
Else
Firstmoved = 1
mnuStart.Enabled = True
End Sub
'一方是否可获胜
Function LineWin(Piece As Integer) As Integer
Dim mun As Integer
LineWin = 225
'五子一线
mun = Piece 5
For I = 0 To 224
If H(I) = mun Or V(I) = mun Or RL(I) = mun Or LR(I) = mun Then
LineWin = 225 + Piece
Exit Function
Next I
mun = Piece 4
For I = 0 To 224
If H(I) = mun Then
For K = 0 To 4
If Grid(I + K) = 0 Then LineWin = I + K: Exit Function
If V(I) = mun Then
For K = 0 To 4
If RL(I) = mun Then
For K = 0 To 4
If Grid(I + K 14) = 0 Then LineWin = I + K 14: Exit Function
If LR(I) = mun Then
For K = 0 To 4
If Grid(I + K 16) = 0 Then LineWin = I + K 16: Exit Function
Next I
End Function
'计算机走棋
Sub ComrMove()
Dim ToMove As Integer
If Counter = 0 Then
Randomize
I = Int(Rnd 7 + 4)
J = Int(Rnd 7 + 4)
If Grid(I 15 + J) = 0 Then ToMove = I 15 + J
Else
If mnuLower.Checked = True Then ToMove = Defend Else ToMove = Attempt
Counter = Counter + 1
If Firstmoved = 0 Then Image3(ToMove) = Image1(0) Else Image3(ToMove) = Image1(1)
Grid(ToMove) = 2
Order(Counter) = ToMove
LineGen ToMove, 6
If LineWin(6) = 231 Then
MsgBox "您输了!"
Ini
Exit Sub
If Counter = 225 Then
MsgBox "和棋"
Ini
Exit Sub
End Sub
'低级模式
Function Defend() As Integer
Rt = LineWin(6)
If Rt < 225 Then Defend = Rt: Exit Function
Rt = LineWin(1)
If Rt < 225 Then Defend = Rt: Exit Function
'查找落子位置
Rt = FindBlank
If Rt < 225 Then Defend = Rt: Exit Function
End Function
'悔棋
Private Sub mnuBack_Click()
mnuComeback.Enabled = True
If (Counter + Firstmoved) Mod 2 = 0 Then Rt = -1 Else Rt = -6
Grid(Order(Counter)) = 0
Image3(Order(Counter)) = Image2
LineGen Order(Counter), Rt
Counter = Counter - 1
If mnuComr.Checked = True Then
Grid(Order(Counter)) = 0
Image3(Order(Counter)) = Image2
LineGen Order(Counter), -1
Counter = Counter - 1
Else
flag = 1 - flag
If Counter = 1 And Firstmoved = 0 And mnuComr.Checked = True Then mnuBack.Enabled = False
If Counter = 0 Then mnuBack.Enabled = False
End Sub
'恢复棋子
Private Sub mnuComeback_Click()
mnuBack.Enabled = True
Counter = Counter + 1
If (Counter + Firstmoved) Mod 2 = 0 Then
Grid(Order(Counter)) = 1
Image3(Order(Counter)) = Image1(1 - Firstmoved)
LineGen Order(Counter), 1
Else
Grid(Order(Counter)) = 2
Image3(Order(Counter)) = Image1(Firstmoved)
LineGen Order(Counter), 6
If mnuComr.Checked = True Then
Counter = Counter + 1
Grid(Order(Counter)) = 2
Image3(Order(Counter)) = Image1(Firstmoved)
LineGen Order(Counter), 6
Else
flag = 1 - flag
r = r - 1
If r = 0 Then mnuComeback.Enabled = False
End Sub
Private Sub mnuComr_Click() '对手
mnuComr.Checked = True '电脑
mnuHuman.Checked = False '棋手
End Sub
Private Sub mnuClear_Click() '清盘
Ini
mnuFirst.Enabled = True
mnuAfter.Enabled = True
mnuLower.Enabled = True
mnuHigher.Enabled = True
mnuComr.Enabled = True
mnuHuman.Enabled = True
End Sub
Private Sub mnuHuman_Click()
mnuHuman.Checked = True
mnuComr.Checked = False
End Sub
Private Sub mnuStart_Click() '开始
For I = 0 To 224
Image3(I).Enabled = True
Next I
mnuFirst.Enabled = False
mnuAfter.Enabled = False
mnuLower.Enabled = False
mnuHigher.Enabled = False
mnuComr.Enabled = False
mnuHuman.Enabled = False
If Firstmoved = 0 And mnuComr.Checked = True Then ComrMove
If Firstmoved = 0 And mnuHuman.Checked = True Then flag = 1 Else flag = 0
mnuStart.Enabled = False
End Sub
'玩家走棋
Private Sub image3_Click(Index As Integer)
If Grid(Index) <> 0 Then Exit Sub
Counter = Counter + 1
If Firstmoved = 0 Then
Image3(Index) = Image1(1 - flag)
Else
Image3(Index) = Image1(flag)
Grid(Index) = 1 + flag
Order(Counter) = Index
mnuBack.Enabled = True
mnuComeback.Enabled = False
r = 0
LineGen Index, (1 + flag 5)
If LineWin(1 + flag 5) = 226 + flag 5 Then
If flag = 0 Then MsgBox "您赢了!" Else MsgBox "您输了!"
Ini
Exit Sub
If Counter = 225 Then
MsgBox "和棋"
Ini
Exit Sub
If mnuComr.Checked = True Then ComrMove Else flag = 1 - flag
End Sub
'查找可以落子的空位
Function FindBlank() As Integer
Dim wz, fs, lz, RndNum As Integer
fs = -10000
For wz = 0 To 224
If Grid(wz) = 0 Then
Grid(wz) = 2
LineGen wz, 6
Rt = Gen
If Rt > fs Then fs = Rt: lz = wz
Grid(wz) = 0
Next wz
FindBlank = lz
End Function
'高级模式
Function Attempt() As Integer
Dim wz As Integer
Rt = LineWin(6)
If Rt < 225 Then Attempt = Rt: Exit Function
Rt = LineWin(1)
If Rt < 225 Then Attempt = Rt: Exit Function
'查找落子位置
Rt = linree(6)
If Rt < 225 Then Attempt = Rt: Exit Function
Rt = linree(1)
If Rt < 225 Then
LineGen Tb(0), 6
Rt = Gen: wz = Tb(0)
Grid(Tb(0)) = 0
LineGen Tb(0), -6
Grid(Tb(1)) = 2
LineGen Tb(1), 6
If Rt < Gen Then Rt = Gen: wz = Tb(1)
Grid(Tb(1)) = 0
LineGen Tb(1), -6
Grid(Tb(2)) = 2
LineGen Tb(2), 6
If Rt < Gen Then Rt = Gen: wz = Tb(2)
Grid(Tb(2)) = 0
LineGen Tb(2), -6
Attempt = wz
Exit Function
Rt = FindBlank
If Rt < 225 Then Attempt = Rt: Exit Function
End Function
Private Sub mnuFirst_Click() '先后手
Firstmoved = 1
mnuAfter.Checked = False
End Sub
mnuLower.Checked = False
mnuHigher.Checked = True
End Sub
Private Sub mnuLower_Click() '难度
mnuLower.Checked = True
mnuHigher.Checked = False
End Sub
'局势End If评估
Function LineGen(ij, Piece)
Dim b, e, mun As Integer
I = ij 15
'横线影响
b = IIf(J - 4 > 0, J - 4, 0)
e = IIf(J > 10, 10, J)
For K = b To e
mun = H(I 15 + K)
If mun < 6 Then Gen = Gen + mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen - mun 2 ^ mun
H(I 15 + K) = H(I 15 + K) + Piece
mun = H(I 15 + K)
If mun < 6 Then Gen = Gen - mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen + mun 2 ^ mun
'竖线影响
e = IIf(I > 10, 10, I)
For K = b To e
mun = V(K 15 + J)
If mun < 6 Then Gen = Gen + mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen - mun 2 ^ mun
V(K 15 + J) = V(K 15 + J) + Piece
mun = V(K 15 + J)
If mun < 6 Then Gen = Gen - mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen + mun 2 ^ mun
'撇线影响
e = IIf(I > 10, 10, I)
b = IIf(b > J + I - IIf(J + 4 > 14, 14, J + 4), b, J + I - IIf(J + 4 > 14, 14, J + 4))
e = IIf(e > J + I - IIf(J > 4, J, 4), J + I - IIf(J > 4, J, 4), e)
For K = b To e
mun = RL(K 15 + I + J - K)
If mun < 6 Then Gen = Gen + mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen - mun 2 ^ mun
RL(K 15 + I + J - K) = RL(K 15 + I + J - K) + Piece
mun = RL(K 15 + I + J - K)
If mun < 6 Then Gen = Gen - mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen + mun 2 ^ mun
'捺线影响
e = IIf(I > 10, 10, I)
b = IIf(b > I - J + IIf(J - 4 > 0, J - 4, 0), b, I - J + IIf(J - 4 > 0, J - 4, 0))
e = IIf(e > I - J + IIf(J > 10, 10, J), I - J + IIf(J > 10, 10, J), e)
For K = b To e
mun = LR(K 15 - I + J + K)
If mun < 6 Then Gen = Gen + mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen - mun 2 ^ mun
LR(K 15 - I + J + K) = LR(K 15 - I + J + K) + Piece
mun = LR(K 15 - I + J + K)
If mun < 6 Then Gen = Gen - mun 2 ^ mun
If mun > 5 And mun Mod 6 = 0 Then mun = mun 6 - 1: Gen = Gen + mun 2 ^ mun
End Function
'是否存在三子一线(可发展成五子联线)
Function linree(Piece As Integer) As Integer
Dim mun As Integer
linree = 225
'三子一线
mun = Piece 3
For I = 0 To 224
If H(I) = mun Then
If I Mod 15 < 10 Then
For K = 1 To 4
If Grid(I + K) = 0 Then
Tb(0) = I + K
Tb(1) = I
Tb(2) = I + 5
linree = Tb(0)
Exit Function
If V(I) = mun Then
If (I 15) < 10 Then
If Grid(I + 75) = 0 Then
For K = 1 To 4
If Grid(I + K 15) = 0 Then
Tb(0) = I + K 15
Tb(1) = I
Tb(2) = I + 75
linree = Tb(0)
Exit Function
If RL(I) = mun Then
If (I 15) < 10 And I Mod 15 > 4 Then
If Grid(I + 70) = 0 Then
For K = 1 To 4
If Grid(I + K 14) = 0 Then
Tb(0) = I + K 14
Tb(1) = I
Tb(2) = I + 70
linree = Tb(0)
Exit Function
If LR(I) = mun Then
If (I 15) < 10 And I Mod 15 < 10 Then
If Grid(I + 80) = 0 Then
For K = 1 To 4
If Grid(I + K 16) = 0 Then
Tb(0) = I + K 16
Tb(1) = I
Tb(2) = I + 80
linree = Tb(0)
Exit Function
Next I
End Function
Private Sub munHelp_Click() '帮助
lblHelp.Visible = True
End Sub
欢乐五子棋人机什么水平
J = ij Mod 15欢乐五子棋人机水平很高。根据查询相关资料显示,五子棋人机天人合一水平相比于人类,人类还是占的。现存的五子棋AI技术程序还是不够。五子棋AI与人对决是什么水平现在看起来可以玩是因为这AI不是为了和普通人下棋而设计的,它是为了和其他五子棋AI玩gomocup才弄出来的。
r = r + 1声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。