 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 23.02.2007, 21:22 Titel: Rotkäppchen |
|
|
Habe da mal vor langer Zeit ein Programm geschrieben ... ist nicht speziell Q- oder FreeBASIC, eher eine Mischung aus vier verschiedenen Dialekten
Code: | 10 REM Rotkaeppchen - ein BASIC-Maerchen
20 ON TIMER 1 GOSUB Schlaftest
30 REM ****************************************
40 LET Maedchen$ = "Rotkaeppchen"
50 PRINT "Komm, Rotkaeppchen, da hast Du ein Stück Kuchen und eine Flasche Wein, die bring ";
60 PRINT "der Großmutter hinaus, sie ist krank und schwach, da wird sie sich daran laben."
70 DIM Korb$(99)
80 FOR I=1 TO 2
90 READ Korb$(I)
100 NEXT
110 LET Korbvoll = 2
120 DATA "Kuchen", "Wein"
130 GOTO Wald
140 REM ****************************************
200 -Wald
210 IF Wolf = Hier THEN
220 PRINT "Rotkaeppchen, hoere, Du hast die schoenen Blumen nicht gesehen, die im Walde stehen, ";
230 PRINT "warum guckst Du nicht einmal um Dich, ich glaube, Du hoerst gar nicht darauf, wie die ";
240 PRINT "Voeglein lieblich singen."
250 GOTO Grossmutter
260 ENDIF
270 RANDOMIZE TIMER
280 DO
290 LET Korbvoll = Korbvoll + 1
300 LET Korb$(Korbvoll) = "Blume " + STR$(RND(999999)+1)
310 IF Korbvoll = 99 THEN EXIT
320 LOOP
330 GOTO Grossmutter
340 REM ****************************************
400 -Grossmutter
410 Bauch$ = INPUT$(Grossmutter)
420 WAIT Rotkaeppchen
430 FOR I=1 TO 4
440 SELECT Frage$(I)
450 CASE "Grossmutter, was hast Du fuer grosse Ohren?":
460 PRINT "Damit ich Dich besser hoeren kann."
470 CASE "Grossmutter, was hast Du fuer grosse Augen?":
480 PRINT "Damit ich Dich besser sehen kann."
490 CASE "Grossmutter, was hast Du fuer grosse Haende?":
500 PRINT "Damit ich Dich besser packen kann."
510 CASE "Grossmutter, was hast Du fuer ein entsetzlich grosses Maul?":
520 PRINT "Damit ich Dich besser fressen kann."
530 Bauch$ = INPUT$(Rotkaeppchen)
540 ENDSELECT
550 SLEEP
560 REM ****************************************
600 LET Jaeger = Im_Haus
610 OPEN Bauch$, "r"
620 WHILE NOT EOF(Bauch$)
630 GET Bauch$, Person$
640 WEND
620 CLOSE Bauch$
630 OPEN Bauch$, "w"
640 FOR I=1 TO 10
650 POKE Stein
660 PUT Bauch$, Stein
670 NEXT
680 CLOSE Bauch$
690 AWAKE Wolf
700 GOTO Brunnen
710 KILL Wolf
720 Tanz(Rotkaeppchen + Grossmutter + Jaeger)
730 SYSTEM
740 REM ****************************************
800 -Schlaftest
810 IF Zuhoerer = Eingeschlafen THEN END
820 RETURN |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.02.2007, 21:24 Titel: |
|
|
ROFL, Schöne idee  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 23.02.2007, 21:37 Titel: |
|
|
Hätte noch PHP, MySQL und Ruby im Angebot, aber das passt nicht hierher  |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 23.02.2007, 22:02 Titel: |
|
|
Fand ich auch sehr schön!
Und da hier auch noch PHP-/MySQL-Programmierer rumschwirren, kannst auch gerne die 3 anderen Versionen posten, bitte.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 23.02.2007, 22:03 Titel: |
|
|
Au ja! |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.02.2007, 23:09 Titel: |
|
|
ABER: Da fehlen noch einige Konstanten  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 23.02.2007, 23:31 Titel: |
|
|
Zum Beispiel, an welchem Offset sich die lokale Instanz von "Wald" befindet.
/edit: Bitte löschen, das ist leider zweimal gekommen... _________________ Eine handvoll Glück reicht nie für zwei.
--

