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):

## 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']
```