# two in one!



## Heiland (18. Dez 2004)

Hallo, ich brauch mal wieder eure Hilfe:

Ich habe eine Klasse CHAR geschrieben und eigentlich muss man ja dann

CHAR meineInstanz;
meineInstanz=new CHAR(x,y,...,);

schreiben.

Kann man das ganze auch irgendwie so machen,  dass man nur noch

CHAR meineInstanz(x,y,...,);

schreiben muss?

Wäre recht hilfreich, da dass dann so eine Art Scriptsprache werden soll.

Danke!


----------



## Illuvatar (18. Dez 2004)

Wie wärs mit CHAR meineInstanz = new CHAR (x, y, ...,) ?


----------



## Heiland (18. Dez 2004)

ja, das geht natürlich. Ist aber zu lange! Ich wollte das so schlciht wie möglich machen. Später möchte ich ja dann diese Dinge in eine Textdatei setzen und sie dann im Hauptprogramm einlesen.


----------



## SebiB90 (18. Dez 2004)

kürzer geht es nicht
soweit ich weiß
wie willst du das den noch kürzen?


----------



## Heiland (18. Dez 2004)

ich wills auf CHAR meineInstanz(c,x);
kürzen. Dass man es ohne new usw erzeugen kann.


----------



## akira (18. Dez 2004)

> Dass man es ohne new usw erzeugen kann.



Wie soll das gehen?


----------



## Heiland (18. Dez 2004)

keine Ahnung, deshalb frage ich ...


----------



## SebiB90 (18. Dez 2004)

es geht nicht kürzer
oder?
so vllt.

```
new CHAR(...);
```
so wird das object erzeugt aber nicht in einer var gespeichert


----------



## akira (18. Dez 2004)

Ohne new kannst Du nun mal keine Objekte erzeugen und was ist an 3 Buchstaben eigentlich zu lang?


----------



## Reality (18. Dez 2004)

akira hat gesagt.:
			
		

> Ohne new kannst Du nun mal keine Objekte erzeugen und was ist an 3 Buchstaben eigentlich zu lang?



Falsch!


```
String a = "Hallo";
```

Das ist aber die einzigste Ausnahme.

Liebe Grüße
Reality


----------



## Roar (18. Dez 2004)

na reality. das wird vom compiler eh umgewandlet. aber es is wirklich falsch. man kann ja objekte auch per reflection erzeugen lassen :roll: aber lassen wir das 

@JaVa: das soll eine scriptsprache werden? ich hoffe du hast nicht daran gedacht javacode in eine textdatei zu schrieben und den dann zur laufzeit zu kompilieren :autsch:

du musst dir halt nen eigenen parser schreiben. viel spaß


----------



## DesertFox (18. Dez 2004)

*hust*, Real, und was ist mit den seit 1.5 eingeführten Auto-Boxing zwischen Wrapper-Klassen und primitiven Datentypen


----------



## Reality (18. Dez 2004)

DesertFox hat gesagt.:
			
		

> *hust*, Real, und was ist mit den seit 1.5 eingeführten Auto-Boxing zwischen Wrapper-Klassen und primitiven Datentypen


Stimmt. 

@JaVa:
Du könntest das theoretisch über eine Methode indirekt realisieren


```
public Char createChar(int a, int b){
  return new Char(a, b);
}
```

Liebe Grüße
Reality


----------



## Heiland (18. Dez 2004)

Gut, gut! Ja, es soll ne scriptsprache werden. Wie kann ich einen Parser schreiben? Kann mir da jemand ein Bespiel zeigen?


----------



## Roar (18. Dez 2004)

JaVa hat gesagt.:
			
		

> Wie kann ich einen Parser schreiben? Kann mir da jemand ein Bespiel zeigen?



wie? mit viel ausdauer und zeit... das ist jedenfalls keine sache von einer stunde. nen beispiel? es gibt wohl kaum beispiele für sowas :-/ ich geb dir nur den tipp regex zu benutzen


----------



## Heiland (18. Dez 2004)

Ist regex ein parser? Wäre für genaueres dankbar !

thx


----------



