初級 免費 ⏱ 9m15s

10-3 Lab03 03 撲克牌發牌-隨意發牌-直到發完

Lesson: 10-3 Lab03 03 撲克牌發牌-隨意發牌-直到發完

JavaScript

10-3 Lab03 03 撲克牌發牌-隨意發牌-直到發完

Original: https://course.andys.pro/Javascript-Intro/10-3-lab03-03-playing-card-dealing-dealing-at-will-until-the-deal-is-over/

講義

影片逐字稿 (AI 生成)

好 這是第一個方法好 這是方法一然後我們來講第二個方法然後這邊我先把它全部註解掉我們重新再活絡一下自己的思路應該講我的思路好 這邊我們是method02然後這邊我們要從52一直到到0從52一直發卡發到0然後呢所以我們要for然後這邊寫的方法是let i 等於51呃我想一下壞喔我要把我這有點破有點破壞式的做法就是我有卡我的卡片我用car.length不等於0然後我要做什麼事情我要去產生一個產生一個變數然後這個變數是什麼呢這個變數是car.length然後我們要去取一個變數是這個然後我們要去取一個變數是這個是一個0到這個卡片數的數之間的一個indexok當我卡片有52張的時候它就是0到51當我的卡片有4張的時候它就會0到3好當我取到這個變數的時候呢我們要去看我要怎麼樣把我們去複習一下我們剛剛上課的內容我們要怎麼把一個字串裡面我們去切切掉其中一個呢我們怎麼切大家記得嗎Splice嘛對不對比如說我12345678比如說我這個然後我的A比如說我現在要Let我現在要Let B等於A點Splice然後我現在放一個index這個index可能是0到51其中一個數然後這邊我們是什麼0到7index是0到7之間對不對就是0到8之間就是01234567其中一個那我今天想5好了5 1然後這時候我的A是什麼我的A是不是就只剩下7個數了然後它切掉哪一個切掉B這個6對不對OK嗎然後這時候你要注意喔這樣才會得到6這個值喔所以我們這邊來我們就這樣做首先呢我們要切一個數之間就是呃我們叫做NUM好了NUM上面有是不是對上面已經有NUM所以我們就要講說這個是這個是pick的選的然後選的是什麼我選的是card的點Splice然後我是這個index嘛rand然後我要切一個然後這個時候呢我要給誰這時候我想要建一個變數然後這個變數是這個變數是什麼呢我想一下我先建一個i好了i等於0然後我要做什麼事情我要說users的第i個push我把這張我隨機抽到的這張卡送給他然後我pick的大家記得喔他是第0個喔因為我Splice出來的是什麼我Splice出來的是一個字串裡面有一個東西然後所以我要這樣子才會拿到他的值然後我把它塞進去給這個user好的那我這樣子會有一個問題啊我這個問題是我每一次的index都是i對不對所以我要怎麼做我希望我的i在幹嘛我的i是012301230123012301230123那怎麼做i等於i加1然後去percentusers點lenduser有幾個有4個嘛對不對所以他就會去pass然後他去加然後這樣子然後一直重複來做對不對因為我的card一直在Splice一直在減少每一次都在減少好這很動態不確定會不會work不過我們就來看一下吧我們看一下我們跑完出來的結果是怎樣欸這樣就是都亂數了有點難以接受有點難以接受我們這樣想我每一次Splice的時候是不是都是隨就是在某一個index抽一張卡出來抽一張卡這邊是在卡片長度中抽一個的index然後我這邊是抽一張卡我抽出來以後這個pick的那如果大家還是很難接受的話沒有關係我們這裡log對不對我們log我們把log出來然後log把pick的的0印出來給大家看或是我們把pick直接印出來給大家看然後看一下會跑出什麼有沒有跟我講的一樣嘛對不對pick的是splice完切出來可是它切出來的時候這個東西還是一個array它是一個array裡面有一個東西的array所以我要0個所以我要取第0個才是它裡面的值然後把它塞給使用者那我這邊在做的事情是讓i再0123做循循環OK那因為我的長度是從52一直超到0我一直在抽卡每次都一直抽一直抽我抽完一張你可以把這張這個想成我抽一張卡然後這個是把這張卡給使用者給你照我順序的再發卡是嗎我隨機抽一張對不對我隨機抽52張裡面我隨機抽一張卡的index拿出來你想像中你喜歡他手上的52張卡對不對那我得到一個index然後第48張抽出來那是不是這裡就少了一張然後48張這個48這個拿出來拿出來以後我給第一個使用者然後再抽一張出來給第二個使用者再抽一張給第三個給第四個然後再加一次就是就是0 1 2 3然後第四個第五個沒有所以從頭再從第0個開始給這樣然後這樣發到我手上沒有牌對不對card.length不等於0然後他就發完好這是那個Lab的做法

