Top Banner
131

Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Mar 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.
Page 2: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Today

• Administrivia

• Why Battlecode?

• New Features

• How to Win

Page 3: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

AdministriviaTeh Devs

• Ben Frenkel

• Dan Gulotta

• Trevor Rundell

• Joel Stein

• Andrew Sugaya

• Aleks Tamarkin

Page 4: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

AdministriviaContact Info/Bug Reports

• Website - battlecode.org

• Email - [email protected]

• IRC - #battlecode on freenode

• Forum Posts - battlecode.org

Page 5: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

AdministriviaSchedule

• Register for 6.187

• Lectures @ 12:30pm in 34-101

Page 6: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

AdministriviaTournaments

• Sprint - Monday, Jan 10 @ 3pm in 34-401b

• Seed - Tuesday, Jan 18 @ 3pm in 34-401b

• Qualifying - Tuesday, Jan 25 @ 3pm in 34-401b

• Final - Saturday, Jan 29 @ 7pm in Kresge

Page 7: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?

Page 8: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?Fame

Page 9: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?Fortune

Page 10: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?Fun

Page 11: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?Eternal Glory

Page 12: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Why BattleCode?Preparation for World Domination

Page 13: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

What’s New?

Page 14: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Units (2010 Battlecode)

• Archon

• Wout

• Soldier

• Chainer

• Turret

Page 15: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Units (2010 Battlecode)

• Archon

• Wout

• Soldier

• Chainer

• Turret

Page 16: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Modular Robots(Build-a-bot)

Page 17: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Chassis(The Body)

Page 18: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Components(The Guts)

Page 19: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Chassis + Components(The Robot)

Page 20: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisTypes

• Light

• Medium

• Heavy

• Flying

• Building

Page 21: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisLight

Low HitpointsLow Weight Cap

High Speed

Page 22: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisMedium

Medium HitpointsMedium Weight Cap

Medium Speed

Page 23: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisHeavy

Very High HitpointsHigh Weight CapVery Low Speed

Page 24: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisFlying

Low HitpointsLow Weight Cap

High Speed

Page 25: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ChassisBuilding

High HitpointsVery High Weight Cap

No Speed

Page 26: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ComponentsTypes

• Armors

• Weapons

• Sensors

• Broadcast

• Misc

• Macro

Page 27: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Armors(Defense)

Page 28: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsShield

Reduces Damage

Page 29: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsHardened

Caps Max Damage Taken

Page 30: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsRegenerative

Regenerates Hitpoints

Page 31: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsPlasma

Blocks Some Attacks

Page 32: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsIron

Become Temporarily Invincible

Page 33: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

ArmorsPlating

Increases Hitpoints

Page 34: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Weapons(Offense)

Page 35: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsSMG

Low DamageHigh SpeedHigh Range

Page 36: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsBlaster

Medium DamageMedium SpeedMedium Range

Page 37: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsRailgun

High DamageMedium SpeedMedium Range

Page 38: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsHammer

Low DamageVery Fast Speed

Low Range

Page 39: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsBeam

Increasing AttackMedium Speed

High Range

Page 40: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

WeaponsMedic

Heals

Page 41: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Sensors(Sensing)

Page 42: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

SensorsSatellite

High Range360°

Can Sense Other Robots’ Components

Page 43: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

SensorsTelescope

Very High Range45°

Page 44: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

SensorsRadar

Medium Range180°

Page 45: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

SensorsSights

Low Range90°

Page 46: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Broadcast(Communications)

Page 47: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

BroadcastAntenna

Low Range

Page 48: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

BroadcastDish

Medium Range

Page 49: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

BroadcastNetwork

High Range

Page 50: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Misc(Misc)

Page 51: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MiscProcessor

3000 Bytecode Bonus

Page 52: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MiscJump

Teleportation

Page 53: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MiscDummy

Create Immobile Chassis Dummies

Page 54: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MiscBug

Gain Another Robot’s Sensing Range

Page 55: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MiscDropship

Carry Other Units

Page 56: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Macro(Construction)

Page 57: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MacroConstructor

Constructs Other Macros

Page 58: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MacroRecycler (Building)

Place on MinesGathers ResourcesMakes Constructors

Page 59: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MacroFactory (Building)

Makes Stuff

Page 60: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

MacroArmory (Building)

Makes Other Stuff

Page 61: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Resources(How will you afford your army?)

Page 62: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

$Flux++

Page 63: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

$FluxHow to

Page 64: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Build Recyclers on Mines

$FluxHow to

Page 65: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Build Recyclers on Mines

• Mines become less efficient once depleted

$FluxHow to

Page 66: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Map Mechanics

Page 67: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• 10-50 Mines

Map Mechanics

Page 68: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• 10-50 Mines

• Blocks (5x Building Hitpoints)

Map Mechanics

Page 69: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• 10-50 Mines

• Blocks (5x Building Hitpoints)

• No Elevation

Map Mechanics

Page 70: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• 10-50 Mines

• Blocks (5x Building Hitpoints)

• No Elevation

• 25x25 Min Map Size

Map Mechanics

Page 71: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• 10-50 Mines

• Blocks (5x Building Hitpoints)

• No Elevation

• 25x25 Min Map Size

• 60x60 Max Map Size

Map Mechanics

Page 72: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Robot Mechanics

Page 73: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Upkeep (Determined by Chassis)

Robot Mechanics

Page 74: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Upkeep (Determined by Chassis)

• 3000 Bytecodes

Robot Mechanics

Page 75: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Upkeep (Determined by Chassis)

• 3000 Bytecodes

• Activation/Deactivation of Robots

