㈠ 這是什麼游戲
flappy bird
編輯
飛揚的小鳥(flappy bird)由一位來自越南河內的
獨立游戲開發者阮哈東開發,是一款形式簡易但難度極高的休閑游戲。簡單但不粗糙的8比特像素畫面、超級馬里奧游戲中的水管、眼神有點呆滯的小鳥和幾朵白雲
便構成了游戲的一切。你需要不斷控制點擊屏幕的頻率來調節小鳥的飛行高度和降落速度,讓小鳥順利地通過畫面右端的通道,如果你不小心擦碰到了通道的話,游
戲便宣告結束。
2014年2月10日消息,據國外媒體報道,近期火爆的手機游戲《Flappy Bird》已被開發者本人從蘋果及谷歌應用商店下架。目前國內用戶仍可以通過第三方應用商店下載安裝。[1]
中文名
像素鳥、下墜的小鳥
外文名
Flappy Bird
游戲類別
益智休閑
游戲平台
IOS、Android
開發商
Dong Nguyen
目錄
1游戲信息
2內容介紹
3操作方法
4游戲攻略
5負面新聞
6下架報道
7轟動效應
8重新上架
9開發者簡介
10深度分析:
11其他版本
▪ 電腦pc版
▪ Web App版
▪ 微信/QQ空間版
▪ WindowsPhone版
12同類游戲
▪ Flat Birds(扁平鳥)系列
▪ 鐵褲衩
▪ Piou Piou
▪ Flappy Bee
▪ Flappy Plane
▪ Fly Birdie
▪ Farty Pants
▪ Flappy Pig
▪ Flappy Fish
1游戲信息編輯
Flappy Bird
版本:1.2
類別:休閑娛樂
大小:895KB
時間:2014-02-08
語言:英文
系統要求:需要 iOS 6.0 或更高版本。與iPhone、iPad、iPod touch 兼容。 此 App 已針對iPhone 5 進行優化。
2內容介紹編輯
《flappy bird》[2]是由來自越南的獨立游戲開發者Dong
Nguyen所開發的作品,游戲中玩家必須控制一隻小鳥,跨越由各種不同長度水管所組成的障礙,而這只鳥其實是根本不會飛的……所以玩家每點擊一下小鳥就
會飛高一點,不點擊就會下降,玩家必須控制節奏,拿捏點擊屏幕的時間點,讓小鳥能在落下的瞬間跳起來,恰好能夠通過狹窄的水管縫隙,只要稍一分神,馬上就
會失敗陣亡。
3操作方法編輯
flappy bird
游戲玩法:在游戲開始後,點擊屏幕,要記住是有間歇的點擊屏幕,不要讓小鳥掉下來。
游戲過程:讓小鳥不要撞到柱子,安全穿過,穿過一個柱子得1分。
新手注意事項:
1.玩之前確保自己心情愉悅,因為你很快就會被這個游戲激怒。
2.千萬別想著一天就可以得個100多分.
4游戲攻略編輯
在《Flappy Bird》這款游戲中,玩家只需要用一根手指來操控,點擊觸摸屏幕,小鳥就會往上飛,不斷的點擊就會不斷的往高處飛。放鬆手指,則會快速下降。所以玩家要控制小鳥一直向前飛行,然後注意躲避途中高低不平的管子。
技巧:
1、在游戲開始後,點擊屏幕,要記住是有間歇的點擊屏幕,不要讓小鳥掉下來。
2、盡量保持平和的心情,點的時候不要下手太重,盡量注視著小鳥。
3、游戲的得分是,小鳥安全穿過一個柱子且不撞上就是1分。當然撞上就直接掛掉,只有一條命。
5負面新聞編輯
雖然flappy bird下架了,但flappy bird這一席捲全球的風波還未結束,芝加哥一少年玩flappy bird時,因嫉妒哥哥的分數比自己高,一怒之下將其殺死!
16歲少年Gary Wright與17歲的兄長Jabari Wright都在玩人氣游戲《Flappy
Bird》,不過當哥哥Jabari的分數達到17分後,便開始嘲笑弟弟只能玩到6分。結果憤怒的弟弟用刀對著哥哥的胸部連捅17刀,代表其游戲的17
分。事後,Gary撥打報警電話自首。
Gary將面臨一級謀殺的指控,且被關押在臨時少管所等待法院審理。據報道,Gary告訴檢察官:「任何玩過這款游戲的人都會明白我的舉動。」
6下架報道編輯
Flappy Bird 下架
之前爆紅手游《Flappy Bird》的作者Dong Nguyen在Twitter上放出狠話,說要22小時之後把《下墜的小鳥》從App store和安卓商店上撤下,這款游戲也確實已經下架了,國內用戶仍可通過其他軟體免費安裝下載。
作者Dong Nguyen突然之間倍受關注
阮哈東(Nguyen Ha Dong)這么做的原因很簡單,他認為媒體的報道高估了這款游戲,這也是他所不願看到的,這樣的現況讓他倍感壓力。此外,他也聲稱堅決不會將游戲出售,自己以後也會繼續做游戲。
2014年2月9日,阮哈東在Twitter消息中稱:「我很抱歉,《Flappy Bird》的玩家們,22小時後,我將撤下《Flappy Bird》。我再也無法忍受了。」[3]
他還表示:「這與法律問題無關。我就是再也忍不了了。」而在更早的一條Twitter消息中,阮哈東稱:「媒體誇大了我的游戲的成功。這絕不是我想要的。請讓我安靜。」
北京時間2月10日,爆紅的手機小游戲《Flappy Bird》(下墜的小鳥)從蘋果和谷歌應用商店下線,原因是外界壓力巨大,令越南開發者阮哈東無法忍受。屆時用戶仍可以通過其他軟體免費下載安裝體驗該款游戲。
《Flappy Bird》2013年5月上線,但直到2014年才迎來爆發。玩家驚呼這款游戲的難度簡直是「反人類」,同時又樂此不疲。也有人批評它的設計理念,甚至抨擊目標受眾,令開發者阮哈東壓力巨大。
另一方面,阮哈東曾表示,《Flappy Bird》受到了任天堂經典游戲《超級馬里奧》的啟發。他的兩位朋友隨後對路透社表示,任天堂已發來警告信,但後者否認了這一說法。
商店中已找不到Flappy Bird的身影
該游戲作者阮哈東(Nguyen Ha Dong)[4]隨著《Flappy Bird》的莫名走紅開始廣為人知,
flappy bird
而
這名程序員在面對每天至少5萬美元的廣告收入和大大的名氣前,卻出人意料地選擇了「將游戲在APP和安卓市場下架」,但事實也證明了他並非說說而已。如果
這樣做真的如阮哈東自己所說的那樣,只是不想單純的生活被打擾的話,那麼我們應該尊敬他,不要再做那些所謂的「分析」和猜疑了,就像Nguyen Ha
Dong自己說的那樣:不要再打擾單純的程序員了。[5-6]
7轟動效應編輯
flappy bird雖然已經下架了,但是其火爆程度反而不降反升!為什麼?因為裝有flappy bird游戲的手機已經在eBay上拍賣,並飈價到9萬美元了,這可相當於50萬的人民幣。
不到24個小時,玩家們紛紛將預裝了原版Flappy Bird游戲的iPhone手機在全球拍賣及購物網站eBay拍賣,最高價已經飆升到9萬美元摺合人民幣約50多萬。
flappy bird不具備任何可能成功的徵兆,沒有精美的畫面,沒有獨特的玩法,沒有大公司在背後的大力營銷,更沒有什麼虛擬的成就獎勵。
玩家在游戲中唯一需要做的就是,用拇指點擊屏幕控制小鳥的飛行高度,從而在一個個綠色管道的空隙中穿過。一旦撞擊到管道,小鳥就會一頭栽倒在地上,游戲結束。每穿過一個管道,玩家就會掙到一分的成績。
這個看似簡單到極致的游戲,其實只是說著容易,玩起來很難。不少玩家眼睜睜看著自己只能玩個5分,然後抓狂地想要摔掉手機。不過,很多人還是選擇繼續挑戰自己的耐心。
據了解,預裝《Flappy Bird》的 iPhone 5s 可以拍出非常驚人的價格。截至發稿時,其最高拍賣價已經串至 9.99 萬美元,而且還不斷有人參與其中,最終成交價想必也會遠遠超出我們的想像。簡直喪心病狂了~
8重新上架編輯
令無數全球玩家手指顫抖的《Flappy Bird》在上周就表示永久下架,並且作者Dong Nguyen也表示游戲給自己帶來眾多苦惱。如今也許是作者感受到全球粉絲的真心與熱情,最終決定《Flappy Bird》將回歸!
阮哈東twitter截圖
作者Dong Nguyen在Twitter說到,「我們打算升級現有的Flappy Bird,並以《Flappy Bird 2》的身份重新登錄App Store,為了讓《Flappy Bird》能夠重返App Store,目前我們正與蘋果公司方面聯系中」。
另外,網友也在Twitter上發現了這樣的一條信息,作者稱「如果有1萬個從心底里喜歡《Flappy
Bird》的人關注我的話,《Flappy Bird》也能回來的吧」。事實上,作者已經將包含「《Flappy
Bird》升級版在內的3款游戲在App Store提交了上架申請。讓我們一起期待《Flappy Bird》的再次回歸吧。
Flappy Bird是2014年開年以來全世界最受關注的一款游戲。由於這款游戲太容易讓人上癮,Flappy Bird的開發者阮哈東已經將其從蘋果App Store和谷歌Google Play商店中進行了下架處理。[7]
不過雖然原版被下架,但是在應用商店中依然充斥著各種山寨版和模仿者,而幾天之前蘋果公司也在App Store中集中清理了一次標題中含有「Flappy」名稱的同類型應用,並且對包含該名詞的新游戲一律不許通過審批。
一家名叫OneClick的游戲開發公司已經決定徹底擁有Flappy
Bird的所有權,並且已經在2月9日向美國專利商標局(USPTO)正式提出了商標申請。由於Flappy
Bird這款游戲的最初開發者阮哈東已經表示放棄了這款游戲,因此OneClick公司極有可能獲得Flappy
Bird商標的所有權。而這位半路殺出來的「程咬金」甚至已經完成了自己的版本,並且放出了運行演示視頻。
而一旦OneClick公司成功的獲得Flappy
Bird商標的所有權,那麼這款游戲將很有可能重新在各大應用商店中「復活」。不過我們不知道這款游戲的原版開發者阮哈東看到這條消息會是怎樣的心理。畢
竟從游戲運行視頻中我們看到,新版的Flappy Bird可以說與下架之前的原版一模一樣,除了配色稍深,在玩法和界面布局上幾乎完全相同。
9開發者簡介編輯
Flappy Bird的開發者[4]——越南遊戲工程師阮哈東表示下線該款游戲是為了恢復自己的平靜生活。
29歲的阮哈東畢業於越南河內科技大學。過去4年,他開發了接近30款游戲,曾經獲得過幾個游戲開發獎項,而Flappy Bird這個難到讓玩家崩潰的小游戲最終讓其一舉成名。
Flappy Bird的小鳥角色最初是阮哈東在2012年為一個橫版游戲而創作的,但阮哈東後來取消開發這個游戲。之後,他用了2到3天開發出《Flappy Bird》,並重新使用了小鳥這一角色。2013年1月3日,這款游戲在App Store正式上線。
令阮哈東沒有想到的是,2013年1月11日開始,每天的下載數量都在成倍增長,到去年底,Flappy Bird成為最流行的免費游戲之一。Flappy Bird在蘋果App Store中國區免費榜上已排名第一。
阮哈東把Flappy
Bird的成功歸於運氣。在他看來,這個游戲並不新穎,只是用了不同的方式呈現給用戶。不過,阮哈東認為自己的確創造了一個正確的風格,在接下來的開發中
他將保持這個風格。但游戲的成功並沒有讓阮哈東過得更舒服,而是十分煩躁。這一切的根源並非是來自潛在侵權的官司,而似乎是外界的過度關注。
隨著游戲走紅,阮哈東開始受到關注。他收到了幾家游戲公司的邀請,但這個年輕人表示自己喜歡做獨立游戲開發者,因為
後者有更多的自由。阮哈東每天都要回復成千上萬的電子郵件,其中一大部分來自於廣告公司、投資者,有些投資者甚至拋出了收購的橄欖枝,但被他拒絕了。「我
可以說Flappy Bird是我的成功,但是它也摧毀了我簡單的生活,所以我現在恨他。」
開發者阮哈東
10深度分析:編輯
手游Flappy Bird為何爆紅
自虐手游Flappy Bird在中國區appstore免費榜一舉超過了騰訊麻將位居第一,證明了Flappy
Bird這款來源於歐美市場的熱點游戲能夠實現飄洋過海逆襲中國。而Flappy
Bird據報道上架初期已取得了5000萬次的下載量、廣告收入已達到單日5萬美元。
gamelook作為業內媒體,如何看待Flappy Bird的成功?當然與大家的意見一致,類似的成功必定是小概率事件。對於這款產品整個過程,以及後繼發生的若幹事,其實有一些東西可以好好談一談。
Flappy Bird成功之後:越南開發者另兩款自虐游戲迅速在美國竄紅。
先說說大家還不了解的現狀。
如果各位同學認為Flappy Bird對越南開發者阮哈東(Nguyen Ha Dong)是撞了一次大運的話,那麼大家需要更新下狀態了,阮哈東已經連續成就了3款游戲、連勝三局。
在今天的美國區appstore免費榜上,阮哈東的這3款手游是這樣的排名,Flappy
Bird位居免費榜第1,Super Ball Juggling位居免費榜第4,Shuriken
Block位居免費榜第24。如果這兩款游戲繼續紅下去,阮哈東的廣告收入還得再漲漲。
或許是玩家對開發者的興趣、也或許是國外媒體報道的推波助瀾,導致了其另外兩款如出一轍概念的自虐游戲迅速被帶上了免費榜高位。
而對阮哈東來說,其用自己三款游戲經歷展現了什麼叫「成功可以復制」,十分驚人。
簡單介紹下阮哈東的另外兩款游戲,Super Ball
Juggling是一款自虐式「顛足球」玩法手游。Shuriken Block則是一款自虐式「忍者躲飛鏢」玩法手游,Shuriken
Block稍微與Flappy Bird不一樣的是,這款游戲有3條命、但大家可以無視,但變態低的成功率,難度系數比Flappy
Bird感覺還要高。
談完了現狀,還是追根溯源,那麼,Flappy Bird創意來自何處?
從創意的來源來說,Flappy
Bird無法證明其獨創性,比如在twitter上,一位名為Kek的開發者即表示Flappy Bird山寨了其2011年開發的游戲Piou
Piou,在twitter上,1500人次轉發了這條推,至少很多人認同KeK的質疑,從Flappy
Bird游戲的核心玩法、美術形象來看,gamelook也認同是剽竊了Piou Piou的創意。
整體來看,Flappy Bird的那隻鳥無非將Piou
Piou的卡通小鳥改為了像素風格,顏色也一樣,而且玩法上,實在是太過相似。Flappy
Bird改動最大的是把核心玩法導向了完全的自虐模式,為此在玩法上相比Piou
Piou做了簡化,這也是為何其能獲得病毒式下載量的重要原因,另外一個最大的不同是原版的piou piou是一款flash小游戲,而Flappy
Bird是手機游戲支持iOS、android。[8]
11其他版本編輯
電腦pc版
Flappy
Bird電腦版(又稱笨鳥先飛電腦版)是一款來自IOS平台的小游戲,該游戲是由一名越南遊戲製作者開發獨自開發而成,玩法極為簡單,但是玩家千萬不能小
瞧這款作品,就是這么一款單純的小游戲在短短幾天之內幾乎占據了80%的歐美手機游戲用戶,並且這一數字依然在飆漲。
Flappy Bird[9]電
腦版採用HTML5+Canvas及Javascript技術來實現,在Firefox與Chrome瀏覽器下可以完美呈現,在IE瀏覽器及部分國內瀏覽
器無法很好的實現。採用HTML5+Canvas技術的Flappy Bird電腦版強烈建議在能完美支持HTML5的瀏覽器下運行。
Web App版
雖然《Flappy Bird》已經被作者選擇下架,但在第三方市場還能找到下載,另有網友開發了Web App版《Flappy Bird》,沒有下載的朋友可以直接使用瀏覽器進行游戲。
Web App版《Flappy Bird》以網頁html5+JS技術完全克隆了原版native app的所有特性和體驗,讓玩家免去下載的過程就能暢快「找虐」,在Chrome和Safari瀏覽器下體驗最佳。
iPhone和iPad還支持「添加到主屏幕」,添加後與原版Flappy Bird一模一樣。
微信/QQ空間版
同類游戲截圖
與原版幾乎完全一致的 Flappy Bird 手機微信客戶端朋友圈與QQ空間版本也出現在互聯網上。有網友通過分享某網站上的 /bird 頁面,實現了在微信朋友圈和QQ空間中的無縫運行。
WindowsPhone版
Flappy Bird是2014年爆紅的一款手游,由越南河內的獨立游戲開發者阮哈東(Nguyen Ha Dong)開發,游戲雖然操作簡單但難度極高。
12同類游戲編輯
Flat Birds(扁平鳥)系列
Flat Birds 的系列作品「Flap Flap」有 Flappy Bird 2之稱,Flat Birds iOS版 [10]和 Android版[11] 已經分別上架 Appstore 與 Google play。Flat Birds 保持了Flappy bird經典玩法,並在其基礎上新增了社交分享功能和成就系統,另外該作在畫面質量和游戲性能上都有所提升。
鐵褲衩
同類游戲截圖
山寨得最徹底的要數這邊《鐵褲衩》(Ironpants)了,玩法上和場景上,與《Flappy Bird》幾乎一模一樣只不過是越南囧鳥變成了身穿鐵褲衩的超人,馬里奧的水管變成了木箱罷了。《Flappy Bird》下架以後,《鐵內褲》(Ironpants)迅速取而代之,如今已經登上了美國免費榜的第2。
Piou Piou
同類游戲截圖
據說《Flappy Bird》是抄襲這款《Piou Piou》的。從游戲畫面來看,相似度的確相當高,綠色的馬里奧水管換成了綠油油的仙人掌,就連囧鳥也長得跟親戚似的。
據說兩款游戲的開發者是不約而同製作出了兩款如此高度相似的游戲,除非他們是好朋友,否則實在難以說得過去。不管如何吧,沒玩過《Flappy Bird》的玩家大可試玩一下這款《Piou Piou》。
Flappy Bee
同類游戲截圖
這款游戲則是從名字上山寨,不過這是小蜜蜂長得的確可愛,畫面也清新明快,不失為一款賞心悅目的山寨良心之作。
Flappy Plane
同類游戲截圖
《Flappy Plane》也是一款跟風作品,越南囧鳥這次變成了灰機。
雖然這只灰機長得實在有點對不起觀眾,但還是擋不住《Flappy Bird》的強大人氣效應,玩家們愛屋及烏之下,《Flappy Plane》也位列美國區免費榜第23名。
Fly Birdie
同類游戲截圖
這款山寨游戲乾脆把像素風的越南囧鳥變成了真鳥,而且為了照顧手殘玩家,加入IAP內購,好讓玩家一局擁有3條命,媽媽再也不用擔心我一條命玩不過時會砸土豪金了。
Farty Pants
同類游戲截圖
囧鳥變成了小正太,披著披風學超人。這款《Farty Pants》的場景和玩法與《Flappy Bird》的相似度達95%以上。
Flappy Pig
同類游戲截圖
連二師兄也來湊熱鬧了,這是赤果果的山寨了,只是二師兄代替了囧鳥而已。
Flappy Fish
㈡ c語言游戲編程,下落的小鳥 求代碼
下落的小鳥
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<Windows.h>
int Grade = 1, Score = 0, Max_blank = 9, Distance = 18;
struct Birds{int x; int y;}; //定義一種Birds數據類型(含3個成員)
Birds *Bird = (Birds*)malloc(sizeof(Birds)); //定義Birds類型 指針變數Bird並賦初值
struct Bg{int x, y; int l_blank; Bg *pri; Bg *next;}; //定義一種Bg數據類型(含5個成員)
Bg *Bg1 = (Bg*)malloc(sizeof(Bg)); //定義Bg類型 指針變數Bg1並賦初值
void Position(int x, int y) //游標定位函數(用於指定位置輸出)
{COORD pos = { x - 1, y - 1 };
HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(Out, pos);
}
void Csh( ) //初始化界面
{
printf("══════════════════════════════════════ ");
printf(" ■■ ■■ C語言版 Flappy Bird ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ 瞎搞人:yyposs原創 ");
printf(" ■■ ■■ 瞎搞日期:2014.2 ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ 改編:鳴蟬百2021.7 ");
printf(" ■■ ■■ 操作:按向上方向鍵讓小鳥起飛 ");
printf(" ■■ ");
printf(" ■■ ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ ");
printf(" ■■ ■■ DEVc++運行通過 ");
printf("══════════════════════════════════════ ");
printf(" 按鍵繼續…");
getch( );
system("cls");
}
void PrFK( ) //輸出方框(游戲范圍區)
{int i;
Position(1, 1); printf("╔"); Position(79, 1); printf("╗");
Position(1, 24); printf("╚"); Position(79, 24); printf("╝");
for (i = 3; i <= 78; i += 2){Position(i, 1); printf("═"); Position(i, 24); printf("═");}
for(i=2;i<=23;i++)
{ Position(1,i); printf("║");if(i<11)printf("0%d",i-1);else printf("%d",i-1);
Position(79,i); printf("║");
}
Position(4, 25); printf("小鳥即將出現,請准備按鍵起飛… ");
getch( );
Position(4, 25); printf(" ");
}
void CreatBg( ) //創建障礙物坐標(便於列印輸出)
{Bg *Bg2 = (Bg*)malloc(sizeof(Bg));
Bg1->x = 90; Bg1->y = 8; //確定障礙物的一對基本坐標(此時值是在游戲框之外)
Bg2->x = Bg1->x + Distance; Bg2->y = 9; //下一障礙物的基本坐標x、y
Bg1->l_blank = Max_blank - Grade; //障礙物上下兩部分之間的空白距離l_blank
Bg2->l_blank = Max_blank - Grade;
Bg1->next = Bg2; Bg1->pri = Bg2;
Bg2->next = Bg1; Bg2->pri = Bg1;
}
void InsertBg(Bg *p) //隨機改變障礙物的y坐標,讓空白通道有上下變化
{int temp;
Bg *Bgs = (Bg*)malloc(sizeof(Bg));
Bgs->x = p->pri->x + Distance;
Bgs->l_blank = Max_blank - Grade;
srand((int)time(0)); //啟動隨機數發生器
temp = rand( ); //產生一個隨機數並賦值給temp
if (temp % 2 == 0)
{if ((temp % 4 + p->pri->y + Max_blank - Grade)<21)
Bgs->y = p->pri->y + temp % 4;
else Bgs->y = p->pri->y;
}
else
{if ((p->pri->y - temp % 4)>2)Bgs->y = p->pri->y - temp % 4;
else Bgs->y = p->pri->y;
}
Bgs->pri = p->pri; Bgs->next = p;
p->pri->next = Bgs; p->pri = Bgs;
}
void CreatBird( ) //建立小鳥的坐標(初始列印輸出小鳥的位置)
{Bird->x = 41; Bird->y = 10;}
int CheckYN(Bg *q) //判斷游戲結束與否(值為0是要結束,為1沒有要結束)
{Bg *p = q; int i = 0;
while (++i <= 5)
{if (Bird->y>23)return 0;
if (Bird->x == p->x&&Bird->y <= p->y)return 0;
if ((Bird->x == p->x || Bird->x == p->x + 1 || Bird->x == p->x + 2) && Bird->y == p->y)return 0;
if (Bird->x == p->x&&Bird->y>p->y + p->l_blank)return 0;
if ((Bird->x == p->x || Bird->x == p->x + 1 || Bird->x == p->x + 2) && Bird->y == p->y + p->l_blank)
return 0;
p = p->next;
}
return 1;
}
void Check_Bg(Bg *q) //核查開頭的障礙物坐標是否在游戲區內
{Bg *p = q; int i = 0, temp;
while (++i <= 5)
{if (p->x>-4)p = p->next;
else
{srand((int)time(0)); temp = rand();
if (temp % 2 == 0)
{if ((temp % 4 + p->y + Max_blank - Grade)<21)p->y = p->y + temp % 4;
else p->y = p->y; p->x = p->pri->x + Distance;
p->l_blank = Max_blank - Grade;
}
else
{if ((p->y - temp % 4)>2)p->y = p->y - temp % 4;
else p->y = p->y; p->x = p->pri->x + Distance;
p->l_blank = Max_blank - Grade;
}
}
}
}
void Prt_Bg(Bg *q) //列印輸出障礙物(依據其x、y坐標進行相應輸出)
{Bg *p = q; int i = 0, k, j;
while (++i <= 5)
{if (p->x>0 && p->x <= 78)
{for (k = 2; k<p->y; k++){Position(p->x + 1, k); printf("■"); printf("■"); printf(" ");}
Position(p->x, p->y);
printf("■"); printf("■"); printf("■"); printf(" ");
Position(p->x, p->y + p->l_blank);
printf("■"); printf("■"); printf("■"); printf(" ");
k = k + p->l_blank + 1;
for (k; k <= 23; k++){Position(p->x + 1, k); printf("■"); printf("■"); printf(" ");}
}
p = p->next;
if (p->x == 0)
{for (j = 2; j<p->y; j++){Position(p->x + 1, j); printf(" "); printf(" ");}
Position(p->x + 1, p->y);
printf(" "); printf(" "); printf(" ");
Position(p->x + 1, p->y + Max_blank - Grade);
printf(" "); printf(" "); printf(" ");
j = j + Max_blank - Grade + 1;
for (j; j <= 22; j++){Position(p->x + 1, j); printf(" "); printf(" ");}
}
}
}
void PrtBird( ) //列印輸出小鳥
{Position(Bird->x, Bird->y - 1); printf(" ");
Position(Bird->x, Bird->y); printf("Ю");
Position(38, 2); printf("Score:%d", Score);
}
void Loop_Bg(Bg *q) //障礙物x坐標左移,並記錄成績
{Bg *p = q; int i = 0;
while (++i <= 5)
{p->x = p->x - 1; p = p->next;
if (Bird->x == p->x)
{Score += 1;
if (Score % 4 == 0 && Grade<4)Grade++;
}
}
}
int main( )
{int i = 0; int t;
while (1)
{
Csh( );PrFK( );CreatBg( );
InsertBg(Bg1);InsertBg(Bg1);InsertBg(Bg1);
CreatBird( );
while (1)
{if (!CheckYN(Bg1))break;
Check_Bg(Bg1);Prt_Bg(Bg1);
PrtBird( );Loop_Bg(Bg1);
Bird->y = Bird->y + 1;
if (GetAsyncKeyState(VK_UP)) //按下了向上方向鍵
{Position(Bird->x, Bird->y - 1);printf(" ");
Bird->y = Bird->y - 4;
}
Sleep(200); //程序延時200毫秒(數值大小決定游戲速度快慢)
i = 0;
}
Position(6, 25);
printf("游戲結束! 請輸入:0.退出 1.重玩");
scanf("%d",&t);
if (t==0)break;
system("cls"); Score = 0;
}
return 0;
}