系統開發-初始化撲克牌

更新於 2024/10/12閱讀時間約 8 分鐘

21點遊戲中需要撲克牌,四種花色,每種花色1-13張,分別為1,2,3,4,5,6,7,8,9,10,J,Q,K,共52張。


我們先將一張撲克牌定義為Card物件,並定義其屬性為花色和點數。

class Card
{
public string Suit { get; set; }
public int Rank { get; set; }

// Card建構函數
public Card(string suit, int rank)
{
Suit = suit; //花色
Rank = rank; //點數
}

// 覆寫ToString()方法來顯示撲克牌訊息
public override string ToString()
{
string suitName = "";

switch(Suit)
{
case "S":
suitName = "黑桃";
break;
case "H":
suitName = "紅心";
break;
case "D":
suitName = "方塊";
break;
case "C":
suitName = "梅花";
break;
}

return $"{suitName}{Rank}";
}
}


再建立一副牌共52張,並設定其花色與點數,再顯示到畫面上,以下為完整程式碼


Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>

Default.aspx.cs

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string[] suits = { "S" , "H" , "D" , "C"}; //"S黑桃" , "H紅心" , "D方塊" , "C梅花"

Card[] cards = new Card[52]; //一副牌52張
int index = 0;

for(int i=0; i<suits.Length; i++) //四種花色
{
for(int j=1; j<=13; j++) //一種花色13張牌1-13
{
cards[index] = new Card(suits[i], j);
index++;
}
}

for(int i=0; i<cards.Length; i++)
{
if(i%13 == 0) //13張牌排成一行
{
Label1.Text += $"<br>{cards[i].ToString()}"; //換行
}
else
{
//Label1.Text += $",{cards[i].ToString()}"; //Card class預設顯示方式
Label1.Text += $",{cards[i].Suit}{cards[i].Rank}"; //自訂顯示方式
}
}
}
}

class Card
{
public string Suit { get; set; }
public int Rank { get; set; }

// Card建構函數
public Card(string suit, int rank)
{
Suit = suit; //花色
Rank = rank; //點數
}

// 覆寫ToString()方法來顯示撲克牌訊息
public override string ToString()
{
string suitName = "";

switch(Suit)
{
case "S":
suitName = "黑桃";
break;
case "H":
suitName = "紅心";
break;
case "D":
suitName = "方塊";
break;
case "C":
suitName = "梅花";
break;
}

return $"{suitName}{Rank}";
}
}

執行結果:

raw-image


    avatar-img
    0會員
    19內容數
    FIRE
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    十三支在近年來有越來越多年輕人接觸到,大多數都是因為線上十三支 贏家娛樂城就要來跟大家分享關於十三支玩法怎麼玩 這裡有非常詳細的十三支教學,另外還有提供一些十三支技巧給大家參考 現在撲克牌遊戲非常多也非常流行,想了解更多這邊通通都有提供給大家
    Thumbnail
    許多人認為十三支規則很難但其實相當簡單,首先玩家需要先認識十三支玩法與十三隻大小 再來就是學會十三算錢要怎麼算才不會吃虧,winbet小編今天就要教玩家十三支算法 玩家聽完以上十三支介紹是不是好奇哪裡有十三支線上可以玩呢,小編就來介紹winbet平台的十三支遊戲 如果有任何遊戲上面問題都可以詢
    Thumbnail
    本篇介紹單人遊戲的核心架構與邏輯,涵蓋發牌、抽牌、出牌及遊戲結算等重要步驟。文章也詳細介紹了使用 socket.io 建立連線的過程,並說明如何利用 React Hooks 管理遊戲狀態,提及後端伺服器如何處理玩家加入房間的事件,並簡要介紹了房間資訊的管理,此文將分為多篇進一步介紹遊戲事件部分。
    Thumbnail
    原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    十三支在近年來有越來越多年輕人接觸到,大多數都是因為線上十三支 贏家娛樂城就要來跟大家分享關於十三支玩法怎麼玩 這裡有非常詳細的十三支教學,另外還有提供一些十三支技巧給大家參考 現在撲克牌遊戲非常多也非常流行,想了解更多這邊通通都有提供給大家
    Thumbnail
    許多人認為十三支規則很難但其實相當簡單,首先玩家需要先認識十三支玩法與十三隻大小 再來就是學會十三算錢要怎麼算才不會吃虧,winbet小編今天就要教玩家十三支算法 玩家聽完以上十三支介紹是不是好奇哪裡有十三支線上可以玩呢,小編就來介紹winbet平台的十三支遊戲 如果有任何遊戲上面問題都可以詢
    Thumbnail
    本篇介紹單人遊戲的核心架構與邏輯,涵蓋發牌、抽牌、出牌及遊戲結算等重要步驟。文章也詳細介紹了使用 socket.io 建立連線的過程,並說明如何利用 React Hooks 管理遊戲狀態,提及後端伺服器如何處理玩家加入房間的事件,並簡要介紹了房間資訊的管理,此文將分為多篇進一步介紹遊戲事件部分。
    Thumbnail
    原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出