系統開發-02發牌給玩家

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


這一篇來解決上一篇的問題,使用Session來存取資料。

以下修改一下程式碼,[**新增 **]是新增的程式碼,舊的且不需要的程式碼會被註解掉

public partial class _Default : System.Web.UI.Page
{
Deck deck; //排堆
Player dealer; //莊家
Player player; //玩家

protected void Page_Load(object sender, EventArgs e)
{
//**新增**
//避免網頁載入後,每按一次按鈕都會更新(POST)
//改為網頁載入更新就好
if (IsPostBack == false)
{
ResetGame();
}

//ResetGame();
UpdateUI();
}

protected void ResetGame() { //初始化遊戲參數與動作(初始發牌)
//deck = new Deck();
//dealer = new Player();
//player = new Player();

//**新增***
//將資料存到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 = "";
}

protected void UpdateUI()
{
deck = (Deck)Session["Deck"];
lab_deck.Text = deck.ShowCards();

//**新增***
//Label顯示前先清空內容
lab_player.Text = "";
lab_dealer.Text = "";

//**新增***
player = (Player)Session["Player"];

//顯示玩家手牌
for (int i = 0; i < player.cards.Count; i++)
{
lab_player.Text += $"<img src='./images/{player.cards[i].Rank}-{player.cards[i].Suit}.png'>";
}

//**新增***
dealer = (Player)Session["Dealer"];

//顯示莊家手牌
for (int i = 0; i < dealer.cards.Count; i++)
{
lab_dealer.Text += $"<img src='./images/{dealer.cards[i].Rank}-{dealer.cards[i].Suit}.png'>";
}
}

//發牌給莊家
protected void DrawForDealer() {
//**新增***
deck = (Deck)Session["Deck"];
dealer = (Player)Session["Dealer"];

Card c = deck.DrawCard();
dealer.AddCard(c); //加到手牌

//**新增***
Session["Dealer"] = dealer;
Session["Deck"] = deck;
}

//發牌給玩家
protected void DrawForPlayer() {
//**新增***
deck = (Deck)Session["Deck"];
player = (Player)Session["Player"];

Card c = deck.DrawCard();
player.AddCard(c); //加到手牌

//**新增***
Session["Player"] = player;
Session["Deck"] = deck;
}

//按鈕OnClick後觸發
//玩家要牌,呼叫DrawForPlayer()
protected void btn_hit_Click(object sender, EventArgs e)
{
DrawForPlayer();

//**新增***
UpdateUI();
}

//玩家停牌,換莊家要牌DrawForDealer(),直到計分比較輸贏
protected void btn_stand_Click(object sender, EventArgs e)
{
DrawForDealer();

//**新增***
UpdateUI();
}

//新牌局(下一回合),呼叫NextRound()
protected void btn_newgame_Click(object sender, EventArgs e)
{
ResetGame();
}

protected void NextRound() { } //下一回合,呼叫ResetGame()
}

程式執行結果:

vocus|新世代的創作平台

用Session存取資料後,排堆(Deck)裡面發出來的牌,會和按下發牌(Hit)後的牌相同,不會再因為網頁被更新而無法保留資料。

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


Ps.此程式沒有限制只能發52張牌,所以一直按下發牌(Hit)是會一直發牌的,但超過52張會發生錯誤;沒有限制的原因是21點遊戲只有兩個人玩不會發到52張,且後面會有計算點數的控制來結束牌局。