## Roar (18. Dez 2004)

uff... regex = reguläre ausdrücke
such mal bei google nach informationen zu regex und parserbau


----------



## Heiland (18. Dez 2004)

kann ich nicht auch java selbst als scriptsprache verwenden? Mir hat mal jem. gesagt, dass das gehen würde!


----------



## Roar (18. Dez 2004)

gnupf. das wär wohjl overkill. erstens müssten die leute die dann deine scriptsprache benutzen wollen java können. 2. wär das sinnlos.  du könntest ja praktisch alles machen. fenster öffnen, dateien runterladen udn ausführen. die VM beenden oder so.
3. wär das grottenlangsam wenn die zur laufzeit kompiliert und ausgeführt werden sollen.


----------



## Illuvatar (19. Dez 2004)

Ich hab vor kurzem mal zum Spaß was gemacht, das kann Java-Befehle parsen und ruft diese über Reflection auf. Das kann aber keine erweiterte Punktnotation und kann keine Primitivtypen speichern. Sonst tut es ganz gut, ist eben naturgemäß net zu schnell. Das geht dann z.B. so:

```
jf = new javax.swing.JFrame("test")
jf.setVisible (true)
```
/ME wollte doch mal die halbfertige GUI davon fertigmachen 
Die Ein- und Ausgabe davon wird über ein Interface geregelt. Klasse und Interface haben zusammen ca. 725 Codezeilen, ist also bissle zu viel für hier. Außerdem ist es ziemlich zusammengehackt.
Du kannsts mal hier ausprobieren, bzw. hier mit der halbfertigen GUI, mit /help kriegst du auch eine kleine Befehlsübersicht (da steht noch bissle Quatsch drin ,net beachten). Ich kann dir auch mal den Code schicken, wenn du willst, aber pass auf, dass es dir davon net hochkommt


----------



## psychonaut (19. Dez 2004)

@JaVa 
ich hatte geschrieben, ich benutze java als "script"-Sprache.
Die Häkchen haben wirklich etwas zu bedeuten. Ich benutze keinen Parser, sondern Java direkt, eben weil damit direkt mehr Möglichkeiten zur Verfügung stehen, als mit jeder Scriptsprache.
Ich baute ein *package*, das die ganze rudimentäre Logik, das allgemeine Aussehen und Verhalten eines möglichen Spieles enthält.
Man nennt sowas *die engine*. 
Hinzu kommt ein *package* für das Spiel selbst. Es besteht nur aus Regelwerken in Form von Class-Dateien und Properties, sowie der Grafik und den Sounds. Die Class-Dateien dieses packages sind quasi die "Scripte".
Damit kann man also auch Spiele in Spielen realisieren. Lade dir das package mal runter und schau es dir an. Vielleicht sogar eine frühere Version von sourceforge ...
@Roar
Das ist bestimmt nicht langsamer als Java selbst, keineswegs ein overhead oder -kill und sehr praktisch.
Ja, jemand der Regelwerke für diese engine schreiben will muss Java können. Ist dir vielleicht noch nicht aufgefallen, aber wenn man ein script schreiben will, muss man die script-Sprache beherrschen, sei es JPython, JavaScript für Java, JLua oder ... 
Komischer Weise kann man mit all diesen script-Sprachen Fenster öffnen, den Prozess killen und jedweden Blödsinn anstellen, den man mit Java auch machen kann.

Allgemein bleibt aber die Frage, wozu eine Scriptsprache anwenden. Geht es um einen reduzierten Funktionsumfang?
Das kann hat meine Lösung auch, voraus gesetzt der Programmierer benutzt meinen Editor, der auf templates basiert - basieren wird - und kleinen Formular-Dialogen , sowie einem "Canvas", auf dem man die GameObjecte erzeugt, parametrisiert und anordnet. Wenn jemand nichts speziell Extraordinäres machen will, so erhält er auch keine Möglichkeit hierfür.
Anderseits kann man immer den Source direkt zu editieren. Hier stehen dann alle Möglichkeiten offen.

Greeting and best regards
Ciao*
Psychonaut


----------

