Inleiding tot programmeren

Slides:



Advertisements
Verwante presentaties

Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Hoofdstuk 8: Recursie.
Arduino project.
Gestructureerd programmeren in C
Practica Computerlinguistiek Tekst en uitleg:
Van domeinklasse tot implementatie
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
OOP met Java Sessie 1.
Het ontwerpen van een klasse
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Het type int Tekenen met Java operatoren
VBA en VBS Een introductie.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Klassen en objecten.
Greenfoot Workshop Bobby - Snake.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 5: Bestanden.
Inleiding Informatica
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Frank Stalpers en Ad Baars
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
CONTROLESTRUCTUREN (DEEL 1)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Algoritmiek Object-georiënteerd Programmeren
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Arrays.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
1 Syntax JavaLogo. 2 Hoofdstuk 1 Tekenen in Java.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Datacommunicatie en netwerken
CONTROLESTRUCTUREN (DEEL 1)
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Informatie beoordelen If else Switch En Wiskunde.
Robby de Robot. Javascript Tot nu toe gebruikt: – document.write(" Hello World "); – alert("tekst") – Toon een waarschuwingsvenster – prompt("tekst",
Objectgeoriënteerd Programmeren (2)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Keuzeopdrachten
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Tiles in Tick Tick
Gameprogrammeren: Herhalingen
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Game: omgaan met tijd (Jewel-Jam)
Implementatie Zoekboom
Small Basic Console deel 2
Software Development fundamentals
Leren programmeren met Scratch
Software Development fundamentals
Transcript van de presentatie:

Inleiding tot programmeren Robocode Inleiding tot programmeren

Inhoud Doel cursus Java-controlestructuren Robotje programmeren

Doel cursus Inleiding Java Robocode

Java Object-gerichte programmeertaal Sun 1991 http://java.sun.com

Robocode 2001 Matthew Nelson IBM Programmeerspelletje http://robocode.sourceforge.net/

Inhoud Doel cursus Java-controlestructuren Robocode

Compileren Code ‘vertalen’ voor computer

Commentaar // lijn commentaar /* blok Commentaar */ Commentaar wordt niet gelezen door de compiler

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)

If – Else if (voorwaarde) { //doe iets } else { //doe iets anders

While() while (voorwaarde) { //blijf dit //en dit doen }

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

For() for (int i = 0; i < 6; i++) { System.out.println(i + “”); }

Switch switch (i) { case 1: a = 1; break; case 2: a = 2; break; default: a = 0; break; }

Methodes Methodes Verzameling van lijnen code Argumenten Return Vaak gebruikt voor herhalingen van code of berekeningen

Inhoud Doel cursus Java-controlestructuren Robocode

Robocode Het programma Een robot bouwen

Robocode Java 1.5.0 http://sourceforge.net/projects/robocode/.

Een gevecht starten

Anatomie van een robotje Vehicle Bewegen Gun Schieten Radar Scannen

Een robotje maken

Een robotje maken File -> New -> Robot Packagenaam Naam van de robot Compiler -> Compile (F6)

Run() Belangrijkste methode van de robot 2 delen Declaratie While(true)

Color Deel van declaratie import java.awt.Color; setColors(Color.RED, Color.BLACK, Color.RED); http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Color.html

While(true) Oneindige lus Herhaling van strategie robot Onderbroken door events Stopt indien dood of gewonnen

Bewegen turnLeft(aantal graden); turnRight(aantal graden); turnRight(90) == turnLeft(-90)

Bewegen ahead(aantal pixels); back(aantal pixels); ahead(100) == back(-100);

Bewegen turnGunLeft(aantal graden); turnGunRight(aantal graden); turnGunRight(90) == turnGunLeft(-90)

Bewegen getHeading(); getGunHeading(); turnRight(shortAngle(getHeading() + 90));

Fire() Schiet een kogel Kracht 0.1 <-> 3 Schieten maakt het geweer warm if (getGunHeat() == 0) { fire(3); }

Bullet Bij fire() Robocode maakt Bullet aan Bij events Bullet opvragen

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

Events Gebeurtenis Eigen code Onderbreken while(true)

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); }

BulletHitBulletEvent Jouw kogel raakt een andere kogel getBullet() Geeft kogel terug getHitBullet() a = e.getBullet().getPower();

BulletHitEvent Je hebt een robotje geraakt getBullet() getEnergy() getName()

BulletMissedEvent Een kogel van jou heeft de muur geraakt getBullet()

DeathEvent Je sterft Geen methodes Bijvoorbeeld deathcounter

HitByBulletEvent getBearing() getBullet() getHeading() getName() getPower()

Bearing Verschil tussen jouw heading en heading van wat je raakt. turnRight(e.getBearing()) ;

HitRobotEvent Je rijdt tegen een robot getBearing() getEnergy() getName() isMyFault() if (e.isMyFault()) {

HitWallEvent Je rijdt tegen een muur getBearing()

RobotDeathEvent Een andere robot sterft. getName()

ScannedRobotEvent Je radar (op geweer) ziet een robot getBearing() getDistance() getEnergy() getHeading() getName()

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); }

WinEvent Je wint de ronde. Geen methodes. Overwinningsdansje wincounter