Mein Snake

Hi Leute,

Hier ist mein Snake-Spiel, welches ich mit Slick entwickelt habe. Wäre nett, wenn ihr es euch mal anschauen würdet -vor allem den Code- und sagt, was man noch verbessern kann.
Der Datei-Upload hat leider nicht funktioniert. Deswegen habe ich sie hier hoch geladen: Snake.jar

MfG
InDaMoon

Can’t load IA 32-bit .dll on a AMD 64-bit platform

naja dann halt nicht

Ja, funktioniert so weit, (du müßtest wohl die lwjgl_64.dll oder wie die heißt noch dazupacken, damit’s auch auf 64bittern geht). Den Code habe ich überflogen, und nichts auffallend schlechtes gesehen. An einigen Stellen sah es etwas repetitiv aus, und nicht alles hat sich sofort erschlossen, aber nichts dramatisches.

Ich selber habe ein 64-bit System und es läuft einwandfrei.
Benutzt du Linux/Mac? Ich glaube ich habe nur die Windows natives beigepackt …

@Marco13 Was meinst du genau mit repetitiv?

Das könnte auch davon abhängen, ob man es in einer 32- oder 64bit-JVM startet.

Das “repetitiv” bezog sich … tatsächlich nur auf EINE Stelle: Das hier…

	public Direction getHeadsDirection(GameField gameField) {
		
		Vector2f headPos = this.snakeElements.get(this.snakeElements.size() - 1).getPosition();
		Vector2f beforeHeadPos = this.snakeElements.get(this.snakeElements.size() - 2).getPosition();
		
		Vector2f result = beforeHeadPos.sub(headPos);
		
		if(result.getX() < -1) 
			return Direction.WEST;
		else if(result.getX() > 1)
			return Direction.EAST;
		else if(result.getY() < -1)
			return Direction.NORTH;
		else if(result.getY() > 1)
			return Direction.SOUTH;
		
		if(result.getX() == -1)
			return Direction.EAST;
		else if(result.getX() == 1)
			return Direction.WEST;
		else if(result.getY() == -1)
			return Direction.SOUTH;
		else if(result.getY() == 1)
			return Direction.NORTH;
		else 
			return null;
		
//		return this.moveDirection;
	}
	public Direction getEndsDirection(GameField gameField) {
		
		Vector2f endPos = this.snakeElements.get(0).getPosition();
		Vector2f beforeEndPos = this.snakeElements.get(1).getPosition();
		
		Vector2f result = endPos.sub(beforeEndPos);
		
		if(result.getX() < -1) 
			return Direction.WEST;
		else if(result.getX() > 1)
			return Direction.EAST;
		else if(result.getY() < -1)
			return Direction.NORTH;
		else if(result.getY() > 1)
			return Direction.SOUTH;
		
		if(result.getX() == -1)
			return Direction.EAST;
		else if(result.getX() == 1)
			return Direction.WEST;
		else if(result.getY() == -1)
			return Direction.SOUTH;
		else if(result.getY() == 1)
			return Direction.NORTH;
		else 
			return null;
	}

(speziell die ifs, die bei beiden gleich sind) könnte man ggf. kürzer schreiben, aber wie ich bei einem zweiten Blick über die einzelnen Files bemerkt habe, ist das tatsächlich die einzige solche Stelle (mein letztes Sampling war also nicht repräsentativ, und hat gerade diesen Ausreißer erwischt ;))

Verwende ebenfalls windows aber
wie marco es schon angedeutet hat ich verwenden eine 64 Bit JVM

Sorry, dass ich mich so lange nicht gemeldet habe. Habe mal eine neue Jar zusammen gestellt: SnakeAll.jar

Mich würde trotzdem interessieren, welche JVM du benutzt. Ich benutze folgende:

java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

MfG
InDaMoon