Robocode. Inleiding tot programmeren



Vergelijkbare documenten
Programmeren in Java les 3

Overerving & Polymorfisme


eerste voorbeelden in Java

Objectgericht programmeren 1.

Modelleren en Programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

Oefeningen Java Oplossingen

Programmeren in Java 3

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

Variabelen en statements in ActionScript

Ingebouwde klassen & methodes

Modelleren en Programmeren

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Modelleren en Programmeren

Javascript oefenblad 1

VAN HET PROGRAMMEREN. Inleiding

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Modelleren en Programmeren

Modelleren en Programmeren

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Een spoedcursus python

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Java Les 3 Theorie Herhaal structuren

Vakgroep CW KAHO Sint-Lieven

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters

Inleiding programmeren

Hoofdstuk 0. Van Python tot Java.

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Tentamen Objectgeorienteerd Programmeren

Zelftest Programmeren in Java

Voortgezet Prog. voor KI

IMP Uitwerking week 13

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

BEGINNER JAVA Inhoudsopgave

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Dynamisch Programmeren. Het Rugzakprobleem

Programmeren in C# Samenvatting van C#

Objectgericht programmeren 1.

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Modelleren en Programmeren

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Programmeren: Visual Basic

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

Programmeren met Arduino-software

Opdracht 4: Overzichtelijker en generieker

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Zelftest Inleiding Programmeren

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Game of Life in Java

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

REEKS I. Zaterdag 6 november 2010, 9u

voorwaardelijke en selectie opdrachten

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Deeltentamen Grammatica s en ontleden 22 december 2005

R e c h t e h a k e n

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Syntax- (compile), runtime- en logische fouten Binaire operatoren

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Programmeren 1 20 januari 2012 Prof. T. Schrijvers

Veel succes! 1. Gegeven is de volgende klasse:

Modulewijzer Tirdat01

Scala. Korte introductie. Sylvia Stuurman

Een fragment wordt afgeleid van de basis klasse "Fragment".

Online c++ leren programmeren:

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Modelleren en Programmeren

Modelleren en Programmeren

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

meerkeuzevragen informatica jan 2007

Tentamen in2705 Software Engineering

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk

Java. Basissyllabus. Egon Pas

Programmeren (1) Examen NAAM:

Inleiding C++ Coding Conventions

Voorbeeld: Simulatie van bewegende deeltjes

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )


Kennismaken Greenfoot

Transcriptie:

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 - a!= b - gelijk aan niet gelijk aan a < b - kleiner dan a <= b - a > b - groter dan a >= b - kleiner dan of gelijk aan 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; case 3: a = 3; 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/roboc ode/.

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 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() Geeft kogel terug 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