Zuletzt bearbeitet von Mao am 24.02.2007, 14:45, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 23.02.2007, 23:32 Titel: |
|
|
Zum Beispiel, an welchem Offset sich die lokale Instanz von "Wald" befindet.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 23.02.2007, 23:49 Titel: |
|
|
Brunnen fehlt auch, sehe ich.
Freut mich erst mal, dass es euch gefällt. Die PHP-Version ist, denke ich gar nicht so schlecht, bei MySQL ist der Befehlsumfang etwas gering und deshalb auch die Geschichte sehr kurz. Ob sie ausführbar wäre, wage ich stark zu bezweifeln.
Ruby gefällt mir am besten, war auch die erste. Irgendwann will ich noch mal eine Geschichte in Scheme schreiben ... wenn ich nur noch wüsste, wie das geht ...
Dann also auf mehrfachen Wunsch:
Code: | // Rotkaeppchen - ein PHP-Maerchen
foreach ($maerchengestalt as $maedchen) {
if ($maedchen['kappe']['farbe'] == 'rot') {
$maedchen['name'] = 'Rotkaeppchen';
break;
}
}
$grossmutter['gesundheit'] = 'krank';
echo 'Komm, Rotkaeppchen, da hast Du ein Stück Kuchen und eine Flasche Wein, die bring '.
'der Großmutter hinaus, sie ist krank und schwach, da wird sie sich daran laben.';
$maedchen['korb'] = array();
$maedchen['ort'] = 'Wald';
include $wolf;
if ($wolf['ort'] == $maedchen['ort']) {
echo 'Rotkaeppchen, hoere, Du hast die schoenen Blumen nicht gesehen, die im Walde stehen, '.
'warum guckst Du nicht einmal um Dich, ich glaube, Du hoerst gar nicht darauf, wie die '.
'Voeglein lieblich singen.';
}
$maedchen['korb'] = array_merge($maedchen['korb'], ('Kuchen, Wein'));
$wolf['ort'] = 'Grossmutters_Haus';
array_push($wolf['bauch'], $grossmutter);
while (isset($blume)) {
pflueck($blume);
$maedchen['korb'] = array_merge($maedchen['korb'], $blume);
if (maedchen['korb']['Freier_Platz'] == 0) break;
}
$maedchen['ort'] = 'Grossmutters_Haus';
while (isset($frage)) {
switch ($frage) {
case 'Grossmutter, was hast Du fuer grosse Ohren?':
echo 'Damit ich Dich besser hoeren kann.';
break;
case 'Grossmutter, was hast Du fuer grosse Augen?':
echo 'Damit ich Dich besser sehen kann.';
break;
case 'Grossmutter, was hast Du fuer grosse Haende?':
echo 'Damit ich Dich besser packen kann.';
break;
case 'Grossmutter, was hast Du fuer ein entsetzlich grosses Maul?':
echo 'Damit ich Dich besser fressen kann.';
array_push($wolf['bauch'], $maedchen);
unset($frage);
break;
}
}
sleep($wolf);
require $jaeger;
opendir($wolf['bauch']);
array_pop($wolf['bauch']);
array_pop($wolf['bauch']);
while (wolf['bauch']['Freier_Platz'])
array_push(wolf['bauch'], 'Stein');
}
closedir($wolf['bauch']);
$wolf['ort'] = 'Brunnen';
die($wolf);
tanz($maedchen, $grossmutter, $jaeger);
|
Code: | -- Rotkäppchen - ein (My)SQL-Märchen
--
SELECT maedchen FROM maerchengestalten WHERE kaeppchen='rot'
INSERT INTO korb VALUES ('Kuchen', 'Wein')
UPDATE maedchen SET ort='Wald'
SHOW blumen
INSERT LOW_PRIORITY INTO korb SELECT ('Blumen')
UPDATE wolf SET ort='Grossmutters Haus'
DELETE QUICK FROM bett WHERE person='Grossmutter'
REPLACE INTO bett SET person='wolf'
UPDATE maedchen SET ort='Großmutters Haus'
SELECT frage FROM maedchen
WHERE wortlaut='Grossmutter, was hast Du fuer grosse Ohren?'
EXPLAIN 'Damit ich Dich besser hoeren kann.'
SELECT frage FROM maedchen
WHERE wortlaut='Grossmutter, was hast Du fuer grosse Augen?'
EXPLAIN 'Damit ich Dich besser sehen kann.'
SELECT frage FROM maedchen
WHERE wortlaut='Grossmutter, was hast Du fuer grosse Haende?'
EXPLAIN 'Damit ich Dich besser packen kann.'
SELECT frage FROM maedchen
WHERE wortlaut='Grossmutter, was hast Du fuer ein entsetzlich grosses Maul?'
EXPLAIN 'Damit ich Dich besser fressen kann.'
DELETE QUICK FROM bett WHERE person='Rotkaeppchen'
LOCK 'Wolf'
INSERT INTO haus VALUES ('Jaeger')
SELECT * FROM wolfbauch
INSERT INTO wolfbauch VALUES ('Stein', 'Stein', 'Stein', 'Stein', 'Stein')
LOAD gewehr
USE gewehr
SHUTDOWN |
Code: | #! /usr/local/bin/ruby
# Rotkaeppchen - ein Ruby-Maerchen
require './gebrueder.grimm.rb'
Time.set('Vor langer, langer Zeit')
rotkaeppchen = Person.new('klein', 'Mädchen', 'rotes Käppchen')
grossmutter = Person.new('alt', 'krank')
mutter = Person.new('Mutter')
mutter.sagt(rotkaeppchen) {
'Komm, Rotkaeppchen, da hast Du ein Stueck Kuchen und eine Flasche Wein, /
die bring der Großmutter hinaus, sie ist krank und schwach, da wird sie /
sich daran laben.'
}
korb = Gegenstand.new
korb.packe('Kuchen').packe('Wein')
wald = Ort.new('dunkel', 'finster')
rotkaeppchen.moveto(wald)
wolf = Person.new('hungrig', 'böse')
if wolf.ort == rotkaeppchen.ort
wolf.sagt(rotkaeppchen) {
'Rotkaeppchen, hoere, Du hast die schoenen Blumen nicht gesehen, die /
im Walde stehen, warum guckst Du nicht einmal um Dich, ich glaube, Du /
hoerst gar nicht darauf, wie die Voeglein lieblich singen.'
}
end
wolf.moveto('Großmutters Haus')
catch(:grossmutter) do
grossmutter.moveto(wolf.bauch)
end
korb.packe('Blume') unless korb.voll
rotkaeppchen.moveto('Grossmutters Haus')
antwortkatalog = {
'Grossmutter, was hast Du fuer grosse Ohren?' =>
'Damit ich Dich besser hoeren kann.',
'Grossmutter, was hast Du fuer grosse Augen?' =>
'Damit ich Dich besser sehen kann.',
'Grossmutter, was hast Du fuer grosse Haende?' =>
'Damit ich Dich besser packen kann.',
'Grossmutter, was hast Du fuer ein entsetzlich grosses Maul?' =>
'Damit ich Dich besser fressen kann.'
}
antwortkatalog.each { |frage, antwort|
rotkaeppchen.sagt(wolf) { frage }
wolf.sagt(rotkaeppchen) { antwort }
}
catch(:rotkaeppchen) do
rotkaeppchen.moveto(wolf.bauch)
end
wolf.sleep
jaeger = Person.new('Jäger')
brunnen = Ort.new
wolf.bauch.open
wolf.bauch.each { |inhalt|
inhalt.moveto('Großmutters Haus')
}
$stdout = wolf.bauch
unless wolf.bauch.voll
stein = Gegenstand.new
def stein.brunnen2wolfbauch
throw :stein
end
catch(:stein) do
stein.brunnen2wolfbauch
end
end
$stdout = STDOUT
wolf.bauch.close
wolf.awake
wolf.moveto(brunnen)
wolf.kill(self)
rotkaeppchen.tanzmit(grossmutter).tanzmit(jaeger)
puts 'Sie leben noch heute' unless rotkaeppchen.tot or grossmutter.tot or jaeger.tot |
P. S.: Die Ruby-Version ist lauffähig, wenn man die richtige gebrueder.grimm.rb besitzt
edit: PHP-Version etwas fehlerreduziert
Zuletzt bearbeitet von nemored am 24.02.2007, 02:07, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.02.2007, 00:40 Titel: |
|
|
äh also in der php-version hab ich ein paar fehler entdeckt, zum beispiel IF-Abfrage mit einfachem =. und die ganzen arrays sind auch net deklariert. und was soll array_merge($korb, "kuchen, wein"? die sind doch schon drin  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 24.02.2007, 00:47 Titel: |
|
|
Genial find ich die MySQL-Variante kurz und simpel  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 24.02.2007, 02:00 Titel: |
|
|
Jojo hat Folgendes geschrieben: | äh also in der php-version hab ich ein paar fehler entdeckt, zum beispiel IF-Abfrage mit einfachem =. |
*grummel* ich hasse diesen Fehler
Jojo hat Folgendes geschrieben: | und die ganzen arrays sind auch net deklariert. und was soll array_merge($korb, "kuchen, wein"? die sind doch schon drin  |
Die Nichtdeklarieren ist schon Absicht, das würde den Lesefluss schon ein Stückchen hemmen. Vielleicht umgehe ich es ja mit einem include
Mit dem array_merge hast du natürlich Recht. Erst habe ich das Korbarray mit Wein und Kuchen angelegt und dann beschlossen, Wein und Kuchen erst später einzuführen. Allerdings habe ich vergessen, sie oben wieder herauszunehmen Werde ich nochmal überarbeiten. |
|
Nach oben |
|
 |
The real Agent D

Anmeldungsdatum: 24.11.2005 Beiträge: 605 Wohnort: Hall i. T.
|
Verfasst am: 24.02.2007, 11:38 Titel: |
|
|
Am besten find ich irgendwie die mySQL und die PHP variante. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|