Seite 1 von 1

Java GameGrid

Verfasst: Fr Mai 15, 2015 12:38 am
von sashpta
Hey,

wir haben in der Schule im Informatikunterricht gerade das Thema Java. Da habe wir jetzt angefangen mit dem Java GameGrid zu programmieren und sollen ein paar Aufgaben machen. Nur komme ich bei den Aufgaben irgendwie kein Stück weiter und hoffe, dass ihr mir helfen könnt :)

Aufgabe: http://www.java-online.ch/gamegrid/inde ... A3.inc.php

Schritt 1 habe ich noch hinbekommen.
Beim Schritt 2 schaff ich es nicht, dass ich 4 Autos habe und die alle 2 Kästchen Abstand haben. Ich habs hinbekommen, dass ich 3 habe und die jeweils 2 Kästchen Abstand haben aber mit 4 Autos wird das irgendwie nichts.
Schritt 3 hab ich auch hinbekommen (halt 4 Autos & 1 Kästchen Abstand weil ich das andere ja wie gesagt nicht hinbekomme :D )
Schritt 4 ich denke mal das ich da am Code im "public void act()" was verändern muss, aber ich bin mir nicht sicher ob wirklich da und ich weiß auch nicht was ich dann dahin schreiben soll, ich denke mal nicht das "setSlowDown(Zahl zw. 1-20)" das reichen wird, da man ja noch was mit Zufall machen muss, oder schreibt man das Zufallszeug dann einfach mit in die Klammern?^^

Mein Code:

Code: Alles auswählen

// JGameA3.java

import ch.aplu.jgamegrid.*;
import java.awt.Color;

public class JGameA3 extends GameGrid
{
  public JGameA3()
  {
    super(10, 10, 60, Color.red, "sprites/roadCircle.png", false);
    int x = 1;
    
    while( x < 32)
    {
      addActor(new Car(), new Location(x, 1));
      x += 2;
      
      addActor(new Car(), new Location(x, 1));
        
     
      
    } 
    show();
    doRun();
  }
  
  
  public static void main(String[] args)
  {
    new JGameA3();
  }
}
  
  // ------------- class Car --------------------
  
  class Car extends Actor
{
  Location topLeft = new Location(1,1);
  Location topRight = new Location(8,1);
  Location bottomRight = new Location(8,8);
  Location bottomLeft = new Location(1,8);
  
  public Car()
  {
    super(true, "sprites/redCar.gif");
  }
  
  public void act()
  {
    move();
    //if (!isMoveValid())
    if(getLocation().equals(topLeft) || getLocation().equals(topRight) ||
    getLocation().equals(bottomRight) || getLocation().equals(bottomLeft))
    {
      turn(90);
    }
  }
}
Ich hoffe ihr könnt mir helfen.

LG :)

Re: Java GameGrid

Verfasst: Fr Mai 15, 2015 1:59 pm
von cloidnerux
Ich habe es mal verschoben, weil es ja darum geht deine Aufgaben zu lösen.
Beim Schritt 2 schaff ich es nicht, dass ich 4 Autos habe und die alle 2 Kästchen Abstand haben. Ich habs hinbekommen, dass ich 3 habe und die jeweils 2 Kästchen Abstand haben aber mit 4 Autos wird das irgendwie nichts.
Solange du kein konkretes Problem äußerst, kann dir keine helfen. Ich habe weder Zeit noch Lust mich in die Aufgaben einzuarbeiten.
Schritt 4 ich denke mal das ich da am Code im "public void act()" was verändern muss, aber ich bin mir nicht sicher ob wirklich da und ich weiß auch nicht was ich dann dahin schreiben soll, ich denke mal nicht das "setSlowDown(Zahl zw. 1-20)" das reichen wird, da man ja noch was mit Zufall machen muss, oder schreibt man das Zufallszeug dann einfach mit in die Klammern?^^
Die Aufgabe ist da sehr spezifisch was du wie und wo machen sollst, lese dir also bitte nochmal die Aufgabenstellung genau durch.

Re: Java GameGrid

Verfasst: Fr Mai 15, 2015 6:03 pm
von sashpta
Oke danke.

hab schon einiges versucht aber ich komme einfach nicht drauf wie ich es machen muss und vorallem woher ich weiß wann ich was wohin schreiben muss^^



LG

Re: Java GameGrid

Verfasst: Fr Mai 15, 2015 8:19 pm
von cloidnerux
hab schon einiges versucht aber ich komme einfach nicht drauf wie ich es machen muss und vorallem woher ich weiß wann ich was wohin schreiben muss^^
Bei sowas gibt es zwei Ansätze:
Einfach ausprobieren und solange herum spielen bis es das macht, was man will.
Analytisch das Programm betrachten und systematisch vorgehen.
Wenn du dann ein konkretes Problem hast: "Warum tut mein Code nicht", dann kannst du diesen gerne auch hier Posten und um Hilfe fragen.

Re: Java GameGrid

Verfasst: Sa Mai 16, 2015 12:36 am
von sashpta
Also bin grade ein bisschen am Probieren.

wenn ichs so schreibe habe ich nur 3 Autos, ich denke mal das Vierte ist auf der selben Postion wie eins der anderen 3.
kann man denn irgendwie einen delay einbauen? also, dass der Vierte erst erscheint wenn die anderen sich alle 1 mal bewegt haben oder das der ne Sekunde wartet oder sowas?

Code: Alles auswählen

// JGameA4.java

import ch.aplu.jgamegrid.*;
import java.awt.Color;

public class JGameA3a extends GameGrid
{
  public JGameA3a()
  {
    super(10, 10, 60, Color.red, "sprites/roadCircle.png", false);
    

      
    addActor(new Car(), new Location(1, 1));
    addActor(new Car(), new Location(4, 1));
    addActor(new Car(), new Location(7, 1));
    addActor(new Car(), new Location(10, 1)); // der hier erscheint nicht 
    
    show();
    doRun();
  }
  
  public static void main(String[] args)
  {
    new JGameA3a();
  }
}

// ------------- class Car --------------------
class Car extends Actor
{
  Location topLeft = new Location(1,1);
  Location topRight = new Location(8,1);
  Location bottomRight = new Location(8,8);
  Location bottomLeft = new Location(1,8);
  
  public Car()
  {
    super(true, "sprites/redCar.gif");
  }
  
  public void act()
  {
    move();
    //if (!isMoveValid())
    if(getLocation().equals(topLeft) || getLocation().equals(topRight) ||
    getLocation().equals(bottomRight) || getLocation().equals(bottomLeft))
    {
      turn(90);
    }
  }
}