谁有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 = False

1. 斗兽棋: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 + 5

c:和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