系統開發-04玩家停牌

更新 發佈閱讀 6 分鐘

繼續開發玩家停牌(Stand),停牌後輪到莊家(電腦)要牌,並判斷莊家是否爆牌與玩家比較點數大小。

raw-image

新增btn_stand_Click()中莊家要牌與爆牌和點數的比較判斷,且牌局結束(比較點數後)要牌和停牌按鈕無法按下

//玩家停牌,換莊家要牌DrawForDealer(),直到計分比較輸贏
protected void btn_stand_Click(object sender, EventArgs e)
{
//**新增***
player = (Player)Session["Player"];
dealer = (Player)Session["Dealer"];

//小於18點持續要牌
while (dealer.CalculatePoints() < 18)
{
DrawForDealer();
}

//如果莊家沒有爆牌,比較莊家和玩家的點數
int playerScore = player.CalculatePoints();
int dealerScore = dealer.CalculatePoints();

if (dealer.IsBusted() || playerScore > dealerScore)
{
//玩家贏
if (dealer.IsBusted())
{
lab_msg.Text = $"莊家 {dealer.CalculatePoints()}點,玩家 {player.CalculatePoints()}點! 莊家爆掉了! 玩家贏!";
}
else
{
lab_msg.Text = $"莊家 {dealer.CalculatePoints()}點,玩家 {player.CalculatePoints()}點! 玩家贏!";
}
}
else if (playerScore < dealerScore)
{
//莊家贏
lab_msg.Text = $"莊家 {dealer.CalculatePoints()}點,玩家 {player.CalculatePoints()}點! 莊家贏!";
}
else
{
//平手
lab_msg.Text = $"莊家 {dealer.CalculatePoints()}點,玩家 {player.CalculatePoints()}點! 雙方平手!";
}

btn_hit.Enabled = false;
btn_stand.Enabled = false;
btn_newgame.Enabled = true;

UpdateUI();
}

再來調整按鈕的狀態,牌局開始無法按下新牌局按鈕,以下是調整ResetGame()後的內容

protected void ResetGame() {        //初始化遊戲參數與動作(初始發牌)
//將資料存到Session
Session["Deck"] = new Deck();
Session["Dealer"] = new Player();
Session["Player"] = new Player();

//初始發牌
DrawForPlayer();
DrawForDealer();
DrawForPlayer();
DrawForDealer();

//清空label內容
lab_deck.Text = "";
lab_dealer.Text = "";
lab_player.Text = "";

//**新增***
lab_msg.Text = "";
btn_hit.Enabled = true;
btn_stand.Enabled = true;
btn_newgame.Enabled = false;
}

新牌局按鈕調整,按下後讓畫面更新,顯示新的牌局內容

protected void btn_newgame_Click(object sender, EventArgs e)
{
ResetGame();
UpdateUI();
}

按下停牌按鈕後執行結果

raw-image


按下新牌局按鈕後的執行結果

raw-image


21點遊戲基本功能已經完成,可以開始遊玩,但可以再加一些資訊讓玩的人更清楚現在的狀況,例如:牌堆要隱藏(避免作弊);莊家的牌要隱藏一張(避免作弊);現在是第幾局、已經贏過幾次...等等,下幾篇再來調整。

留言
avatar-img
Phyxsius
0會員
19內容數
FIRE
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
投資績效檢視 202410
Thumbnail
投資績效檢視 202410
Thumbnail
盤後近期心得: 先給圖片支援結論 上週四大盤久違出現跳空缺口,原本以為馬上就要被打臉,看來這個缺口實質還是有壓力,老樣子看到缺口帶量(給尊重一下),手邊部位除了上周說的中興電賣飛,然後台積電成本價都清出,台光電由於摩擦成本上升基本上應該是小虧,今天英業達好不容易開高給我解套(套了快一年)總算
Thumbnail
盤後近期心得: 先給圖片支援結論 上週四大盤久違出現跳空缺口,原本以為馬上就要被打臉,看來這個缺口實質還是有壓力,老樣子看到缺口帶量(給尊重一下),手邊部位除了上周說的中興電賣飛,然後台積電成本價都清出,台光電由於摩擦成本上升基本上應該是小虧,今天英業達好不容易開高給我解套(套了快一年)總算
Thumbnail
機器人概念股修正,臺積股相對強勢。市場波動大,建議進行左右側分類,追蹤股分為權值VS小股和右側創高VS左側空轉多等。
Thumbnail
機器人概念股修正,臺積股相對強勢。市場波動大,建議進行左右側分類,追蹤股分為權值VS小股和右側創高VS左側空轉多等。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News