设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 7784|回复: 14
打印 上一主题 下一主题

[原创发布] 【初级教学3】井字棋的做法(降低难度)

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2008-7-1 22:04:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
教学讨论QQ群 53535461  作业检查:亿万星辰 (群主)

作业的问题在群里问亿万就好了{/tp}
井字棋

上次似乎难了一些,明显导致作业量减少{/pz}
这次稍微简单一下。别把人都吓跑了,呵呵

这次就开始说棋类了。
一般来说,棋类都要建立一个2维数组来记录棋盘上的情况
例如拿围棋19×19为例子:
先建立一个棋盘
$qipan=[]
在左上角下一个子,就记录成$qipan[0][0]=1
玩家下棋就可以记录为1,默认为0,电脑下的为2
然后建立一个棋型的数组,对比棋型再来判断。

我们就先从规则最简单,棋盘最小的井子棋说起。
我记得有那个高人用3进制算法把这个巧妙的解决了。不过
这个游戏由于不大,想算法反而浪费时间。

规则
在棋盘里先后落子,横竖斜,有一方先连成线的赢。

由于还要考虑不会用脚本的。用事件来做讲解的例子。(其实还是脚本简单)
流程
首先要记录棋盘。
9个格,正好对应1到9的变量。初始化所有变量为0
记录敌我的下棋。我方是2,敌方是1
然后根据下棋的情况,把变量带入进去。(界面表示省略)
根据现在变量判断是否有人胜利。
没有的话继续下棋。

检查棋型的一般方法:
先从第一行开始,看第一个格是什么。也就是看是1,0,2的那个
记录当前变量=第一格的变量的值。
第二格是否与当前变量相同。不相同,放弃。没有胜负。相同的时候
继续检查第3格,看是否相同。不相同放弃。相同就是胜利。
按照这样检查所有横行,竖行和斜行就可以了。

(用for的话,几步就搞定了。)

我则用下面的办法:
1 2 3
4 5 6
7 8 9
这九个格对应变量如下

我方下子的变量值表
8 3 4
1 5 9
6 7 2

敌方下子的变量值表
80 30 40
10 50 90
60 70 20

例子:
原来所有的变量是0
我在左上角就记录为8,敌人则记录80

判断方法:
能整除10的就是敌方下的。
横竖斜相加,=15就是我胜利=150就是电脑胜利

这样的话胜利判断异常简单,至于为什么想到这个,问黄蓉去吧。(洛书)

再来简单的说一下敌人的ai(用条件分歧判断)
如果敌人先手
第一步下到5号格,如果下一步玩家没有走1379号格的话,弄死玩家吧。
如果后手,玩家没有下在5号格(不可能吧)那就下5格。
其他的情况基本上就是平局。

当然让电脑随机下在变量为0的格子里面也是行的。不过千万不要发布
会被骂的。{/gg}

最后在说说界面:
界面可以参考美兽的五子棋。
或者用事件也行,根据变量来显示不同的行走图。就像《踩雷子》小游戏那样
。总之利用2维数组来记录棋盘,通过对比棋型,和判断胜利是基本的方法。


作业:
做个井字棋。(事件脚本随便)
当然,你用文章来显示棋盘也是可以的。
两个礼拜后截止
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-30
帖子
57
2
发表于 2008-7-2 06:15:24 | 只看该作者
占楼,1周以后交作业

现在期末考试ing
抽风中,勿扰
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

3
发表于 2008-7-2 18:45:04 | 只看该作者
Table.new(X,Y,Z)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

4
 楼主| 发表于 2008-7-3 00:15:25 | 只看该作者
以下引用yangff于2008-7-2 10:45:04的发言:

Table.new(X,Y,Z)

我一猜就有人要用。
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
265
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

5
发表于 2008-7-3 03:36:57 | 只看该作者
这次我继续尝试来做一个事件版的参考吧……orz
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
41 小时
注册时间
2008-3-5
帖子
2072
6
发表于 2008-7-7 07:24:59 | 只看该作者
期待的游戏王呢?{/ll}{/ll}{/ll}

这个井字游戏。。。貌似第一步一定放中间,对方占角,我方占对边,好象没什么变化
你它囧一字母君谁记得……
当时那把剑离我的喉咙只有0.01工分。可是一柱香之后,这个女主人会深深的爱上我,虽然本人平生说了无数的谎话,可是这句最有效:“你应该这么做,我也应该死。
曾经有一取ID的机会放在我面前,我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此。你的剑在我的咽喉上割下去吧!不用再犹豫了!如果上天能够给我一个再来一次的机会,我绝对会取个汉字君。如果非要给这ID加点修饰的话,我希望是……红色加粗……

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2008-1-12
帖子
203
7
发表于 2008-7-8 06:15:38 | 只看该作者
报告老师,做的过程中发现似乎有个问题:

就是按照这个方法

我则用下面的办法:
1 2 3
4 5 6
7 8 9
这九个格对应变量如下

我方下子的变量值表
8 3 4
1 5 9
6 7 2

敌方下子的变量值表
80 30 40
10 50 90
60 70 20

例子:
原来所有的变量是0
我在左上角就记录为8,敌人则记录80

判断方法:
能整除10的就是敌方下的。
横竖斜相加,=15就是我胜利=150就是电脑胜利

如果,敌方下在第4格,我方下在第五格,第六格没有子

0  0  0
10 5  0
0  0  0
这样,第二排相加等于15,就会判断我方胜利了。
所以判断第二排得不得15时好像还应加个别的条件,比如第六格不得0什么的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2008-1-12
帖子
203
8
发表于 2008-7-8 06:30:25 | 只看该作者
内个,感觉这个电脑的ai很难做的说。
也可能是我做麻烦了,总之觉得虽然棋盘很小,但情况还是相当的多
所以偷个懒,只做了一半,即现在只能我方先手,敌方先手的部分省略了,等考完试有时间
再补上吧。


作业:
http://rpg.blue/upload_program/files/井字棋_95898390.rar
效果图:
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

9
 楼主| 发表于 2008-7-9 22:35:17 | 只看该作者
以下引用身之察察于2008-7-7 22:15:38的发言:

报告老师,做的过程中发现似乎有个问题:

就是按照这个方法


我则用下面的办法:
1 2 3
4 5 6
7 8 9
这九个格对应变量如下

我方下子的变量值表
8 3 4
1 5 9
6 7 2

敌方下子的变量值表
80 30 40
10 50 90
60 70 20

例子:
原来所有的变量是0
我在左上角就记录为8,敌人则记录80

判断方法:
能整除10的就是敌方下的。
横竖斜相加,=15就是我胜利=150就是电脑胜利


如果,敌方下在第4格,我方下在第五格,第六格没有子

0  0  0
10 5  0
0  0  0
这样,第二排相加等于15,就会判断我方胜利了。
所以判断第二排得不得15时好像还应加个别的条件,比如第六格不得0什么的


[本贴由作者于 2008-7-7 22:20:00 最后编辑]


看来只有你是实践了。好欣慰啊。
这个做做就行。介绍个方法而已{/qiang}
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2008-1-15
帖子
280
10
发表于 2008-7-10 00:58:21 | 只看该作者
{/fd}这是夏令营的作业啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-3 09:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表