三子棋小游戲

寫在開頭:

本人初入iOS眷茁,想借此系列的文章記錄自己的學習過程枫夺,同時也和大家分享一些學習心得鹦马,作為一個剛學編程的新人蓖扑,想自己寫一個小app或者小游戲可能是一件比較困難的事情唉铜,于是乎我就嘗試用自己所學的有限的知識能不能做幾個小應用,哪怕非常簡單的也不要緊律杠,整個嘗試的過程非常有趣潭流,如果你和我同為新人,那么一起來學習討論吧柜去!


文章底部有下載鏈接

先上游戲展示:


所用知識:OC基礎(chǔ)知識以及UI基礎(chǔ)控件的使用灰嫉,如UIButton UILabel 等等


各位觀眾老爺大家好,這是鄙人的第二篇文章嗓奢,其實應該是一篇的讼撒,由于發(fā)第一篇文章的時候正寫2048寫的起勁,于是乎第一篇討論其了如何做2048這個小游戲股耽,但是畢竟我們的主題是萌新的成長史根盒,不可能一個初學者一上來第一個程序就寫2048,所以物蝙,今天我就和大家聊聊我本菜雞的第一個iOS小程序炎滞,進入本期主題

三子棋


話說我都不知道這個游戲究竟應該叫什么名字,規(guī)則就是三個棋子的五子棋诬乞,上一下游戲畫面大家立馬就懂了

請大家先無視我給起的如此邪惡的游戲名字册赛。。震嫉。

游戲規(guī)則就是三個O或者三個X連成一條直線就可以獲得游戲勝利森瘪,不管橫著還是斜著,如果格子填滿了還為分勝負則為平局

接下來說下游戲的開發(fā)思路



1. 用什么控件來表示圖上能看的到的東西


本菜采用的是游戲的9個格子用9個按鈕表示票堵,因為玩的過程中要點擊才有變化扼睬,所以我只想到了按鈕,有人可能要問悴势,這些邊框和O X之類的圖片怎么來的窗宇,呃。瞳浦。都是本菜自己用畫圖工具畫的担映,就畫了三張好像废士。叫潦。

就是如圖的這么三個簡單的小圖片,我畫的都是正方形的哦官硝,為了不影響美觀

RESTART當然是一個按鈕矗蕊,下面的游戲名字則是一個Label

勝利的提示信息大家先忽略吧短蜕,大家可以先用一些簡單控件代替。



2. 點擊按鈕后的按鈕背景圖片變化


首先設(shè)置一個BOOL類型的屬性傻咖,比如

@property (nonatomic, assign) BOOL isO朋魔;

每次點擊的方法里先讓 isO的屬性取反

self.isO = ! self.isO;

這樣確保每一次點擊isO的值都不一樣,然后就可以根據(jù)每次的值給按鈕設(shè)置背景圖了

別放了點擊之后讓按鈕的enable屬性成為NO卿操。

因為xcode默認會設(shè)置按鈕highlighted時的顏色警检,所以注意調(diào)整disable狀態(tài)的背景圖和原來一樣,這樣就不至于點完之后圖片顏色發(fā)生變化了?



3. 如何判斷勝平負


這里我深深的感覺到自己菜就寫不出精簡的代碼的道理害淤,這一塊我自己看自己寫的代碼都覺得肯定可以得到優(yōu)化扇雕,但誰讓我現(xiàn)在菜呢,不知道更好的辦法窥摄,不過沒關(guān)系镶奉,等我學到的時候我也會會的,現(xiàn)在我就用最笨的方法完成游戲的功能崭放。

剛開始學習的時候哨苛,老師告訴我每個控件都有自己的tag值,我就想我能不能通過tag值進行判斷呢币砂,于是乎我就讓九個按鈕的tag值依次等于1到9建峭,但是我還是一直想不出簡單的方法可以通過tag值判斷勝利條件,直到我靈機一動道伟。迹缀。。蜜徽。


每當你點擊了哪個按鈕之后祝懂,如果它為O ,就讓它的tag值加100拘鞋,如果為X就加1000砚蓬;

然后設(shè)置八個變量,分別等于每種勝利所需要的三個按鈕的tag值的和盆色,不知道這么說大家能聽懂不

這里我貼一些我寫的代碼吧灰蛙。。如果某一個的和在300和1000之間隔躲,那么O勝利摩梧,如果超過了3000那么X勝利

數(shù)值當然不用一定設(shè)置成我這個樣子,我當時就是隨便一想宣旱,然后就隨便一寫仅父,然后確實能成功。。笙纤。

這里要說下平局的情況的判斷耗溜,我的方法是設(shè)置一個count = 0;

每一次點擊讓它加1省容,如果count = 9抖拴,而且又沒有哪一方獲勝的話,就提示為平局



4. 重新開始按鈕


把按鈕的屬性設(shè)成初始的時候就可以了腥椒,別忘了把enable屬性改成YES


好像已經(jīng)說完了阿宅,雖然說我完成了最后的功能,但是不得不說看著自己寫的一堆重復又蹩腳的代碼真的很是蛋疼笼蛛,所以說當一只菜鳥并非長久之計啊家夺,得變得更強才行。

如果你和我一樣伐弹,同為一個喜歡自己寫東西的萌新拉馋,熱烈歡迎過來留言討論,大家一起交流進步惨好。


附上游戲下載地址 ?點這里下載? ?密碼 abcf

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌茴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子日川,更是在濱河造成了極大的恐慌蔓腐,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件龄句,死亡現(xiàn)場離奇詭異回论,居然都是意外死亡,警方通過查閱死者的電腦和手機分歇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門傀蓉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人职抡,你說我怎么就攤上這事葬燎。” “怎么了缚甩?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵谱净,是天一觀的道長。 經(jīng)常有香客問我擅威,道長壕探,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任郊丛,我火速辦了婚禮李请,結(jié)果婚禮上派继,老公的妹妹穿的比我還像新娘哥艇。我一直安慰自己岸售,他們只是感情好秸讹,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著认轨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪月培。 梳的紋絲不亂的頭發(fā)上嘁字,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音杉畜,去河邊找鬼纪蜒。 笑死,一個胖子當著我的面吹牛此叠,可吹牛的內(nèi)容都是我干的纯续。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼灭袁,長吁一口氣:“原來是場噩夢啊……” “哼猬错!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茸歧,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倦炒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后软瞎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逢唤,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年涤浇,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳖藕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡只锭,死狀恐怖吊奢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纹烹,我是刑警寧澤页滚,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站铺呵,受9級特大地震影響裹驰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜片挂,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一幻林、第九天 我趴在偏房一處隱蔽的房頂上張望贞盯。 院中可真熱鬧,春花似錦沪饺、人聲如沸躏敢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽件余。三九已至,卻和暖如春遭居,著一層夾襖步出監(jiān)牢的瞬間啼器,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工俱萍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留端壳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓枪蘑,卻偏偏與公主長得像损谦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子岳颇,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容