網(wǎng)站首頁 編程語言 正文
一、 設(shè)計(jì)目的
撲克牌是我們從小玩到大的紙牌類小游戲,我們有各種玩法跟不同的規(guī)則。我之所以選擇的這個(gè)撲克牌,是因?yàn)槲矣X得可以提高我的編程邏輯能力跟運(yùn)用循環(huán)的能力。還能讓我自由運(yùn)用所學(xué)知識(shí)完成我的項(xiàng)目設(shè)計(jì)的需求,對(duì)我綜合能力的能力很有挑戰(zhàn)!
二、 設(shè)計(jì)內(nèi)容與要求
(1)設(shè)計(jì)內(nèi)容:撲克牌游戲。
(2)介紹撲克牌:一副沒有大小王的52張牌,該牌從大到小的順序?yàn)椋?、3、4、5、6、7、8、9、10、J、Q、K、A。
(3)設(shè)計(jì)的比賽規(guī)則是:為每位玩家隨機(jī)分配13張牌,設(shè)計(jì)以玩家1為最先發(fā)牌者,并且可以任意n(1 <=n<= 4)張出牌,并且下一位玩家的牌數(shù)要與上一位玩家所出的牌的數(shù)量一致,并且比上位玩家大,只要有一個(gè)玩家的牌出完則該玩家勝利,游戲結(jié)束。
三、 設(shè)計(jì)思路
四、 實(shí)現(xiàn)過程
洗牌時(shí)使用rand函數(shù),使每次產(chǎn)生的隨機(jī)數(shù)與上一次的不相同,隨機(jī)數(shù)范圍在1到52之間,并且弄個(gè)循環(huán),保證每次產(chǎn)生的數(shù)字都與之前的不一樣。另外,定義一個(gè)結(jié)構(gòu)體,把每次產(chǎn)生的隨機(jī)數(shù)都放進(jìn)這個(gè)結(jié)構(gòu)體中。程序中每個(gè)玩家都必須出牌,所以要定義一個(gè)函數(shù)將數(shù)字分別轉(zhuǎn)變?yōu)榧埮啤⑼婕页鲞^的牌賦值為13,依次達(dá)到標(biāo)記刪除的目的。以玩家1為首先打牌者,從最小的牌開始,有幾張一樣的都出,以此達(dá)到任意n(1<=n<=4)張出牌的目的,玩家2看有沒有牌大于玩家1,如果有則出牌,沒有就輪到玩家3,同理輪到玩家4。把每個(gè)玩家已經(jīng)打過的牌進(jìn)行賦值為13,目的就是防止再一次打牌。當(dāng)所有玩家沒有出牌時(shí),上輪贏的玩家就會(huì)重新出牌。游戲結(jié)束是以某位玩家的牌先出完為勝。
五、 結(jié)論與改進(jìn)
項(xiàng)目已完成的效果:
\1. 一副撲克52張牌,從小到大的順序?yàn)椋?、3、4、5、6、7、8、9、10、J、Q、K、A,
\2. 由電腦隨機(jī)洗牌,并分成4份(4個(gè)電腦玩家),并設(shè)計(jì)出一個(gè)對(duì)弈函數(shù),每家調(diào)用該函數(shù)實(shí)現(xiàn)自動(dòng)出牌;出牌后,若所有下家都沒有牌出,則當(dāng)前這一家可以選擇出其它牌。一次出牌可以是1張、2張一樣、3張一樣或者4張一樣,下家所出的牌,需要大于上家出的牌,若上家出2張一樣的,那下家也要出2張一樣的,而且比它大的牌;
原文鏈接:https://blog.csdn.net/DM_LL/article/details/122083110
相關(guān)推薦
- 2022-05-22 查看Docker容器的信息的方法實(shí)現(xiàn)_docker
- 2022-03-28 python?Pandas中數(shù)據(jù)的合并與分組聚合_python
- 2023-10-16 獲取當(dāng)月的月初和月末日期時(shí)間戳
- 2022-11-04 LyScript實(shí)現(xiàn)Hook改寫MessageBox的方法詳解_python
- 2023-02-09 Go語言高效編程的3個(gè)技巧總結(jié)_Golang
- 2022-05-11 Python實(shí)現(xiàn)圖書借閱管理系統(tǒng)_python
- 2022-05-11 什么是 Reactor 模式?
- 2022-12-23 Python中的文件輸入輸出問題_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支