打cs和下爱五子棋打谱软件那个好?都是在电脑上

没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!老师,上课玩游戏是我不对,但您下次能走正门么?
面码酱丨文
如果可以回到过去,我希望回到中学时代。
那时,窗外阳光明媚,操场上还有几个翘课的学生踢着足球,教室里,老师大声讲着这次考试的重点,而我们,一边附和着老师的话,一边偷偷玩着那些“课堂小游戏”。
尽管在日益发展的科技与生活水平面前,这些游戏大多都成了历史的符号,但也正因为如此,它们反而成了我们青春回忆中最重要的一部分。
今天呢,整天喜欢回忆过去的面码,就和大家聊一聊,那些我们曾经玩过的那些“课堂小游戏”们。
无论是上课还是自习,想要玩什么游戏,都少不了三样东西,工具、玩伴以及打掩护的同学。
工具决定了能玩啥,玩伴决定了玩得有多开心,打掩护的同学则决定了今天是自己回家,还是爸妈领回去。
在那个后门窗子上,不定期就出现班主任冷漠眼神的年代,玩得开不开心不是很重要,隐蔽、低调才是最关键的。
所以,最简陋、最流行的游戏,莫过于“作业本五子棋”。
只需要在本子上画好横纵线条,用铅笔画圆画X下棋,下完一把擦了还能继续用。
简单粗暴的游戏工具,大隐隐于市,翻一页就可以进入学习状态,还不浪费纸张。这么多优点集合于一身,在物资、工具匮乏的年代,锻炼出了一代代棋神。
不过,成为棋神也是有代价的,要是被老师抓住,大概就像下面这样了。
老师:来给大家表演一下棋艺,谁赢谁就不用请家长
虽然五子棋很好玩,但如果只玩它,几天后就腻了,这时大家就将更多的游戏都带到了学校里。
象棋、扑克成了他们的新目标。
但像这些东西,只要收得慢一点,基本就宣布了自己的死亡,这时,打掩护的同学就起到了至关重要的作用。
不过,并不是所有人都能担当此重任,只有那种耳听六路、眼观八方的老哥,才能在老师轻轻踏入教室的一瞬间,感觉到他渗透出的丝丝杀气。
在搞定了周围安全后,你就能和同桌摆好阵势,杀他个昏天暗地,只要胆子大,自习课上“啪”地一声,将个军又何妨?
你将一个给我看看?
过完这段只有古人娱乐的悲惨日子后,我们终于在学校里迎来了电子游戏时代。
其实我很想说,掌机才是我们接触最早的电子游戏机,但要说在学校里火起来的,是电子词典。
我第一个电子词典就是这个型号
记得有那么一段时间,全中国的学生群体都流行起了电子词典,文曲星、步步高这些牌子中的明星型号,我现在都还有印象。
那时,每一个考试成绩有进步的孩子,都会向父母提出买电子词典的请求,美名其曰,“别的小朋友都有了,他们都拿这个提高成绩呢,很方便”。
不明真相的家长们,在“成绩千万不能落下,别的孩子有啥,我的孩子就得有啥”的心理下,作出了买电子词典的决定。
老实讲,电子词典如果在一个成绩好的孩子手里,帮助确实很大,但这也并妨碍这群好学生,上课拿着电子词典玩游戏。
最可气的是,老师们看到他们手中的电子词典,根本不会做出任何阻止的举动!学习好就是可以为所欲为,这要换是个差生,轻则没收,重则请家长。
尽管上课玩电子词典的风险很高,但只有玩过那些游戏的朋友们,才明白它们的魔力。
记忆最深的,就是步步高上的《伏魔记》。
这是一款类似仙剑奇侠传的角色扮演游戏,故事曲折、剧情感人、玩法多样,抛开黑白像素画质不谈,已经可以媲美一些端游了。
玩这款游戏的同学,也成了老师们最容易突破的目标,没办法,太入迷,根本感觉不到旁边想揍人的老师。
在黑白像素时代,步步高上还有一款经典的游戏,《三国霸业》。
毫不夸张的说,这款游戏达到了光荣三国志系列的高度。
甚至国内很多学生,因为这款游戏,坚定了将来做游戏的信念,走上了游戏开发的道路。
除开这些,炸潜艇、雷电、大富翁也是电子词典上的明星游戏,这些游戏甚至能让没收电子词典的老师们沉迷。
经过电子词典的热潮与心狠手辣的老师双重洗礼后,还敢在上课时掏出东西来玩的我们,已经身经百战。
这时我们的需求,不再被电子词典上的游戏满足,手机成了坏小子们的新欢。
诺基亚?摩托罗拉?是什么手机不重要,手机多贵也不重要,只有能上网就行。
倒不是电子词典上的游戏没手机上的好玩,手机游戏的最大特点是社交。
这里说的手机游戏可不是现在的那种手游,这里指的是手机网页版游戏。
网页QQ,成了我们在沉重学习压力下,唯一可以倾诉交流的地方。
而伴随网页QQ出现的游戏,自然而然成了大家追捧的新星。
抢车位,一个现在来看极其智障的游戏,但在那时火遍全国中学。
后来抢车位也火遍了很多门户网站
这款游戏基本没有多少游戏性,唯一的亮点就是,它将朋友之间的互动性发挥到了最大,QQ农场、QQ牧场也是类似的社交互动游戏。
好友买卖,也是一个超级扯淡的游戏,在封建奴隶制废除多年后,这种带有戏谑与搞笑成分的“奴隶”游戏,成了中学生们的潮流。
其实这些游戏并没有多大意义,但在被压抑情感与交流的学校里,它们的互动性,大大补充了我们的精神需求。
尽管在老师的围追堵截中,全班的手机在逐月减少,但大家对交流与倾诉的渴望,让这条统一战线坚持到了毕业。
也就是这些游戏,才真正拉近了同学之间的关系,让大家在毕业后还舍不得删掉联系方式。
其实,上面说的这些,只能算是地下党们的狂欢,真正的正规军,都是在微机课上嗨的。
“微机课不玩游戏就是浪费青春。”
当年我的同桌,在电脑上装了CS1.5和红警后,说了这句装逼的话。
他没想到的是,上课用的电脑,都踏马装了还原精灵。
在一节课30分钟装游戏10分钟玩游戏这样煎熬几次后,他终于放弃了这些,转而玩起简单搞定的,比如4399。
不要小看4399,狂扁小朋友、黄金矿工、闪客快打这些游戏,上架steam都不算过分。
当然,有些单纯的孩子根本不知道4399是啥,他们老实打开了windows自带的扫雷、纸牌,开心地玩了一节课。
更年轻一些的同学,还会在金山打字游戏里寻找着乐趣。
这一个个游戏回忆下来,我不但想起很多上课玩游戏的快乐,还想起了与老师斗智斗勇的艰辛,虽然酸甜苦辣都掺杂在一起,但能有这样充实的青春,真好。
回过头来,看着现在唯《王者荣耀》独尊的孩子们,看着他们单纯的世界,我心里有一丝庆幸,也有一丝同情。
回复“BB”,每天送你一个游戏大美妞
点击展开全文如何实现五子棋编程 帮忙把代码写给我 加两百分_百度知道
如何实现五子棋编程 帮忙把代码写给我 加两百分
如何运行原理 要说明啊
我有更好的答案
Option Explicit'五子棋程序 人机对战版本'需要2个Label控件
2个CommandButton控件Private Declare Function SetWindowRgn Lib &user32& (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As LongPrivate Declare Function CreateRoundRectRgn Lib &gdi32& (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long'Dim PlayStep() As String
'记录棋谱的数组'Dim Label2Cap As StringPrivate Const BoxL As Single = 50, BoxT As Single = 50, BoxW As Single = 25, BoxN As Integer = 18Dim Table() As Long
'棋盘(0-BoxN,0-BoxN)
0-空 1-黑子 2-白子Dim PsCore() As Long
'定义当前玩家桌面空格的分数Dim CsCore() As Long
'定义当前电脑桌面空格的分数Dim pWin() As Boolean
'定义玩家的获胜组合Dim cWin() As Boolean
'定义电脑的获胜组合Dim pFlag() As Boolean
'定义玩家的获胜组合标志Dim cFlag() As Boolean
'定义电脑的获胜组合标志Dim ThePlayFlag As Boolean
'定义游戏有效标志Private Sub Command1_Click()
If Not ThePlayFlag Then Call InitPlayEnvironment: Exit Sub
If MsgBox(&本局还没有下完,是否重新开始?(Y/N)&, vbYesNo) = vbNo Then Exit Sub
Call InitPlayEnvironmentEnd SubPrivate Sub Command2_Click()
EndEnd SubPrivate Sub Form_Load()
Dim i As Long, lw As Long, lh As Long
'Label2Cap = &000
Me.Width = 10815: Me.Height = 8040'
Me.Caption = &五子棋 - 人机对战&: Me.Show
lw = Me.Width \ Screen.TwipsPerPixelX: lh = Me.Height \ Screen.TwipsPerPixelY
SetWindowRgn Me.hWnd, CreateRoundRectRgn(0, 0, lw, lh, 60, 60), True
With Label1
.Alignment = vbCenter: .FontSize = 12: .FontBold = True
.ForeColor = vbRed: .BackStyle = 0: .AutoSize = True: .Move
Label2.AutoSize = True: Label2.WordWrap = True
Label2.BackStyle = 0: Label2.Move , 2280
Command1.Move , : Command1.Caption = &再来一局&
Command2.Move , : Command2.Caption = &不玩了&
Call DrawChessBoard: Me.FillStyle = 0: Call InitPlayEnvironmentEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
EndEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim iRow As Long, iCol As Long, i As Long, k As Long, t As String
If Not ThePlayFlag Then Exit Sub
If Button = vbLeftButton Then
'左键下棋
iRow = -1: iCol = -1
For i = 0 To BoxN
'鼠标必须落在交叉点 半径10以内 若是则给出行列号
If (Y + 10) & (BoxT + i * BoxW) And (Y - 10) &= (BoxT + i * BoxW) Then iRow = i
If (X + 10) & (BoxL + i * BoxW) And (X - 10) &= (BoxL + i * BoxW) Then iCol = i
If (iRow = -1) Or (iCol = -1) Then Beep: Exit Sub
If Table(iCol, iRow) & 0 Then Exit Sub
Table(iCol, iRow) = 2: Label1.Caption = &下一步 黑方&
Me.FillColor = vbWhite: Me.Circle (iCol * BoxW + BoxT, iRow * BoxW + BoxL), 8
For i = 0 To UBound(cWin, 3)
If cWin(iCol, iRow, i) = True Then cFlag(i) = False
Call CheckWin: Call DianNao
'检查当前玩家是否获胜 调用电脑算法
End IfEnd SubPublic Sub InitPlayEnvironment()'*****************************************************************************' 模块名称: InitPlayEnvironment
[初始化过程]'' 描述:
1. 设置背景音乐。
2. 设置游戏状态有效。'
3. 初始化游戏状态标签。
4. 直接指定电脑的第一步走法。'
5. 初始化基本得分桌面。
6. 电脑和玩家获胜标志初始化。'
7. 初始化所有获胜组合。
8. 重新设定玩家的获胜标志。'*****************************************************************************
Dim i As Long, j As Long, m As Long, n As Long
ThePlayFlag = True: Label1.Caption = &下一步 白方&: Label2.Caption = &&
Me.FillColor = vbBlack: Me.FillStyle = 0: Me.AutoRedraw = True
Me.Cls: Me.Circle (9 * BoxW + BoxL, 9 * BoxW + BoxT), 8
ReDim Table(0 To BoxN, 0 To BoxN) As Long
ReDim pFlag(NumsWin(BoxN + 1) - 1) As Boolean
ReDim cFlag(UBound(pFlag)) As Boolean
ReDim PsCore(BoxN, BoxN) As Long, CsCore(BoxN, BoxN) As Long
ReDim pWin(BoxN, BoxN, UBound(pFlag)) As Boolean
ReDim cWin(BoxN, BoxN, UBound(pFlag)) As Boolean
For i = 0 To UBound(pFlag): pFlag(i) = True: cFlag(i) = True: Next
Table(9, 9) = 1
'假定电脑先手 并下了(9, 9)位 将其值设为1
'******** 初始化获胜组合 ****************************************
For i = 0 To BoxN: For j = 0 To BoxN - 4
For m = 0 To 4
pWin(j + m, i, n) = True: cWin(j + m, i, n) = True
Next: Next
For i = 0 To BoxN: For j = 0 To BoxN - 4
For m = 0 To 4
pWin(i, j + m, n) = True: cWin(i, j + m, n) = True
Next: Next
For i = 0 To BoxN - 4: For j = 0 To BoxN - 4
For m = 0 To 4
pWin(j + m, i + m, n) = True: cWin(j + m, i + m, n) = True
Next: Next
For i = 0 To BoxN - 4: For j = BoxN To 4 Step -1
For m = 0 To 4
pWin(j - m, i + m, n) = True: cWin(j - m, i + m, n) = True
Next: Next
'******** 初始化获胜组合结束 *************************************
For i = 0 To UBound(pWin, 3) '由于电脑已下了(9, 9)位 所以需要重新设定玩家的获胜标志
If pWin(9, 9, i) = True Then pFlag(i) = False
End SubPublic Function DrawChessBoard() As Long'容器的(BoxL, BoxT)为左上角坐标画一个 BoxN*BoxN, 每格边长为 BoxW 象素的棋盘
Dim i As Long, j As Long, cx As Long, cy As Long
Me.ScaleMode = 3: Me.FillStyle = 1: Me.AutoRedraw = True: Me.Cls
For i = 0 To BoxN
'画棋盘
Me.Line (BoxL + i * BoxW, BoxT)-(BoxL + i * BoxW, BoxT + BoxN * BoxW)
Me.Line (BoxL, BoxT + i * BoxW)-(BoxL + BoxN * BoxW, BoxT + i * BoxW)
Me.CurrentX = BoxL + i * BoxW - IIf(i & 9, 6, 2)
Me.CurrentY = BoxT - 20: Me.Print Format(i)
Me.CurrentX = BoxL - IIf(i & 9, 23, 20)
Me.CurrentY = BoxT + i * BoxW - 6: Me.Print Format(i)
For i = 3 To 16 Step 6: For j = 3 To 16 Step 6
'画小标志
cx = BoxL + j * BoxW - 3: cy = BoxT + i * BoxW - 3
Me.Line (cx, cy)-(cx + 6, cy + 6), , B
Next: Next
Me.AutoRedraw = False: Set Me.Picture = Me.ImageEnd FunctionPublic Sub CheckWin()'*****************************************************************************' 模块名称:
[获胜检查算法]'' 描述:
1. 检查是否和棋。
2. 检查电脑是否获胜。
3. 检查玩家是否获胜。'*****************************************************************************
Dim i As Long, j As Long, k As Long, m As Long, n As Long
Dim cA As Long, pA As Long, cN As Long
For i = 0 To UBound(cFlag): cN = IIf(cFlag(i) = False, cN + 1, cN): Next
If cN = UBound(cFlag) - 1 Then
'设定和棋规则
Label1.Caption = &双方和棋!&: ThePlayFlag = False: Exit Sub
For i = 0 To UBound(cFlag)
'检查电脑是否获胜
If cFlag(i) = True Then
cA = 0: For j = 0 To BoxN: For k = 0 To BoxN
If Table(j, k) = 1 And cWin(j, k, i) = True Then cA = cA + 1
Next: Next
If cA = 5 Then Label1.Caption = &电脑获胜!&: ThePlayFlag = False: Exit Sub
For i = 0 To UBound(pFlag)
'检查玩家是否获胜
If pFlag(i) = True Then
pA = 0: For j = 0 To BoxN: For k = 0 To BoxN
If Table(j, k) = 2 And pWin(j, k, i) = True Then pA = pA + 1
Next: Next
If pA = 5 Then Label1.Caption = &玩家获胜!&: ThePlayFlag = False: Exit Sub
NextEnd SubPublic Sub DianNao()'*****************************************************************************' 模块名称:
[电脑算法]' 描述:
1. 初始化赋值系统。
2. 赋值加强算法。
3. 计算电脑和玩家的最佳攻击位。'
4. 比较电脑和玩家的最佳攻击位并决定电脑的最佳策略。
5. 执行检查获胜函数。'*****************************************************************************
Dim i As Long, j As Long, k As Long, m As Long, n As Long
Dim Dc As Long, cAb As Long, pAb As Long
ReDim PsCore(BoxN, BoxN) As Long, CsCore(BoxN, BoxN) As Long
'初始化赋值数组
'******** 电脑加强算法 ********
For i = 0 To UBound(cFlag)
If cFlag(i) = True Then
For j = 0 To BoxN: For k = 0 To BoxN
If Table(j, k) = 1 And cWin(j, k, i) = True Then cAb = cAb + 1
Next: Next
Select Case cAb
For m = 0 To BoxN: For n = 0 To BoxN
If Table(m, n) = 0 And cWin(m, n, i) = True Then CsCore(m, n) = CsCore(m, n) + 5
Next: Next
For m = 0 To BoxN: For n = 0 To BoxN
If Table(m, n) = 0 And cWin(m, n, i) = True Then
Table(m, n) = 1: Label1.Caption = &下一步 白方&
Me.FillColor = vbBlack: Me.Circle (m * BoxW + BoxL, n * BoxW + BoxT), 8
For Dc = 0 To UBound(pWin, 3)
If pWin(m, n, Dc) = True Then pFlag(Dc) = False: Call CheckWin: Exit Sub
Next: Next
End Select
For i = 0 To UBound(pFlag)
If pFlag(i) = True Then
For j = 0 To BoxN: For k = 0 To BoxN
If Table(j, k) = 2 And pWin(j, k, i) = True Then pAb = pAb + 1
Next: Next
Select Case pAb
For m = 0 To BoxN: For n = 0 To BoxN
If Table(m, n) = 0 And pWin(m, n, i) = True Then PsCore(m, n) = PsCore(m, n) + 30
Next: Next
For m = 0 To BoxN: For n = 0 To BoxN
If Table(m, n) = 0 And pWin(m, n, i) = True Then
Table(m, n) = 1: Label1.Caption = &下一步 白方&
Me.FillColor = vbBlack: Me.Circle (m * BoxW + BoxL, n * BoxW + BoxT), 8
For Dc = 0 To UBound(pWin, 3)
If pWin(m, n, Dc) = True Then pFlag(Dc) = False: Call CheckWin: Exit Sub
Next: Next
End Select
'******** 电脑加强算法结束 ********
'******** 赋值系统 ****************
For i = 0 To UBound(cFlag)
If cFlag(i) = True Then
For j = 0 To BoxN: For k = 0 To BoxN
If (Table(j, k) = 0) And cWin(j, k, i) Then
For m = 0 To BoxN: For n = 0 To BoxN
If (Table(m, n) = 1) And cWin(m, n, i) Then CsCore(j, k) = CsCore(j, k) + 1
Next: Next
Next: Next
For i = 0 To UBound(pFlag)
If pFlag(i) = True Then
For j = 0 To BoxN: For k = 0 To BoxN
If (Table(j, k) = 0) And pWin(j, k, i) Then
For m = 0 To BoxN: For n = 0 To BoxN
If (Table(m, n) = 2) And pWin(m, n, i) Then PsCore(j, k) = PsCore(j, k) + 1
Next: Next
Next: Next
'******** 赋值系统结束 ************
'******** 分值比较算法 ************
Dim a As Long, b As Long, c As Long, d As Long
Dim cS As Long, pS As Long
For i = 0 To BoxN: For j = 0 To BoxN
If CsCore(i, j) & cS Then cS = CsCore(i, j): a = i: b = j
Next: Next
For i = 0 To BoxN: For j = 0 To BoxN
If PsCore(i, j) & pS Then pS = PsCore(i, j): c = i: d = j
Next: Next
If cS & pS Then
Table(a, b) = 1: Label1.Caption = &下一步 白方&
Me.FillColor = vbBlack: Me.Circle (a * BoxW + BoxL, b * BoxW + BoxT), 8
For i = 0 To UBound(pWin, 3)
If pWin(a, b, i) = True Then pFlag(i) = False
Table(c, d) = 1: Label1.Caption = &下一步 白方&
Me.FillColor = vbBlack: Me.Circle (c * BoxW + BoxL, d * BoxW + BoxL), 8
For i = 0 To UBound(pWin, 3)
If pWin(c, d, i) = True Then pFlag(i) = False
'******** 分值比较算法结束 ********
Call CheckWinEnd SubPublic Function NumsWin(ByVal n As Long) As Long'根据输入的棋盘布局 n*n
计算总共有多少种获胜组合'假定棋盘为 10 * 10 相应的棋盘数组就是 Table(9, 9)'水平方向 每一列获胜组合是6 共10列 6*10=60'垂直方向 每一行获胜组合是6 共10行 8*10=60'正对角线方向 6 + (5 + 4 + 3 + 2 + 1) * 2 = 36'反对角线方向 6 + (5 + 4 + 3 + 2 + 1) * 2 = 36'总的获胜组合数为 60 + 60 + 36 + 36 = 192
Dim i As Long, t As Long
For i = n - 5 To 1 Step -1: t = t + i: Next
NumsWin = 2 * (2 * t + n - 4) + 2 * n * (n - 4)End Function
采纳率:23%
写得 很好!!!我就不多说了!!!
一楼答得 很好很好
我支持2楼的~~
为您推荐:
其他类似问题
五子棋的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&自己和自己下的五子棋
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
zhouxueyuan
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
麦田稻草人
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
baiwengong
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
在Fork了此代码
中单不给送
在Fork了此代码
在Fork了此代码
在Fork了此代码
还黄龙不熟
Ta的最近动态
发布了代码 ()
发布了代码 ()
评论了代码 ()
发布了代码 ()
发布了代码 ()
Ta发布的其他代码(10)
&&7评/107Fork,更新于5年前。
&&0评/0Fork,更新于5年前。
&&1评/4Fork,更新于5年前。
&&8评/77Fork,更新于5年前。
&&10评/68Fork,更新于5年前。}

我要回帖

更多关于 五子棋打印 的文章

更多推荐

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

点击添加站长微信