C語(yǔ)言撲克牌游戲示例
一、 設(shè)計(jì)目的
撲克牌是我們從小玩到大的紙牌類(lèi)小游戲,我們有各種玩法跟不同的規(guī)則。我之所以選擇的這個(gè)撲克牌,是因?yàn)槲矣X(jué)得可以提高我的編程邏輯能力跟運(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)介紹撲克牌:一副沒(méi)有大小王的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)過(guò)程
洗牌時(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)榧埮?。將玩家出過(guò)的牌賦值為13,依次達(dá)到標(biāo)記刪除的目的。以玩家1為首先打牌者,從最小的牌開(kāi)始,有幾張一樣的都出,以此達(dá)到任意n(1<=n<=4)張出牌的目的,玩家2看有沒(méi)有牌大于玩家1,如果有則出牌,沒(méi)有就輪到玩家3,同理輪到玩家4。把每個(gè)玩家已經(jīng)打過(guò)的牌進(jìn)行賦值為13,目的就是防止再一次打牌。當(dāng)所有玩家沒(méi)有出牌時(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)出牌;出牌后,若所有下家都沒(méi)有牌出,則當(dāng)前這一家可以選擇出其它牌。一次出牌可以是1張、2張一樣、3張一樣或者4張一樣,下家所出的牌,需要大于上家出的牌,若上家出2張一樣的,那下家也要出2張一樣的,而且比它大的牌;
到此這篇關(guān)于C語(yǔ)言撲克牌游戲示例的文章就介紹到這了,更多相關(guān)C語(yǔ)言撲克牌內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 用c語(yǔ)言實(shí)現(xiàn)《狼人殺》游戲發(fā)牌系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的推箱子游戲
- C語(yǔ)言實(shí)現(xiàn)掃雷游戲詳解(附源碼)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲
- 用C語(yǔ)言實(shí)現(xiàn)推箱子游戲?qū)嵗?/a>
- 基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易三子棋游戲
- c語(yǔ)言實(shí)現(xiàn)可自定義的游戲地圖
- C語(yǔ)言實(shí)現(xiàn)井字棋游戲(人機(jī)對(duì)弈)
- C語(yǔ)言游戲項(xiàng)目球球大作戰(zhàn)實(shí)現(xiàn)流程
相關(guān)文章
C++中CSimpleList的實(shí)現(xiàn)與測(cè)試實(shí)例
這篇文章主要介紹了C++中CSimpleList的實(shí)現(xiàn)與測(cè)試實(shí)例,較為詳細(xì)的講述了C++列表類(lèi)的實(shí)現(xiàn)方法,需要的朋友可以參考下2014-10-10詳解C/C++ Linux出錯(cuò)處理函數(shù)(strerror與perror)的使用
我們知道,系統(tǒng)函數(shù)調(diào)用不能保證每次都成功,必須進(jìn)行出錯(cuò)處理,這樣一方面可以保證程序邏輯正常,另一方面可以迅速得到故障信息。本文主要為大家介紹兩個(gè)出錯(cuò)處理函數(shù)(strerror、perror)的使用,需要的可以參考一下2023-01-01C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲操作
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03C語(yǔ)言實(shí)現(xiàn)二值圖像模擬灰值圖像顯示效果
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)二值圖像模擬灰值圖像顯示效果,分為圖案法、抖動(dòng)法兩個(gè)方法實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Pipes實(shí)現(xiàn)LeetCode(192.單詞頻率)
這篇文章主要介紹了Pipes實(shí)現(xiàn)LeetCode(192.單詞頻率),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08關(guān)于win32 gettimeofday替代方案
下面小編就為大家?guī)?lái)一篇關(guān)于win32 gettimeofday替代方案。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12