import javax.swing.SwingUtilities;
public class Luokka {
	public static void main(String[] args) {
		Mato mato = new Mato();
		Omena omena = new Omena();
		Kayttoliittyma kayttoliittyma = new Kayttoliittyma(mato, omena);
		SwingUtilities.invokeLater(kayttoliittyma);
	}
}import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class Kayttoliittyma implements Runnable {
	private JFrame frame;
	private Mato mato;
	private Omena omena;
	public Kayttoliittyma(Mato mato, Omena omena) {
		this.mato = mato;
		this.omena = omena;
	}
	@Override
	public void run() {
	    frame = new JFrame("Otsikko");
	    frame.setPreferredSize(new Dimension(500, 500));
	    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	    luoKomponentit(frame.getContentPane());
	    frame.pack();
	    frame.setVisible(true);
	}
	private void luoKomponentit(Container container) {
		Piirtoalusta piirtoalusta = new Piirtoalusta(mato, omena);
		container.add(piirtoalusta);
		frame.addKeyListener(new Nappaimistokuuntelija(mato, piirtoalusta));
	}
	public JFrame getFrame() {
	    return frame;
	}
}import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Piirtoalusta extends JPanel{
	private Mato mato;
	private Omena omena;
	public Piirtoalusta(Mato mato, Omena omena) {
        super.setBackground(Color.GRAY);
        this.mato = mato;
        this.omena = omena;
    }
    @Override
    protected void paintComponent(Graphics graphics) {
        super.paintComponent(graphics);
        mato.piirra(graphics);
        omena.piirra(graphics);
    }
}import java.awt.Graphics;
public class Mato {
	private Arpoja arpoja;
	private int x;
	private int y;
	public Mato(){
		arpoja = new Arpoja();
		this.x = arpoja.getX();
		this.y = arpoja.getY();
	}
	public int getX(){
		return x;
	}
	public int getY(){
		return y;
	}
	public void siirry(int xMuutos, int yMuutos){
		this.x += xMuutos;
		this.y += yMuutos;
	}
	public void piirra(Graphics graphics){
		graphics.fillRect(x, y, 20, 20);
	}
}import java.awt.Component;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Nappaimistokuuntelija implements KeyListener{
	private Component component;
	private Mato mato;
	public Nappaimistokuuntelija(Mato mato, Component component){
		this.mato = mato;
		this.component = component;
	}
	@Override
	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode() == KeyEvent.VK_LEFT) {
			mato.siirry(-10, 0);
        } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
            mato.siirry(10, 0);
        } else if(e.getKeyCode() == KeyEvent.VK_UP){
        	mato.siirry(0, -10);
        } else if(e.getKeyCode() == KeyEvent.VK_DOWN){
        	mato.siirry(0, 10);
        }
		component.repaint();
	}
	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
	}
}import java.util.Random;
public class Arpoja {
	private Random ran = new Random();
	private int x;
	private int y;
	public Arpoja(){
		this.x = ran.nextInt(300) + 101;
		this.y = ran.nextInt(300) + 101;
	}
	public int getX(){
		return this.x;
	}
	public int getY(){
		return this.y;
	}
}Eli miten saan tähän ohjelmaan sellaisen toiminoon että mato liikkuisi vaikka 5 sekunnissa. Kun painaa jotain näppäintä mato rupeaa liikkumaan sinne 5 sekunnissa.
Lisäys: Älkää sitten välittäkö noista omena jutuista. En laittanut kaikkea koodia tänne sekottamaan päätä.
Sinun pitää pääohjelmaasi tehdä silmukka, jossa matoa pelin aikana liikutetaan
pääpiirteittään näin:
while (peli on käynnissä) {
  jos ohjausnäppäimiä painettu, muuta madon suunta
  liikuta madon päätä voimassa olevaan suuntaan
  jos törmäys seinään/itseensä, poistu peli käynnissä silmukasta -> game over
  jos törmäys omenaan, kasvata matoa (häntä ei liiku)
  tähän kohtaan sopiva odotus, jotta silmukka ei pyöri (mato liiku)
  liian lujaa
}Kiitos tästä pete
Aihe on jo aika vanha, joten et voi enää vastata siihen.