系統開發-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
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
投資績效檢視 202410
Thumbnail
投資績效檢視 202410
Thumbnail
盤後近期心得: 先給圖片支援結論 上週四大盤久違出現跳空缺口,原本以為馬上就要被打臉,看來這個缺口實質還是有壓力,老樣子看到缺口帶量(給尊重一下),手邊部位除了上周說的中興電賣飛,然後台積電成本價都清出,台光電由於摩擦成本上升基本上應該是小虧,今天英業達好不容易開高給我解套(套了快一年)總算
Thumbnail
盤後近期心得: 先給圖片支援結論 上週四大盤久違出現跳空缺口,原本以為馬上就要被打臉,看來這個缺口實質還是有壓力,老樣子看到缺口帶量(給尊重一下),手邊部位除了上周說的中興電賣飛,然後台積電成本價都清出,台光電由於摩擦成本上升基本上應該是小虧,今天英業達好不容易開高給我解套(套了快一年)總算
Thumbnail
機器人概念股修正,臺積股相對強勢。市場波動大,建議進行左右側分類,追蹤股分為權值VS小股和右側創高VS左側空轉多等。
Thumbnail
機器人概念股修正,臺積股相對強勢。市場波動大,建議進行左右側分類,追蹤股分為權值VS小股和右側創高VS左側空轉多等。
Thumbnail
策略一: 長期斜率 (4) 2376 技嘉–X,沒有蛻變 6231 系微–X,沒有蛻變 6223 旺矽–X,沒有蛻變 1590 亞德客-KY–X,沒有蛻變 策略二: 短期斜率 (2) 2753 八方雲集–X,沒有蛻變 2723 美食-KY–X,線下盤整只有一年,不夠久,不選
Thumbnail
策略一: 長期斜率 (4) 2376 技嘉–X,沒有蛻變 6231 系微–X,沒有蛻變 6223 旺矽–X,沒有蛻變 1590 亞德客-KY–X,沒有蛻變 策略二: 短期斜率 (2) 2753 八方雲集–X,沒有蛻變 2723 美食-KY–X,線下盤整只有一年,不夠久,不選
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News