補充教學-SSR十連抽

更新於 2024/11/01閱讀時間約 9 分鐘

這一篇用前面的範例來修改做一個SSR十連抽範例,看看有沒有抽到SSR。

發源於《遊戲王》,N就是normal(正常)R就是Rare(罕見),SR就是Super Rare(非常稀有),SSR表示Superior Super Rare(超級稀有),UR則是Ultra Rare(極度稀有)。

主要是Card的定義改成這次需要的內容(卡牌類型、編號、顏色),在這裡就不做卡牌名字與效果,有需要可以自己定義寫寫看。

假設SSR抽中機率5%,SR抽中機率30%,R抽中機率65%,宣告一個100大小的Card陣列,裡面放入5張SSR,30張SR、剩下的都是R,經過亂數洗牌後,取出前十張,即可知道此次的連十次抽牌結果。


SSR.aspx

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

<!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>
洗牌前:<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
<br />
洗牌後:<br />
<asp:Label ID="Label2" runat="server" Text=""></asp:Label><br />
<br />
十連抽結果:<br />
<asp:Label ID="Label3" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>

SSR.aspx.cs

public partial class SSR : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//卡牌分為三類:SSR、SR、R
//抽到機率為 SSR (5%)、SR (30%)、R(65%)
Card[] cards = new Card[100]; //100張,因抽到機率為百分比

for (int i = 0; i < cards.Length; i++) //四種花色
{
if(i < 5) //SSR 5張
{
cards[i] = new Card("SSR", i, "#ff0000");
}
else if(i>=5 && i<35) //SSR 30張
{
cards[i] = new Card("SR", i, "#0000ff");
}
else //剩下的都是R
{
cards[i] = new Card("R", i, "#009900");
}
}

//洗牌前
for (int i = 0; i < cards.Length; i++)
{
if(i % 10 == 0)
{
Label1.Text += "<br>";
}
Label1.Text += $"{cards[i].ToString()},";
}

//洗牌
Shuffle(cards);

//洗牌前
for (int i = 0; i < cards.Length; i++)
{
if (i % 10 == 0)
{
Label2.Text += "<br>";
}
Label2.Text += $"{cards[i].ToString()},";
}

//十連抽結果
for(int i=0; i<10; i++)
{
Label3.Text += $"{cards[i].ToString()},";
}
}

//洗牌
void Shuffle(Card[] cards)
{
Random rand = new Random();

for (int i = 0; i < cards.Length; i++)
{
int j = rand.Next(cards.Length); //// 產生一個隨機索引 0-51

//例如:
// i=0, j=12,表示第一張牌 (cards[0] 黑桃1) 與第13張牌 (cards[12]黑桃13) 互換
// 互換後的結果為,第一張牌 (cards[0] 黑桃13,第13張牌 (cards[12]黑桃1)
// 一直換52次(每一個位置的牌都換一次)
Swap(cards, i, j);
}
}

//陣列中兩個元素交換,通過暫存變數的方式來實現交換
void Swap(Card[] cards, int i, int j)
{
Card tmp = cards[i]; //將 cards[i] 的值暫存到 temp
cards[i] = cards[j]; //將 cards[j] 的值賦給 cards[i]
cards[j] = tmp; //將剛才暫存的 tmp 值賦給 cards[j]
}
}

class Card
{
public string Rare { get; set; }
public int No { get; set; }
public string Color { get; set; }

// Card建構函數
public Card(string suit, int rank, string c)
{
this.Rare = suit; //類型,SSR / SR / R
this.No = rank; //編號
this.Color = c; //顏色
}

// 覆寫ToString()方法來顯示撲克牌訊息
public override string ToString()
{
return $"<font color={Color}>{Rare} ({No})</font>";
}
}

執行結果:

raw-image



    avatar-img
    0會員
    19內容數
    FIRE
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    許多人認為十三支規則很難但其實相當簡單,首先玩家需要先認識十三支玩法與十三隻大小 再來就是學會十三算錢要怎麼算才不會吃虧,winbet小編今天就要教玩家十三支算法 玩家聽完以上十三支介紹是不是好奇哪裡有十三支線上可以玩呢,小編就來介紹winbet平台的十三支遊戲 如果有任何遊戲上面問題都可以詢
    Thumbnail
    這篇文章將教大家如何在過年過節時和親友玩炸金花,並且教導你如何認識炸金花牌型和大小順序。此外,還將推薦炸金花線上遊戲。
    Thumbnail
    本來第一彈的五條悟爛得一蹋糊塗的,但挾帶著高人氣,獲得書卡還有二彈得天獨厚的強化,五條悟帶著他的無下限術式跟六眼,要來笑笑輾壓UA界。 你,才是挑戰者喔。
    Thumbnail
    原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
    Thumbnail
    雙方起手牌都是4張,生命值皆4000,第一回合只可下怪,不可進攻。第二回合開始,在自己的回合開始時可從牌組抽1張牌。決鬥需準備的卡牌數介於21~50之間(不包含額外牌組),同樣的卡牌不可放超過三張在牌組裡。某些卡牌因為功能過於強大,只可放一張(限1)或兩張(限2)於卡組。 第一回合閔皇哥手牌是:龍
    Thumbnail
    【詭鎮奇談自創牌組】該死的好奇心,我拒絕!大手牌流哈維教授牌組介紹
    Thumbnail
    今日牌卡:遊戲者   https://dcalyson0110.pixnet.net/blog/post/129370948   連宇宙都像個貪玩的孩子般 在週六給了這麼開心的消息   今日,星期六 就像孩子那樣快樂遊戲玩耍吧!!   把握週末假日好時光呀!!     Ev
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    許多人認為十三支規則很難但其實相當簡單,首先玩家需要先認識十三支玩法與十三隻大小 再來就是學會十三算錢要怎麼算才不會吃虧,winbet小編今天就要教玩家十三支算法 玩家聽完以上十三支介紹是不是好奇哪裡有十三支線上可以玩呢,小編就來介紹winbet平台的十三支遊戲 如果有任何遊戲上面問題都可以詢
    Thumbnail
    這篇文章將教大家如何在過年過節時和親友玩炸金花,並且教導你如何認識炸金花牌型和大小順序。此外,還將推薦炸金花線上遊戲。
    Thumbnail
    本來第一彈的五條悟爛得一蹋糊塗的,但挾帶著高人氣,獲得書卡還有二彈得天獨厚的強化,五條悟帶著他的無下限術式跟六眼,要來笑笑輾壓UA界。 你,才是挑戰者喔。
    Thumbnail
    原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
    Thumbnail
    雙方起手牌都是4張,生命值皆4000,第一回合只可下怪,不可進攻。第二回合開始,在自己的回合開始時可從牌組抽1張牌。決鬥需準備的卡牌數介於21~50之間(不包含額外牌組),同樣的卡牌不可放超過三張在牌組裡。某些卡牌因為功能過於強大,只可放一張(限1)或兩張(限2)於卡組。 第一回合閔皇哥手牌是:龍
    Thumbnail
    【詭鎮奇談自創牌組】該死的好奇心,我拒絕!大手牌流哈維教授牌組介紹
    Thumbnail
    今日牌卡:遊戲者   https://dcalyson0110.pixnet.net/blog/post/129370948   連宇宙都像個貪玩的孩子般 在週六給了這麼開心的消息   今日,星期六 就像孩子那樣快樂遊戲玩耍吧!!   把握週末假日好時光呀!!     Ev