Udemy課程:[100 Days Of Code(Dr. Angela Yu)](https://www.udemy.com/course/100-days-of-code/) # Day 11 - Beginner - The Blackjack Capstone Project ###### tags: `python` `Udemy` `100 Days Of Code` 2021.03.01(Mon.) ## ● 前言 / 心得 心得越來越懶得打XD因為開學了,能看課程的時間也越來越少,只希望能持續下去啦! ## ● 上課筆記 ## 0.code 自己寫的(失敗,還未檢查錯誤點):[blackjack-start](https://repl.it/@tina0915tw/blackjack-start#main.py) 完成品:[blackjack-final](https://repl.it/@tina0915tw/blackjack-final#main.py) ## 1.課前準備 老師有提到這堂課會結合前面10堂的內容去完成一個project,會比過去10堂課所做的還要難。這堂課要完成的遊戲是模仿一個遊戲叫做[Blackjack](https://games.washingtonpost.com/games/blackjack/),而做出來的成品會如這個[blackjack-final](https://repl.it/@appbrewery/blackjack-final?embed=1&output=1#main.py)。 這個遊戲就是一開始玩家會拿到兩張牌,而電腦也是兩張牌,但我們只能知道電腦拿到的其中之一張牌而已,再來就把兩張牌數字加起來(除J、Q、K當作10外,還有A可以自由選擇要當1、11,其餘卡牌數字多少就是多少),接著會問你要不要再拿一張牌,假如不要就開始比較兩張牌加起來誰的比較大(但是不超過21);假如要再拿一張牌,加起來後卻超過21,則直接為輸。 * 老師給的[flow chart](https://drive.google.com/uc?export=download&id=1rDkiHCrhaf9eX7u7yjM1qwSuyEk-rPnt): ![](https://i.imgur.com/Mh5onuZ.jpg) ## 2.整個project有用到的概念 **1. 隨機random** 記得要先「import random」。 * 以下列出random()中常見的函數: ```python= import random #產生1到10的一個整數型隨機數 print(random.randint(1,10)) #產生0到1之間的隨機浮點數 print(random.random()) #產生1.1 到5.4之間的隨機浮點數,區間可以不是整數 print(random.uniform(1.1,5.4)) #從序列中隨機選取一個元素 print(random.choice('tomorrow')) #生成從1到100的間隔為2的隨機整數 print(random.randrange(1,100,2)) #將序列a中的元素順序打亂 a=[1,3,5,6,7] random.shuffle(a) print(a) ``` **2. append()** * append()方法語法: ◉ obj:添加到list列表末尾的對象。 ```python= list.append(obj) ``` **3. sum()** > 參考網址:[官方參考文件](https://docs.python.org/3/library/functions.html#sum) sum()對序列進行求和計算。 * sum()方法語法: ◉ iterable:可迭代2對象,如:列表、元組、集合。 ◉ start:指定相加的參數,如果没有設置這個值,默認為0。 ```python= sum(iterable[, start]) ``` * 以下列出sum()中常見的實例: ```python= #印出為3 sum([0,1,2]) #元組計算總合後再加1 #印出為10 sum((2, 3, 4), 1) #列表計算總和後再加2 #印出為12 sum([0,1,2,3,4], 2) ``` **4. remove()** > 參考網址:[官方參考文件](https://developers.google.com/edu/python/lists#list-methods) remove() 函數用於移除列表中某個值的第一個匹配項。 * remove()方法語法: ◉ obj:列表中要移除的對象 ```python= list.remove(obj) ``` * remove()函數的常見使用方法: ```python= aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz'); print "List : ", aList; #List : [123, 'zara', 'abc', 'xyz'] aList.remove('abc'); print "List : ", aList; #List : [123, 'zara', 'xyz'] ```