影片逐字稿largev2

好 這是第一個方法好 這是方法一然後我們來講第二個方法然後這邊我先把它全部註解掉我們重新再活絡一下自己的思路應該講我的思路好 這邊我們是method02然後這邊呢我們要從52一直到到0從52一直發卡發到0這樣子然後呢所以我們要for然後我們這邊寫的方法是let i等於51呃我想一下喔快喔我要把我這有點破有點破壞式的做法就是我有我的卡片快要card.length負等於0然後我要做什麼事情我要去產生一個產生一個變數然後這個變數是什麼呢這個變數是card.length然後我們要去取一個變數是這個是一個0到這個卡片數的數之間的一個indexok 當我的卡片有52張的時候它就是0到51當我的卡片有4張的時候它就是0到3好當我取到這個變數的時候呢我們要去看我要怎麼樣把我們去複習一下我們剛剛上課的內容我們要怎麼把一個字串裡面我們去切切掉其中一個呢我們怎麼切大家記得嗎splice嘛對不對比如說12345678比如說我這個然後我的a比如說我今天要let我今天要let b等於a.splice然後我今天放一個index這個index可能是0到51其中一個數然後這邊我們是什麼0到7index是0到7之間0到8之間就是01234567其中一個那我今天想5好了然後這時候我的a是什麼我的a是不是就只剩下7個數了然後它切掉哪一個切掉b這個6對不對ok嗎然後這時候你要注意喔這樣才會得到6這個值喔所以我們這邊來我們就要這樣子做首先呢我們要切一個數之間我們叫做num好了欸num上面有是不是對上面已經有num了所以我們就要講說這個是pick選的然後選的是什麼我選的是card.splice然後我是這個index嘛rand然後我要切一個然後這個時候呢我要給誰這時候我想要建一個變數然後這個變數是這個變數是什麼呢我先建一個i好了i等於0然後我要做什麼事情我要說users的第一個我把這張我隨機抽到的這張卡送給他然後我pick的大家記得喔它是第0個喔因為我splice出來是什麼我splice出來的是一個字串裡面有一個東西然後所以我要這樣子才會拿它的值然後我把它塞進去給這個user好的那我這樣子會有一個問題啊我這個問題是我每一次的index都是i對不對所以我要怎麼做我希望我的i在幹嘛我的i是012301230123那怎麼做i等於i加1然後去percentuser.randuser有幾個有4個嘛對不對所以它就會去%4然後它去加然後這樣子然後一直重複在做對不對因為我的card一直在splice一直在減少每一次都在減少好這很動態不確定會不會work不過我們就來看一下吧我們看一下我們跑完出來的結果是怎樣誒這樣就是都亂數的有點難以接受我們這樣想我每一次splice的時候是不是都是就是在某一個index抽一張卡出來抽一張卡這邊是在卡片長度中抽一個的index然後我這邊是抽一張卡我抽出來以後這個peak那如果大家還是很難接受的話沒有關係我們這裡log對不對我們log然後log把peak的0印出來給大家看或是我們把peak直接印出來給大家看然後看一下會跑出什麼有沒有跟我講的一樣嘛對不對peak的是splice完切出來可是它切出來的時候這個東西還是一個array它是一個array裡面有一個東西的array所以我要0個所以我要取第0個才是它裡面的值然後把它塞給使用者那我這邊在做的事情是讓i在01 2 3做循環那因為我的長度是從52一直跑到0我一直在抽卡每次都一直抽一直抽我抽完一張你可以把這個想成然後這個是把這張卡給使用者OK那是不是我就是很照順序的在發卡是嗎我隨機抽一張對不對我隨機抽52張裡面我隨機抽一張卡的index拿出來你想像說你現在手上有52張卡對不對那我得到一個index第48張抽出來那是不是這裡就少了一張48張這個拿出來拿出來以後我給第一個使用者然後再抽一張出來給第二個使用者再抽一張給第三個給第四個然後再加一次就是0 1 2 3第五個沒有所以這從頭再從第0個開始給然後這樣發到我手上沒有牌嘛對不對card.length不等於0嘛然後它就發完了好那個Lab的做法