iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
影片教學

視窗程式設計系列 第 14

【Day14】c# 的 Random,讓路況難以預判

  • 分享至 

  • xImage
  •  

嗨,大家好,今天是視窗程式設計第十四天的影片教學。昨天的影片我們完成如何讓道路虛線可以等距的移動,今天要來實作出可以讓金幣和障礙物在隨機的水平位置上出現的效果。

透過 C# 內建 Random 的類別,可以用來產生隨機值,要使用前需要先宣告,以建立 Random 的物件,宣告方式如下:

Random random_name = new Random(); // random_name自取

如此一來,我們就有 Random 類別的物件,稱為 random_name。

接下來要來使用 Random 類別內的 method,你可以當作是這個類別產生的物件所專屬的函式(function),要使用的 method 為 Next(),使用方式如下:

Random r = new Random(); // 宣告一個 Random 物件:r
r.Next(); // 括號內沒有東西則從 0 到 int 最大值(2,147,483,647)隨機取一數
r.Next(Maxvalue); // 從 0 到 Maxvalue隨機取一數
r.Next(Min ,Max); // Min 到 Max隨機取一數

而隨機取數的值可以直接使用,或是存在其他變數當中,依程式需求決定。

接著,就要來實際應用於水平位置的隨機決定,示意圖和程式碼如下:

https://ithelp.ithome.com.tw/upload/images/20220929/20152427keEiSG5snf.png

if (x.Tag == "coin"  || x.Tag == "rock")
{
    x.Top += 10; // 往下移動

    if (x.Top >= this.Height) // 低於視窗底部時
    {
        Random r = new Random();
        x.Top = 0 - x.Height; // 重回視窗上方

        x.Left = r.Next(0 + pictureBox14.Width, this.Width - pictureBox13.Width - x.Width); // 隨機取數,從左邊界至右邊界取值
    } 
}

在程式碼當中使用 OR(||) 的概念,當前後的條件有一項為 True,就會視整個條件為 True;而 AND(&&) 則是前後的條件都須為 True,整個條件才會視為True。這在條件判斷上是經常使用的,畢竟如專案示範,能減去不少程式碼,也能更清楚兩個條件判斷是執行相同程式。

以上是今天教學,感謝大家觀看,有問題 || 有想法都歡迎留言和我一起討論或回饋喔!

Random 之 Microsoft文件參考處:https://learn.microsoft.com/zh-tw/dotnet/api/system.random?view=net-6.0
專案使用icon素材來源:flaticon(https://www.flaticon.com/)
簡報製作和素材使用:canva(https://www.canva.com/)

Yes


上一篇
【Day13】虛線製造機-迴圈的使用
下一篇
【Day15】三寶間的相遇,處理車子與錢幣和障礙物碰撞的情形
系列文
視窗程式設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言