三子棋小游戏

写在开头:

本人初入iOS,想借此系列的文章记录自己的学习过程,同时也和大家分享一些学习心得,作为一个刚学编程的新人,想自己写一个小app或者小游戏可能是一件比较困难的事情,于是乎我就尝试用自己所学的有限的知识能不能做几个小应用,哪怕非常简单的也不要紧,整个尝试的过程非常有趣,如果你和我同为新人,那么一起来学习讨论吧!


文章底部有下载链接

先上游戏展示:


所用知识:OC基础知识以及UI基础控件的使用,如UIButton UILabel 等等


各位观众老爷大家好,这是鄙人的第二篇文章,其实应该是一篇的,由于发第一篇文章的时候正写2048写的起劲,于是乎第一篇讨论其了如何做2048这个小游戏,但是毕竟我们的主题是萌新的成长史,不可能一个初学者一上来第一个程序就写2048,所以,今天我就和大家聊聊我本菜鸡的第一个iOS小程序,进入本期主题

三子棋


话说我都不知道这个游戏究竟应该叫什么名字,规则就是三个棋子的五子棋,上一下游戏画面大家立马就懂了

请大家先无视我给起的如此邪恶的游戏名字。。。

游戏规则就是三个O或者三个X连成一条直线就可以获得游戏胜利,不管横着还是斜着,如果格子填满了还为分胜负则为平局

接下来说下游戏的开发思路



1. 用什么控件来表示图上能看的到的东西


本菜采用的是游戏的9个格子用9个按钮表示,因为玩的过程中要点击才有变化,所以我只想到了按钮,有人可能要问,这些边框和O X之类的图片怎么来的,呃。。都是本菜自己用画图工具画的,就画了三张好像。。

就是如图的这么三个简单的小图片,我画的都是正方形的哦,为了不影响美观

RESTART当然是一个按钮,下面的游戏名字则是一个Label

胜利的提示信息大家先忽略吧,大家可以先用一些简单控件代替。



2. 点击按钮后的按钮背景图片变化


首先设置一个BOOL类型的属性,比如

@property (nonatomic, assign) BOOL isO;

每次点击的方法里先让 isO的属性取反

self.isO = ! self.isO;

这样确保每一次点击isO的值都不一样,然后就可以根据每次的值给按钮设置背景图了

别放了点击之后让按钮的enable属性成为NO。

因为xcode默认会设置按钮highlighted时的颜色,所以注意调整disable状态的背景图和原来一样,这样就不至于点完之后图片颜色发生变化了 



3. 如何判断胜平负


这里我深深的感觉到自己菜就写不出精简的代码的道理,这一块我自己看自己写的代码都觉得肯定可以得到优化,但谁让我现在菜呢,不知道更好的办法,不过没关系,等我学到的时候我也会会的,现在我就用最笨的方法完成游戏的功能。

刚开始学习的时候,老师告诉我每个控件都有自己的tag值,我就想我能不能通过tag值进行判断呢,于是乎我就让九个按钮的tag值依次等于1到9,但是我还是一直想不出简单的方法可以通过tag值判断胜利条件,直到我灵机一动。。。。


每当你点击了哪个按钮之后,如果它为O ,就让它的tag值加100,如果为X就加1000;

然后设置八个变量,分别等于每种胜利所需要的三个按钮的tag值的和,不知道这么说大家能听懂不

这里我贴一些我写的代码吧。。如果某一个的和在300和1000之间,那么O胜利,如果超过了3000那么X胜利

数值当然不用一定设置成我这个样子,我当时就是随便一想,然后就随便一写,然后确实能成功。。。

这里要说下平局的情况的判断,我的方法是设置一个count = 0;

每一次点击让它加1,如果count = 9,而且又没有哪一方获胜的话,就提示为平局



4. 重新开始按钮


把按钮的属性设成初始的时候就可以了,别忘了把enable属性改成YES


好像已经说完了,虽然说我完成了最后的功能,但是不得不说看着自己写的一堆重复又蹩脚的代码真的很是蛋疼,所以说当一只菜鸟并非长久之计啊,得变得更强才行。

如果你和我一样,同为一个喜欢自己写东西的萌新,热烈欢迎过来留言讨论,大家一起交流进步。


附上游戏下载地址  点这里下载   密码 abcf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容