Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.05.2013, 08:44

MENSCH ÄRGERE DICH NICHT (BlueJ)

Hallo liebe Community!

Ich besuche die 10te Klasse eines Gymnasiums und wir programmieren zur Zeit mit BlueJ.
Leider hatte ich aufgrund langer Krankheit viele Fehltage, weshalb mir das Projekt, das wir nun machen, sehr schwer von den Fingern geht.
Es wäre superlieb, wenn ich bei euch Hilfe finden könnte, da mein Lehrer sich weigert
Ich möchte unbedingt verstehen, was ich wie machen muss...

Also, wie im Titel geschrieben geht es um das Spiel Mensch-Ärgere-Dich-Nicht...

Klassen, die Wir von unserem Lehrer gestellt bekamen waren ZEICHENFENSTER und TASTE
Da ZEICHENFENSTER etwas umfangreicher ist, werde ich her nur ein kleines Bsp posten (was für euch bestimmt nichts ungewöhnliches ist):

ZEICHENFENSTER.gibFenster().fuelleKreis(x,y,r,"cyan"); z.B. wäre ein -oho- Kreis
ZEICHENFENSTER.gibFenster().komponenteHinzufügen(label, "unten"); Ein label des Typs JLabel

TASTE sieht so aus:

Java Code:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Bibliotheken
import java.awt.event.*;
import javax.swing.*;

// Beginn Klasse
public class MAIN implements KeyListener
{
// Variablen

// Konstruktor 
public MAIN(){
ZEICHENFENSTER.gibFenster().gibFrame().addKeyListener(this);
}

public void keyTyped( KeyEvent e ){
}

public void keyPressed( KeyEvent e ) {
if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
System.out.println("PRESSED: LEFT"); 
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
{
System.out.println("PRESSED: RIGHT");
}
if (e.getKeyCode() == KeyEvent.VK_UP)
{
System.out.println("PRESSED: UP");
}
if (e.getKeyCode() == KeyEvent.VK_DOWN)
{
System.out.println("PRESSED: DOWN");
}
}

public void keyReleased( KeyEvent e ) {
if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
System.out.println("RELEASED: LEFT");
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
{
System.out.println("RELEASED: RIGHT");
}
if (e.getKeyCode() == KeyEvent.VK_UP)
{
System.out.println("RELEASED: UP");
}
if (e.getKeyCode() == KeyEvent.VK_DOWN)
{
System.out.println("RELEASED: DOWN");
}
} 

// Methoden

// Ende Klasse
}



Meine ersten Überlegungen waren natürlich, welche Klassen ich brauche, welche Schritte ein Durchlauf hat usw.

Klassen hab ich nun folgende:

Spielbrett
Spielfigur
Spiel
Wuerfel
Spieler
Taste
Zeichenfenster


Jetzt bin ich bei der Programmierung des Würfels, den ich mit Taste W zum Würfeln bringen möchte, aber wie schaffe ich das in TASTE?
Wuerfel sieht so aus:
Java Code:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.awt.event.*;
import javax.swing.*;

public class WUERFEL
{
private JLabel label;
private int augenzahl;

public WUERFEL()
{
label=new JLabel ("Bitte Würfeln Sie mit W");
ZEICHENFENSTER.gibFenster().komponenteHinzufuegen(label, "unten");
}

public void wuerfeln ()
{augenzahl=(int)Math.round(Math.random()*6);
label.setText("Bitte gehen Sie "+augenzahl+" Schritte");
}

}


Ein weiteres Problem wäre dann die Nummerzuweisung der Felder mit einem Array(?)

Genau, das wars vorerst... weitere Fragen werden 100% folgen.
Ich bin über jede Hilfe sehr dankbar!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

17.05.2013, 13:29

Du hast doch den Keyhandler implementiert. Dort hast du die Funktion keyPressed. Die Funktion wird wohl aufgerufen wenn eine Taste gedrückt wird. Anstatt jetzt die Pfeiltasten abzufragen und eine Konsolenausgabe zu machen, musst du da halt die Taste w abfragen und mit dem Würfel würfeln.

edit: Problem 2 mit dem Array verstehe ich nicht. Wie willst du dein Spielfeld denn überhaupt aufbauen?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“