新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C語言猜拳游戲代碼及分析

C語言猜拳游戲代碼及分析

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
1.引言
1.編寫目的
小時(shí)候,我們喜歡以猜拳來贏得獎勵。
現(xiàn)在,我們希望能開發(fā)一個(gè)猜拳的游戲。
2.定義
需求:用戶解決問題或達(dá)到目標(biāo)所需的條件或功能;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn),規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。而且其很強(qiáng)的交互性及簡單易行性,可以讓人在很短時(shí)間內(nèi)熟悉它的操作方法,不論用戶文化水平如何,都會很輕松的學(xué)會使用它。
2.任務(wù)概述
1.目標(biāo)
2.用戶的特點(diǎn)
由于本程序簡單易操作,交互性好,對用戶沒什么特別要求。一般用戶經(jīng)過幾分鐘練系都可以熟悉本系統(tǒng)的規(guī)則。
3.系統(tǒng)功能示例
3.需求細(xì)則
1. 對功能的規(guī)定
1.1 界面友好
屬性:必選
描述:用戶的一些操作前后做出一些必要的提示或確認(rèn)。所有完成的功能都需要友好,例如:
● 增加失敗提示;
● 刪除失敗和成功提示、刪除前的確認(rèn);
● 修改失敗和成功提示、修改前/后的確認(rèn);
● 查找失敗提示、查找成功的確認(rèn);
● 退出系統(tǒng)時(shí),要提示是否退出;
● 其它方面的界面問題;
1.2 用戶注冊
屬性:必選
描述:登錄界面可以用戶注冊,注冊信息包含用戶名和密碼,例如:
● 不能使用已經(jīng)存在的用戶名
● 密碼不能少于6個(gè)字符
1.3 用戶登錄
屬性:必選
描述:用戶通過登錄界面進(jìn)行登錄,必須輸入正確的用戶名和密碼方可進(jìn)入系統(tǒng),例如:
● 提示輸入用戶名
● 提示輸入密碼
● 用戶名和密碼驗(yàn)證,都符合則進(jìn)入系統(tǒng),不然回到第一步,超過三次登錄,則提示登錄次數(shù)超過三次,退出系統(tǒng)
1.4 開始游戲
屬性:必選
描述:金額大于1的用戶可以開始游戲
● 下注:提示用戶下注的金額數(shù)
● 猜拳:(必須先下注,如果用戶下注金額小于等于0,不能進(jìn)行游戲)與電腦進(jìn)行猜拳游戲,如果猜輸了,扣除你的金額(由下注決定),勝利將隨機(jī)獲得1~5倍的下注金額獎勵
n提示:電腦隨機(jī)出拳,勝利獎勵也是隨機(jī)的,例如:
n隨機(jī)獲得1~5數(shù)字代碼:
nsrand((unsigned)time(NULL));
nint radio = rand() % 5 + 1;//radio 為隨機(jī) 1~5的整數(shù)
● 如果金額少于下注數(shù),將不能進(jìn)行猜拳,給出充值提示
1.5 充值
屬性:必選
描述:用戶可以進(jìn)行充值
● 充值金額
● 充值的時(shí)候,必須輸入充值密碼(由5個(gè)字符組成,隨機(jī)包括數(shù)字0~9和所有小寫字母)
● 如果充值密碼正確,充值成功,不然充值失敗
1.6 修改用戶信息
屬性:必選
描述:用戶可以注銷(刪除)自己的賬戶、或者修改個(gè)人信息
● 修改個(gè)人信息
n 修改用戶密碼
● 注銷用戶(本人)
n 刪除用戶所有信息(刪除完畢將返回登錄界面,用戶賬號已經(jīng)不存在)
1.7 查看用戶信息
屬性:必選
描述:用戶登錄成功后,可以選擇查看用戶自己信息或者所有用戶信息
● 查看用戶自己信息:(本人)用戶名 密碼 金額 勝率
● 查看所有用戶信息:所有用戶名 金額 勝率
1.8 排序
屬性:必選
描述:用戶可以對所有用戶信息進(jìn)行排序操作,便于查看
● 金額排序
● 勝率排序
對性能的規(guī)定
本系統(tǒng)在設(shè)計(jì)方面本著方便、實(shí)用的宗旨,性能方面應(yīng)遵循如下原則:
● 執(zhí)行效率(時(shí)間): 軟件運(yùn)行應(yīng)該盡量高效;避免沒有必要的循環(huán)處理、重復(fù)處理;
● 資源損耗(空間):設(shè)計(jì)盡量節(jié)約資源(內(nèi)存、數(shù)組、鏈表等);不用的資源要及時(shí)釋放;
● 初始化: 變量、數(shù)組、內(nèi)存塊;
● 健壯性:不能出現(xiàn)野指針、內(nèi)存泄露、數(shù)組越界訪問等等:
◎ 聲明指針后,立即將指針設(shè)置為NULL,防止產(chǎn)生“野指針”;
◎ 函數(shù)的入?yún)⒈仨氝M(jìn)行有效性判斷;用戶輸入、函數(shù)返回值(如果用到的話)都要判斷;
◎ switch-case一定要有default;if-else if等后要有else,除非if滿足后返回或退出;
◎ 不允許出現(xiàn)goto語句;
◎ 數(shù)組的下標(biāo)不要溢出。
3. 對排版的規(guī)定
● 縮進(jìn)要對齊;
● 長行拆分;
● 二元操作符的前后應(yīng)當(dāng)加空格,包括如下操作符:
賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如"="、"+="">="、"<="、"+"、"*"、"%"、"&&"、"||"、"<<","^" 等;
● 空行:
◎ 聲明之后、每個(gè)函數(shù)定義結(jié)束之后都要加1行空行;
◎ 邏揖上密切相關(guān)的語句之間不加空行,其它地方應(yīng)加空行分隔;
◎ 一行代碼只做一件事情;
◎ "if"、"for"、"while"、"do"等語句自占一行,執(zhí)行語句不得緊跟其后。不論執(zhí)行語句有多少都要加 "{ }";
4. 對可維護(hù)性的規(guī)定
對可維護(hù)性的最終要求:別人能夠輕松上手你的代碼。
● 結(jié)構(gòu)清晰:
◎ 模塊化:對界面(顯示)、菜單管理、邏輯管理、文件操作等等代碼要獨(dú)立,必須多個(gè).c文件,用makefile;
◎ 封裝:一個(gè)函數(shù)只做一件事,函數(shù)功能要單一;一個(gè)函數(shù)不能超過50行;
避免重復(fù)、冗余代碼;
◎ 代碼塊清晰。
● 命名規(guī)范,變量名應(yīng)該具有自明性:
◎ 函數(shù)的命名:
使用"動詞"或者"動詞+名詞"(動賓詞組)的形式,由一個(gè)或多個(gè)單詞組成且以小寫字母開頭,以后每個(gè)單詞之間用下劃線隔開
◎ 變量的命名與定義
應(yīng)當(dāng)使用"名詞"或者"形容詞+名詞",由一個(gè)或多個(gè)單詞組成且以小寫字母開頭,以后每個(gè)單詞之間用下劃線隔開。
● 注釋充分:變量、函數(shù)(包括參數(shù)、返回值)、代碼功能塊、一些復(fù)雜算法……等都需要
清晰明了地說明;
5. 對個(gè)性的規(guī)定
把項(xiàng)目做出個(gè)性出來。下列各項(xiàng)中有和比人不同之處、或很有創(chuàng)意,即可認(rèn)為有個(gè)性。獨(dú)立設(shè)計(jì)的軟件,一般都會出現(xiàn)一些個(gè)性。參考、抄襲不會出現(xiàn)個(gè)性。
上一頁 1 2 3 下一頁

關(guān)鍵詞: C語言猜拳游戲代碼及分

評論


技術(shù)專區(qū)

關(guān)閉