JUNE 12, 2020
Team Hackathon
KOTLINROBOTS
- Fearless Collaboration


- Problem solving under duress


- Celebrating accomplishments
WHATISTHISCHALLENGE
ALLABOUT?
AGENDA
QUICKINTROTOCHALLENGE
GAMEMECHANICS
KOTLINFORJAVADEVS
SPLITINTOGROUPS
HACKPART1
BREAK
HACKPART2
FINALBATTLE
SHOWANDTELL
Architectural overview
INTROTOCHALLENGE
Install the required tools
and ensure your team
has access to an AWS
Account
LEVEL0-SETUP
Deploy Lambda
Functions and Server
LEVEL1-DEPLOYMENT
Create an Attack
Strategy
LEVEL2-ATTACK
Create an Evasion
Strategy
LEVEL3-EVADE
Test your Robot Against
the Champ
LEVEL4-TEST
Enter the Multi-Team
Deathmatch Competition
BOSSLEVEL
GAMEMECHANICS
All Missiles Only Explode
when They Hit the
Ground
MISSILES
DIRECTHITDAMAGE
NEARHITDAMAGE
FARHITDAMAGE
ENGINE
ARMOR
RADAR
- It is a modern programming
language


- It brings together the powerful
capabilities of di
ff
erent
programming languages


- Help developers be more
productive and less verbose


- The compiler does a lot of work
for you


- It is fun to learn and work with
WHYKOTLIN
- Variables


- Equality


- Null Safety


- Data Classes


- Expressions
KOTLINFORJAVADEVS
- Two keywords to declare
variables


- val: immutable reference


- var: mutable reference


- Semicolons are optional 🎉


- Type annotations may come
after the name
VARIABLES
KOTLINFORJAVADEVS
- The == operator calls equals
under the hood


- The === operator is used for
reference equality
EQUALITY
KOTLINFORJAVADEVS
- Kotlin support nullable types
by putting a question mark
after the type name


- Putting the question mark
explicitly allows the variable to
contain null
NULLSAFETY
KOTLINFORJAVADEVS
- Kotlin provides a simple way to
generate data classes that
include the following methods


- equals


- hashCode


- toString


- copy
DATACLASSES
KOTLINFORJAVADEVS
- An expression is a variable,
operators, explicit values,
functions that evaluate to a
single value


- Some notable are the if, when
and try expressions
EXPRESSIONS
KOTLINFORJAVADEVS
- Lambda expressions + inline functions


- Closures


- Extension functions


- String templates


- Smart cast


- Primary constructors


- Companion objects


- Operator overloading


- Coroutines for asynchronous
programming
FORMOREINFOSEE


THEKOTLINGUIDEFORTHEBUSYJAVADEVELOPER
DEMO
SPLITINTOGROUPS

Kotlin robots