WebProg-2014/Gyakorlat6

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2015. március 25., 08:27-kor történt szerkesztése után volt.

Tartalomjegyzék

Ismétlés

Prímek adott számig

Egészítsétek ki a primes függvényt, ami egy List objektumban visszaadja a prímek listáját 0-tól a paraméterként kapott számig. Tehát, ha 10-et adunk át a függvénynek, akkor adja vissza a [2, 3, 5, 7] listát.

import java.util.ArrayList;
import java.util.List;
 
public class Prime {
 
	public static List<Integer> primes(int upperBound) {
		// TODO
	}
 
	public static void main(String[] args) {
		System.out.println(primes(100));
	}
}

Bemelegítõ feladatok

Ezekhez a feladatokhoz nagyon hasznos az elõadás ismerete: 6. elõadás

Tégla rajzolás

Módosítsuk úgy az alábbi kódot, hogy a kb a következõ ábrát kapjuk: teglak

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
public class Teglak extends Frame {
 
	public static void main(String args[]) {
		new Teglak();
	}
 
	public Teglak() {
		super("Teglak");		// Az ablak neve
 
		setSize(400, 200);		// Ablakméret beállítása
 
		setVisible(true);		// Enélkül nem látszana semmi
 
		// Ezzel most ne foglalkozzatok, arra felel, hogy
		// ha bezáródik az ablak, akkor minden felszabaduljon.
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				dispose();
				System.exit(0);
			}
		});
	}
 
	// Itt történik a rajzolás
	@Override
	public void paint(Graphics g) {
		// Csak, hogy a 2D rajzolást használjuk
		Graphics2D g2d = (Graphics2D) g.create();
 
		g2d.setColor(Color.black);		// Szín beállítása
		g2d.drawRect(50, 50, 50, 70);	// Keret rajzolása
		g2d.setColor(Color.blue);
		g2d.fillRect(50, 50, 50, 70);	// Kitöltés
 
		// Ezáltal a transzformációk visszaállnak a következõ rajzolásnál
		g2d.dispose();
	}
}

Kör(szelet)

Használva a Graphics2D fillArc és fillOval metódusait rajzoljatok körszeletet és kört.

Háromszög

Rajzoljatok egy háromszöget az elõadáson tanult GeneralPath osztályt használva. Írjátok a háromszögbe a 3-as számot a Graphics2D drawString metódusával.

Ház

Használjátok bármilyen rajzolási módot, hogy rajzoljatok egy minimalista (óvodás rajzolta) házat.

BattleSudoku

A kezdeti fájlokat itt találjátok: BattleSuduku.zip

  • Az elsõ feladat, hogy egészítsétek ki a Game.java fájlt, hogy valami értelmes méretû ablak legyen.

Field

Hozzatok létre egy Field nevû osztályt a rendering csomagban. Implementálja a Drawable interface-t. A következõ adattagjai legyenek:

  • int x: x koordinátája
  • int y: y koordinátája
  • int number: a szám ami rajta van

Opcionálisan a következõ static és final változók:

  • int width: szélessége
  • int height: magassága

Legyen konstruktora, ami a fenti 3 adatot kapja (x, y, number). A draw metódusa pedig rajzoljon ki egy négyzetet az adott pontban adott szélesség és magassággal, valamit írja bele a számot. Egy int String-é konvertálása:

Integer.toString(number)

GameBoard

  • Egészítsétek ki az initBoard metódust, hogy a megfelelõ számú, megfelelõ elrendezésû mezõket hozza létre a drawables tömbbe. (A tömböt is létre kell hoznotok.) Használjátok a boardDimension konstanst.
  • Végül egészítsétek ki a doDrawing metódust, hogy ki is rajzolja ezeket a rajzolható dolgokat.
Személyes eszközök