<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# Oli's side project
---
<style>
img[src$="centerme"] {
display:block;
margin: 0 auto;
padding: 20px;
}
</style>
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# What is it?
An online single player game of BlackJack (21) against a computer opponent ♥️♠️♦️♣️
---
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# How does it work?
- The player can bet chips
- Cards are drawn from the top of the deck (array of objects) on 'draw' or 'hit'
- Players choose when to 'stand'
- Player closest to 21 (without going bust) wins
---

---
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# Commits
- 37 commits, 9 issues, 15 pull requests
- Issues helped guide development

---
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# Challenges and learnings
- Edge cases (pocket blackjack, 5 card trick, low aces)
- Large amount of event listeners (14) and many side effects
- Building the logic from ground up results in continual refactoring
---
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# New issues
- Replace CLI mocha tests with client side browser tests
- Leaderboard drop down
- Read and write top scores to a database
- Re-write in TypeScript!
---
<!-- .slide: data-background="#093407" -->
<!-- .slide: data-transition="fade" -->
# Demo
https://vanilla-js-blackjack.vercel.app/
{"metaMigratedAt":"2023-06-16T16:24:49.464Z","metaMigratedFrom":"Content","title":"Oli's side project","breaks":true,"contributors":"[{\"id\":\"473a32e9-12bd-45da-a3d3-4ac6fad9042c\",\"add\":2075,\"del\":389}]"}