Robot Mechanics

Page 76: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

• Destroy

Page 77: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

• Destroy All of Opponent’s Active Units

Page 78: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Specs!(battlecode.org)

Page 79: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

Page 80: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

• Write Good Code

Page 81: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

• Write Good Code

• SVN / Git

Page 82: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to Win

• Write Good Code

• SVN / Git

• Teamwork

Page 83: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

package team000;

import battlecode.common.*;

import static battlecode.common.GameConstants.*;

public class RobotPlayer implements Runnable{

private final RobotController myRC;

public RobotPlayer(RobotController rc){

myRC = rc;

}

public void run(){

//Main while loop

}

}

Page 84: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

package team000;

import battlecode.common.*;

import static battlecode.common.GameConstants.*;

public class RobotPlayer implements Runnable{

private final RobotController myRC;

public RobotPlayer(RobotController rc){

myRC = rc;

}

public void run(){

//Main while loop

}

}

Page 85: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){

run

} else {

find enemy

}

Page 86: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){

run

} else {

find enemy

}

Page 87: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){

run

} else {

if (enemy in sight) {

attack enemy

} else {

find enemy

}

}

Page 88: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){

run

} else {

if (enemy in sight) {

attack enemy

} else {

find enemy

}

}

Page 89: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){

if (enemy adjacent) {

attack enemy

} else {

run

}

} else {

if (enemy in sight) {

attack enemy

} else {

find enemy

}

}

Page 90: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

if (hitpoints low){if (enemy adjacent) {

attack enemy} else {

if (lost){deactivate //COMMENT!

} else {run

}}

} else {if (enemy in sight) {

attack enemy} else {

if (useless){deactivate

} else {find enemy

}}

}

Page 91: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

Page 92: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

• Use Abstractions

Page 93: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinWriting Good Code

• Use Abstractions

• Avoid Code Duplication

Page 94: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeh Secret

Page 95: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeh Secret

• Test Code (Unit Tests)

Page 96: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeh Secret

• Test Code (Unit Tests)

• Comment Code

Page 97: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeh Secret

• Test Code (Unit Tests)

• Comment Code

• Test Code

Page 98: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeh Secret

• Test Code (Unit Tests)

• Comment Code

• Test Code

• Comment on Comments

Page 99: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN / Git

Repository• Central Code Repository

Page 100: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN / Git

• Central Code Repository

• Update and Commit

Repository

^_^ ^_^

Page 101: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN /Git

Repository

^_^ ^_^

Happy.

Page 102: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN /Git

Repository

^_^x_x

Sad.

Page 103: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN /Git

Repository

x_x ^_^

• Update before you Commit

Page 104: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN/Git

• Update before you Commit

• Test Code before Commit

Repository

x_x ^_^

Page 105: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code ^_^

Repository

^_^

Page 106: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code

2. Compile^_^

Repository

^_^

Page 107: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

-_-

Repository

^_^

Page 108: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

-_- zzz

Repository

^_^

Page 109: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

5. Finish Compiling!

!^_^!

Repository

^_^

Page 110: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

5. Finish Compiling!

6. Error!

!x_x!

Repository

^_^

Page 111: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

5. Finish Compiling!

6. Error!

7. Anger

!x_x!

Repository

^_^

Page 112: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

5. Finish Compiling!

6. Error!

7. Anger -> Hate

!X_X!

Repository

^_^

Page 113: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinSVN - The Usual Story

1. Update Code2. Compile

3. Compile

4. Compile

5. Finish Compiling!

6. Error!

7. Anger -> Hate -> Suffering

!X_X!

Repository

x_x

Page 114: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

What Went Wrong?

Page 115: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

What Went Wrong?Repository had broken code.

Page 116: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Always Test Before you Commit.

Page 117: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

x_x x_x

x_x

Page 118: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is: x_x x_x

x_x

Page 119: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is:

• Starcraft

x_x x_x

x_x

Page 120: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is:

• Starcraft

• Starcraft 2

x_x x_x

x_x

Page 121: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is:

• Starcraft

• Starcraft 2

• Worrying About Large Scale Performance

x_x x_x

x_x

Page 122: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is:

• Starcraft

• Starcraft 2

• Worrying About Large Scale Performance

• Not Reading the Specs

x_x x_x

x_x

Page 123: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

Noob Mistakes

• Thinking this is:

• Starcraft

• Starcraft 2

• Worrying About Large Scale Performance

• Not Reading the Specs

• Starting Too Late

x_x x_x

x_x

Page 124: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

^_^ ^_^

^_^

Page 125: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

• Communication^_^ ^_^

^_^

Page 126: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

• Communication

• Be Realistic

^_^ ^_^

^_^

Page 127: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

• Communication

• Be Realistic

• Set Goals and Be Accountable

^_^ ^_^

^_^

Page 128: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

• Communication

• Be Realistic

• Set Goals and Be Accountable

• Code Together

^_^ ^_^

^_^

Page 129: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

How to WinTeamwork

• Communication

• Be Realistic

• Set Goals and Be Accountable

• Code Together

• Be Happy and Have Fun

^_^ ^_^

^_^

Page 130: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Website - battlecode.org

• IRC - #battlecode on freenode

• Forum Posts

• Email - [email protected]

Page 131: Today - Amazon S3s3.amazonaws.com/battlecode-releases/lectures/Lecture_1_BattleCode_2011.pdf · Fame. Why BattleCode? Fortune. Why BattleCode? Fun. Why BattleCode? Eternal Glory.

• Website - battlecode.org

• IRC - #battlecode on freenode

• Forum Posts

• Email - [email protected]