Download de presentatie
De presentatie wordt gedownload. Even geduld aub
1
Inleiding tot programmeren
Robocode Inleiding tot programmeren
2
Inhoud Doel cursus Java-controlestructuren Robotje programmeren
3
Doel cursus Inleiding Java Robocode
4
Java Object-gerichte programmeertaal Sun 1991
5
Robocode 2001 Matthew Nelson IBM Programmeerspelletje
6
Inhoud Doel cursus Java-controlestructuren Robocode
7
Compileren Code ‘vertalen’ voor computer
8
Commentaar // lijn commentaar /* blok Commentaar */
Commentaar wordt niet gelezen door de compiler
9
Declaratie van data private double d = 1.11111; private int i = 5;
private static string s = “tekst” Binnen methode niet private Static als je waardes wil houden tussen ronden (deathcount)
10
If – Else if (voorwaarde) { //doe iets } else { //doe iets anders
11
While() while (voorwaarde) { //blijf dit //en dit doen }
12
Vergelijken a == b - gelijk aan a != b - niet gelijk aan
a < b - kleiner dan a <= b - kleiner dan of gelijk aan a > b - groter dan a >= b - groter dan of gelijk aan s.equals(“string”) - strings vergelijken
13
For() for (int i = 0; i < 6; i++) { System.out.println(i + “”); }
14
Switch switch (i) { case 1: a = 1; break; case 2: a = 2; break;
default: a = 0; break; }
15
Methodes Methodes Verzameling van lijnen code Argumenten Return
Vaak gebruikt voor herhalingen van code of berekeningen
16
Inhoud Doel cursus Java-controlestructuren Robocode
17
Robocode Het programma Een robot bouwen
18
Robocode Java 1.5.0
19
Een gevecht starten
20
Anatomie van een robotje
Vehicle Bewegen Gun Schieten Radar Scannen
21
Een robotje maken
22
Een robotje maken File -> New -> Robot Packagenaam
Naam van de robot Compiler -> Compile (F6)
23
Run() Belangrijkste methode van de robot 2 delen Declaratie
While(true)
24
Color Deel van declaratie import java.awt.Color;
setColors(Color.RED, Color.BLACK, Color.RED);
25
While(true) Oneindige lus Herhaling van strategie robot
Onderbroken door events Stopt indien dood of gewonnen
26
Bewegen turnLeft(aantal graden); turnRight(aantal graden);
turnRight(90) == turnLeft(-90)
27
Bewegen ahead(aantal pixels); back(aantal pixels);
ahead(100) == back(-100);
28
Bewegen turnGunLeft(aantal graden); turnGunRight(aantal graden);
turnGunRight(90) == turnGunLeft(-90)
29
Bewegen getHeading(); getGunHeading();
turnRight(shortAngle(getHeading() + 90));
30
Fire() Schiet een kogel Kracht 0.1 <-> 3
Schieten maakt het geweer warm if (getGunHeat() == 0) { fire(3); }
31
Bullet Bij fire() Robocode maakt Bullet aan Bij events Bullet opvragen
32
Bullet Indien raak Indien mis 3 * K energie terug
4 * K, plus 2 * (K - 1) als K > 1 Schade Indien mis Kogel raakt andere kogel Kogel raakt muur
33
Events Gebeurtenis Eigen code Onderbreken while(true)
34
Events /** * onScannedRobot: What to do when you see another robot */
public void onScannedRobot(ScannedRobotEvent e) { System.out.println(“I’ve seen “ + e.getName()); System.out.println(e.getDistance() + “ pixels away.”); fire(1); }
35
BulletHitBulletEvent
Jouw kogel raakt een andere kogel getBullet() Geeft kogel terug getHitBullet() a = e.getBullet().getPower();
36
BulletHitEvent Je hebt een robotje geraakt getBullet() getEnergy()
getName()
37
BulletMissedEvent Een kogel van jou heeft de muur geraakt getBullet()
38
DeathEvent Je sterft Geen methodes Bijvoorbeeld deathcounter
39
HitByBulletEvent getBearing() getBullet() getHeading() getName()
getPower()
40
Bearing Verschil tussen jouw heading en heading van wat je raakt.
turnRight(e.getBearing()) ;
41
HitRobotEvent Je rijdt tegen een robot getBearing() getEnergy()
getName() isMyFault() if (e.isMyFault()) {
42
HitWallEvent Je rijdt tegen een muur getBearing()
43
RobotDeathEvent Een andere robot sterft. getName()
44
ScannedRobotEvent Je radar (op geweer) ziet een robot getBearing()
getDistance() getEnergy() getHeading() getName()
45
ScannedRobotEvent /**
* onScannedRobot: What to do when you see another robot */ public void onScannedRobot(ScannedRobotEvent e) { System.out.println(“I’ve seen “ + e.getName()); System.out.println(e.getDistance() + “ pixels away.”); fire(1); }
46
WinEvent Je wint de ronde. Geen methodes. Overwinningsdansje
wincounter
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.