Dialoge, in welcher Sprache programmieren?
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
anspielung
code
dank
datei
datenbank
dialog
frage
hilfe
laufen
leber
nehmen
nudel
programm
schatz
server
sinn
software
system
url
weitergeben
-
In welcher Sprache und mit welchem System würdest Du folgendes Problem lösen:
Interaktives Dialogspiel.
Der User sieht
4 Sätze:
1
Schatz willst Du Nudeln.
2
Hör auf mit den Anspielungen.
3
Was ist Dir denn über die Leber gelaufen.
4
Mit Psycho werde ich nicht satt.
Dann werden
4 Alternativen eingeblendet
wie der Dialog weitergehen soll
a
b
c
d.
Der User sucht sich eine aus zB b
und das wird dann angefügt.
Dann kommen wieder 4 Sätze zur Auswahl.
etc.
Das Programm soll in allen Systemen laufen
dos win Linux Mac Chrome etc.
Im Notfall würde ich es in html machen
für jede Möglichkeit eine neue Seite
das wären dann halt 1000 Seiten und mehr bei
100 Sätzen Dialoglänge.
Danke vorweg für Ideen und Hilfe.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn ich das richtig verstehe, dann braucst du also eine kleine GUI auf denen du dann deine Buttons einblenden kannst. Das Programm soll Plattformunabhangig sein. Dafür würde ich entweder Python oder Java verwenden, wobei Java natürlich den Vorteil hat auf fast allen Systemen installiert zu sein.
-
hc-tools schrieb:
[...] wobei Java natürlich den Vorteil hat auf fast allen Systemen installiert zu sein.
Nicht wirklich... Weder Windows noch Linux haben von Haus aus Java installiert. Aber es ist für alle relevanten Systeme verfügbar.
Ich würde solch eine Software auch in Java schreiben. Ohne Verwendung von Look-And-Feel-Klassen allerdings. Dann ist das Programm wirklich auf allen Systemen lauffähig.
Da Java auch auf die gängigen Resourcen wie Datenbanken (JDBC) lokal oder entfernt, Webservices aber auch auf Dateien auf der Festplatte zugreifen kann müssen die Inhalte nicht mal fix einprogrammiert sein sondern können zur Laufzeit dynamisch aus genannten Quellen geladen werden. -
Ich meinte mit auf fast jedem System vorhanden jetzt auch nicht, dass es vorinstalliert ist, sondern, dass Java auf fast jedem Computer nachinstalliert ist.
-
Im Grunde ist es doch egal, nimm einfach die Sprache, die du am besten kannst. Ob du jetzt Java nimmst und der User im Zweifelsfall erst noch Java installieren muss oder du halt einfach für alle Systeme kompilierst musst du wissen. Natürlich könntest du auch PHP nehmen, aber dann brauchst du wieder nen Server (entweder lokal oder per Netzwerk etc).
Ich persönlich würde ja versuchen, es in Clojure zu lösen. :)
Edit, ich habe gerade deine Anforderung gelesen:
hbss schrieb:
Das Programm soll in allen Systemen laufen
dos win Linux Mac Chrome etc.
Mach dir lieber mal Gedanken, ob das Sinn macht, alle genannten Plattformen zu unterstützen. Ich würde ja was für die Konsole nehmen, aber da spielt Chrome wieder nicht mit. Wobei du alles mit grafischen Oberflächen auf Dos vergessen kannst.
Beitrag zuletzt geändert: 6.5.2013 13:40:27 von tchab -
Deine Anforderungen sind nicht 100%ig klar. Soll das Programm ein Gedächtnis haben, das über eine Frage-Antwort-Runde hinausgeht? Falls das nicht der Fall ist, kannst du den nachfolgenden Code nutzen.
Ich habe mal kurz was in Lua zusammengeschrieben. Damit kannst du selbst MS-DOS bedienen.
local dialog = { intro = { ["Schatz willst du Nudeln?"] = "nudeln", ["Hör auf mit den Anspielungen"] = "anspielungen", ["Was ist dir denn über die Leber gelaufen?"] = "leber", ["Mit Psycho werde ich nicht satt"] = "psycho" }, nudeln = { ["Ich muss auf meine Linie achten"] = "linie", ["Nein danke"] = "danke" }, anspielungen = { ["Ich spiele so viel ich will"] = "viel", }, danke = { ["Danke nicht mir!"] = "undankbar", ["Du alter Miesepeter"] = "undankbar" }, undankbar = { ["Und immer so weiter"] = "ziellos" }, ziellos = { ["Du bist in einer Endlosschleife gefangen"] = "ziellos" } } local key = "intro" while true do entries = dialog[ key ] if entries then local i = 1 local links = {} for question, ref in pairs( entries ) do print( '(' .. i .. ') ' .. question ) i = i + 1 table.insert( links, ref ) end key = links[ io.read( '*number' ) ] else break end end
-
Ich habe mich nicht gut genug ausgedrückt.
Das Problem ist
wie ich kann Schreibaufwand
minimieren.
Gehen tut das so:
Der User sieht
4 Sätze:
1.htm
1
Schatz willst Du Nudeln.
2
Hör auf mit den Anspielungen.
3
Was ist Dir denn über die Leber gelaufen.
4
Mit Psycho werde ich nicht satt.
Dann werden
4 Alternativen eingeblendet
wie der Dialog weitergehen soll
a
b
c
d.
Nehmen wir an
User klickt c:
1c.htm
1
Hör auf mit den Anspielungen.
2
Was ist Dir denn über die Leber gelaufen.
3
Mit Psycho werde ich nicht satt.
4
Dann gehe ich in die Küche.
nun wieder
a
b
c
d
Und nehmen wir an das ist alles in html
dann klicken wir auf b
und schalten zur seite 2b
Also wenn ich dann je nach Dialoglänge 1000 html Seiten schreibe und hochlade
das geht
wenig Speicher bei txt
aber
Riesenverwaltung.
Und html können auch alle.
Frage
geht das auch ökonimischer?
Zeit geht schon viel sparen mit copy und paste.
Gruss und Danke für Unterstützung.
-
Klar geht das "kürzer".
Eine Funktion, die immer a, b, c oder d an nimmt und einen Counter an welcher Stelle im Dialog man gerade ist, dementsprechend brauchst du nur 1 Datei bzw. eine Funktion, in der alle Möglichkeiten enthalten sind. Ob das Sinn macht, naja, aber möglich ist es.
DU musst halt wissen, wie DEINE Software ausschauen soll.
Wenn du den Verwaltungsaufwand minimieren willst (auf Dauer) würde ich vielleicht mit einer Datenbank arbeiten, MySQL bietet sich natürlich an, wenn du es im Web machen willst. Dort bekommt jede Frage automatisch einen Index, mit einer entsprechenden Funktion in PHP ist das ganz enifach und du kannst auch einfach neue Fragen hinzufügen.
(Eine Tabelle mit den Fragen, dann vielleicht pro Frage eine Tabelle mit den Antworten, ich weiß nicht, ob man das schöner hinbekommt als das von mir vorgeschlagene.)
PS:
Dich zu verstehen ist immer recht schwierig, das meine ich nicht böse, aber dein Deutsch ist nunmal nicht das Beste. Fühl dich nicht angegriffen, aber warum wendest du dich nicht an ein Forum in deiner Muttersprache? Dann wäre es glaube ich auch einfacher für dich. -
MYSQL ist überall zu haben? Weil ich will, wollte das Programm ja auch weitergeben, das war ja auch der Sinn der Frage.
Falls also nicht html, dann ist der Schreibaufwand in jedem Fall geringer, denke ich auch. Danke für Hilfe. -
hbss schrieb:
MYSQL ist überall zu haben? Weil ich will, wollte das Programm ja auch weitergeben, das war ja auch der Sinn der Frage.
Falls also nicht html, dann ist der Schreibaufwand in jedem Fall geringer, denke ich auch. Danke für Hilfe.
MySQL ist überall verfügbar, wo ein MySQL-Server erreichbar ist. -
Kannst du Beispiele für die Alternativen bringen? Ich kann nicht nachvollziehen, wie das ablaufen soll.
Warum müssen es 4 Sätze UND 4 Antwortmöglichkeiten sein? Wäre 1 Satz und 4 Antwortmöglichkeiten nicht viel logischer?
Beitrag zuletzt geändert: 23.5.2013 20:41:46 von bladehunter -
Das habe ich schlecht formuliert.
Das sieht dann so aus:
a sagt was
b sagt was
c sagt was
d sagt was
nun werden 4 sätzen angeboten
e sagt was
f sagt was
g sagt was
h sagt was
Der User sucht nun f aus.
Dann sieht der user:
b sagt was
c sagt was
d sagt was
f sagt was
etc
Also man kann immer die 4 letzten Sätze noch sehen.
Ist das nun besser verständlich.
Deswegen wäre es ja in pure html Rienschreibarbeit.
Gruss und Danke.
-
hbss schrieb:
Also man kann immer die 4 letzten Sätze noch sehen.
Ist das nun besser verständlich.
Okay. Das Wie ist jetzt klarer. Aber das Warum verstehe ich noch nicht. -
Alternative wäre Flash/Actionscript, mit einer internen/externen XML Datei
oder du nimmst static precompiled SQLite binary´s für win/linux/mac
dann haste noch ne db dazu , actionscript kann die auch problemlos ansprechen
wenn du es -> swf exportierst sollten alle Plattformen damit klar kommen,
da das swf format weitgehend verbreitet ist.
Zum Design , da sind dir bei Flash kaum grenzen gesetzt
Öffnen würde sich das "App" im Browser oder mit dem Standalone Player.....
Apple Iphone ?? hmmm Pech gehabt oder haben die es mittlerweile auf die reihe bekommen ?
und bzgl. Dos ?, hmmm ob sich das noch lohnt ? viele standard binary´s gibt es unter vista / win7 garnicht mehr
Beitrag zuletzt geändert: 3.6.2013 8:08:36 von n0tiert -
Was meint Bladehunter bitte mit "Warum"?
Was ist Glade.
Bin drübergestolpert. Sieht ganz gut aus und plattformunabhängig.
Wo kann ich ausser wiki dafür ein Manual finden?
Gruss und Danke. -
hbss schrieb:
Was meint Bladehunter bitte mit "Warum"?
Ich kann nicht nachvollziehen, warum es sinnvoll sein sollte, die Dinge so anzuzeigen, wie du sie beschrieben hast. Du musst dir ja irgendetwas dabei gedacht haben
Was ist Glade.
Bin drübergestolpert. Sieht ganz gut aus und plattformunabhängig.
Wo kann ich ausser wiki dafür ein Manual finden?
Glade ist ein Editor, mit dem man graphische Oberflächen zusammenstellen kann. Er wird insbesondere für Gtk gerne benutzt.
Siehe dazu auch: https://en.wikipedia.org/wiki/Glade_Interface_Designer
Glade wird dir vermutlich aber nicht helfen. -
Danke für die freundliche Hilfe.
Ich tendiere immer mehr zu Java:
a als Applet hochladbar
b ich kann den Code jedem geben und der kann es überall auf Webspace hochladen
c der Code ist unlesbar für Dritte
d programmierbar einfach: Es ist 1200 Sätze inzwischen, ich lege ein array an mit 1200 Feklern und lass das Programm die entsprechenden Sätze rausgreifen und anzeigen.
e
Einen Button kriege ich hin in Java
werde ich den Rest auch leicht lernen können
oder?
Gruss hbss
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage