Java GameGrid

Hier landen Posts, die keine Wissensfrage erhalten, sondern einen Dummen suchen.
Antworten
sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Java GameGrid

Beitrag von sashpta » Fr Mai 15, 2015 12:38 am

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 :)

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Java GameGrid

Beitrag von cloidnerux » Fr Mai 15, 2015 1:59 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: Java GameGrid

Beitrag von sashpta » Fr Mai 15, 2015 6:03 pm

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

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Java GameGrid

Beitrag von cloidnerux » Fr Mai 15, 2015 8:19 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: Java GameGrid

Beitrag von sashpta » Sa Mai 16, 2015 12:36 am

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

Antworten