系統開發-03玩家爆牌判斷

更新 發佈閱讀 6 分鐘
vocus|新世代的創作平台


這一篇來加上玩家的分數計算與超過21點(爆牌)的判斷。

先在Card類別加上每張牌的數值

public class Card
{
public string Suit { get; set; } // 花色
public string SuitName { get; set; } // 花色名稱,為了顯示排堆時方便辨識
public int Rank { get; set; } // 點數
public int Seq { get; set; } // 順序

//**新增**
public int Value // 對應的數值
{
get
{
if (Rank == 1) //A計算分數時先當作11點
{
return 11;
}
else if (Rank > 10)
{ //JQK計算分數都是10點
return 10;
}
else
{
return Rank;
}
}
}
public Card(string suit, string SuitName, int rank) {
this.Suit = suit;
this.SuitName = SuitName;
this.Rank = rank;
} //建立類別

// 顯示卡片的文字表示
public override string ToString()
{
return $"{Rank} of {SuitName}";
}
}

再來在Player類別加上爆牌判斷

public class Player
{
public List<Card> cards { get; private set; }

public Player()
{
cards = new List<Card>();
Init();
}

public void Init()
{
cards.Clear();
}

public void AddCard(Card card)
{
cards.Add(card);
}

//**新增**
//計算手牌分數
public int CalculatePoints()
{
int points = 0;
int aceCount = 0; //A拿到次數

foreach (var card in cards)
{
points += card.Value;
if (card.Rank == 1) aceCount++;
}

// 調整A的值,以避免爆牌
while (points > 21 && aceCount > 0)
{
points -= 10;
aceCount--;
}

return points;
}

//**新增**
//判斷是否爆牌
public bool IsBusted()
{
return CalculatePoints() > 21;
}
}

最後要牌(Hit)按鈕按下後判斷玩家是否爆牌,若是爆牌,要牌(Hit)與停牌(Stand)按鈕無法使用。

protected void btn_hit_Click(object sender, EventArgs e)
{
DrawForPlayer();

//**新增***
//爆牌判斷
if (player.IsBusted())
{
lab_msg.Text = $"{player.CalculatePoints()}點,你爆掉了! 莊家贏!";

//牌局結束,不能再按發牌和停牌
btn_hit.Enabled = false;
btn_stand.Enabled = false;
btn_newgame.Enabled = true;
}

UpdateUI();
}

執行結果:

vocus|新世代的創作平台


下一篇來設計停牌(Stand)按鈕事件(電腦要牌與莊家玩家的分數比較)。

留言
avatar-img
Phyxsius
0會員
19內容數
FIRE
你可能也想看
Thumbnail
本篇介紹單人遊戲的核心架構與邏輯,涵蓋發牌、抽牌、出牌及遊戲結算等重要步驟。文章也詳細介紹了使用 socket.io 建立連線的過程,並說明如何利用 React Hooks 管理遊戲狀態,提及後端伺服器如何處理玩家加入房間的事件,並簡要介紹了房間資訊的管理,此文將分為多篇進一步介紹遊戲事件部分。
Thumbnail
本篇介紹單人遊戲的核心架構與邏輯,涵蓋發牌、抽牌、出牌及遊戲結算等重要步驟。文章也詳細介紹了使用 socket.io 建立連線的過程,並說明如何利用 React Hooks 管理遊戲狀態,提及後端伺服器如何處理玩家加入房間的事件,並簡要介紹了房間資訊的管理,此文將分為多篇進一步介紹遊戲事件部分。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
從博弈觀點切入並結合數值盤點,觀察大富翁GO的運營模式。
Thumbnail
從博弈觀點切入並結合數值盤點,觀察大富翁GO的運營模式。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
運彩分析是現代賽事投注者的重要工具。透過精確的數據分析和策略研究,你可以大幅提升獲勝機會。這篇文章將介紹如何進行有效的運彩分析,並分享一些實用技巧,讓你在競爭激烈的投注市場中脫穎而出。
Thumbnail
運彩分析是現代賽事投注者的重要工具。透過精確的數據分析和策略研究,你可以大幅提升獲勝機會。這篇文章將介紹如何進行有效的運彩分析,並分享一些實用技巧,讓你在競爭激烈的投注市場中脫穎而出。
Thumbnail
本文解釋了紅牌的使用時機和策略,包括如何正確丟紅牌來幹擾對手的運轉,以及如何引誘對手丟紅牌。文章深入探討了各種情境與心理戰,幫助玩家在對戰中做出更有效的決策,並提供了實用的紅牌應用案例與技巧。
Thumbnail
本文解釋了紅牌的使用時機和策略,包括如何正確丟紅牌來幹擾對手的運轉,以及如何引誘對手丟紅牌。文章深入探討了各種情境與心理戰,幫助玩家在對戰中做出更有效的決策,並提供了實用的紅牌應用案例與技巧。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這份教材由打醒卡塔羅、聊心卡作者Susu製作,禁止轉載內容避免引發爭議。 1. 看整體牌陣推測大方向。 抽牌後先看整體牌陣的位置出的是什麼牌,有沒有哪個部分訊息不足需補牌
Thumbnail
這份教材由打醒卡塔羅、聊心卡作者Susu製作,禁止轉載內容避免引發爭議。 1. 看整體牌陣推測大方向。 抽牌後先看整體牌陣的位置出的是什麼牌,有沒有哪個部分訊息不足需補牌
Thumbnail
【詭鎮奇談自創牌組】該死的好奇心,我拒絕!大手牌流哈維教授牌組介紹
Thumbnail
【詭鎮奇談自創牌組】該死的好奇心,我拒絕!大手牌流哈維教授牌組介紹
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
當更多選擇等於更多優勢的同時,是否我們應該著手的是為自己創造更多選擇,並減少對手的選擇。
Thumbnail
當更多選擇等於更多優勢的同時,是否我們應該著手的是為自己創造更多選擇,並減少對手的選擇。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News