留言
avatar-img
Phyxsius
0會員
19內容數
FIRE
你可能也想看
Thumbnail
帝國手遊代儲網 — 解鎖遊戲新境界的關鍵! 在遊戲的世界中,想要快速打破瓶頸,提升實力嗎?帝國手遊代儲網(https://diguogames88.com/)是您的專業代儲夥伴,透過本文,我們將一同探討如何打破遊戲的瓶頸,讓專業代儲引領您向前! 什麼是帝國手遊代儲網? 帝國手遊代儲網是一個致力
Thumbnail
帝國手遊代儲網 — 解鎖遊戲新境界的關鍵! 在遊戲的世界中,想要快速打破瓶頸,提升實力嗎?帝國手遊代儲網(https://diguogames88.com/)是您的專業代儲夥伴,透過本文,我們將一同探討如何打破遊戲的瓶頸,讓專業代儲引領您向前! 什麼是帝國手遊代儲網? 帝國手遊代儲網是一個致力
Thumbnail
這篇文章分享了一個線上桌遊的新創意,結合了線上課程與遊戲的元素,以促進學習與擴大人脈。作者希望透過遊戲的體驗來教導漏斗、直效行銷的知識,並提供了免費試玩的名額,期待收集更多的回饋意見。
Thumbnail
這篇文章分享了一個線上桌遊的新創意,結合了線上課程與遊戲的元素,以促進學習與擴大人脈。作者希望透過遊戲的體驗來教導漏斗、直效行銷的知識,並提供了免費試玩的名額,期待收集更多的回饋意見。
Thumbnail
石頭手遊代儲網的專業服務 專業遊戲代儲團隊 石頭手遊代儲網擁有一支專業的遊戲代儲團隊,這些成員都是經驗豐富、技術優秀的遊戲玩家。 他們對各種遊戲的玩法和充值機制非常了解,能夠提供專業的遊戲代儲建議和服務。 安全可靠的交易保障 在石頭手遊代儲網,交易安全始終是首要考慮的問題。 平台採用了先進的
Thumbnail
石頭手遊代儲網的專業服務 專業遊戲代儲團隊 石頭手遊代儲網擁有一支專業的遊戲代儲團隊,這些成員都是經驗豐富、技術優秀的遊戲玩家。 他們對各種遊戲的玩法和充值機制非常了解,能夠提供專業的遊戲代儲建議和服務。 安全可靠的交易保障 在石頭手遊代儲網,交易安全始終是首要考慮的問題。 平台採用了先進的
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
石頭手遊代儲網的背景介紹 石頭手遊代儲網是一家知名的遊戲代儲服務平台,致力於為玩家提供專業、快速、安全的代儲服務。 作為遊戲代儲市場的領導者之一,石頭手遊代儲網憑藉其創新的服務模式和卓越的服務品質,贏得了眾多玩家的信賴和支持。 什麼是代儲值? 代儲值是指玩家透過支付一定的費用,讓專業的代儲團隊
Thumbnail
石頭手遊代儲網的背景介紹 石頭手遊代儲網是一家知名的遊戲代儲服務平台,致力於為玩家提供專業、快速、安全的代儲服務。 作為遊戲代儲市場的領導者之一,石頭手遊代儲網憑藉其創新的服務模式和卓越的服務品質,贏得了眾多玩家的信賴和支持。 什麼是代儲值? 代儲值是指玩家透過支付一定的費用,讓專業的代儲團隊
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
前言:遊戲代儲的崛起 在現今的遊戲產業中,遊戲代儲已成為一個不可忽視的重要環節。遊戲代儲為玩家提供了一種便捷的方式來快速提升遊戲中的等級、技能和資源,使他們能夠更快地享受遊戲樂趣。在眾多的遊戲代儲平台中,帝國手遊代儲網因其優質的服務和卓越的表現而脫穎而出。本文將深入探討遊戲代儲產業的發展趨勢,以及
Thumbnail
前言:遊戲代儲的崛起 在現今的遊戲產業中,遊戲代儲已成為一個不可忽視的重要環節。遊戲代儲為玩家提供了一種便捷的方式來快速提升遊戲中的等級、技能和資源,使他們能夠更快地享受遊戲樂趣。在眾多的遊戲代儲平台中,帝國手遊代儲網因其優質的服務和卓越的表現而脫穎而出。本文將深入探討遊戲代儲產業的發展趨勢,以及
Thumbnail
隨著數位遊戲市場的蓬勃發展,台灣的遊戲代儲服務平台也呈現出蓬勃的態勢。 在眾多競爭對手中,石頭手遊代儲網以其卓越的服務品質和客戶信任度傲立潮頭,成為眾多玩家的首選。 本文將深入探討石頭手遊代儲網的核心優勢以及在台灣遊戲代儲市場的領先地位。 服務的核心優勢 石頭手遊代儲網的成功建立在幾個關鍵優勢之
Thumbnail
隨著數位遊戲市場的蓬勃發展,台灣的遊戲代儲服務平台也呈現出蓬勃的態勢。 在眾多競爭對手中,石頭手遊代儲網以其卓越的服務品質和客戶信任度傲立潮頭,成為眾多玩家的首選。 本文將深入探討石頭手遊代儲網的核心優勢以及在台灣遊戲代儲市場的領先地位。 服務的核心優勢 石頭手遊代儲網的成功建立在幾個關鍵優勢之
Thumbnail
帝國手遊代儲網的簡介 帝國手遊代儲網是專業的遊戲代儲平台,提供各種手遊代儲服務,其中包括交友軟體代儲服務。 對於初學者來說,了解如何使用帝國手遊代儲網進行交友軟體代儲是非常重要的。 初學者指南                                                    
Thumbnail
帝國手遊代儲網的簡介 帝國手遊代儲網是專業的遊戲代儲平台,提供各種手遊代儲服務,其中包括交友軟體代儲服務。 對於初學者來說,了解如何使用帝國手遊代儲網進行交友軟體代儲是非常重要的。 初學者指南                                                    
Thumbnail
主副號的區別
Thumbnail
主副號的區別
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News