Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Rotkäppchen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 23.02.2007, 21:22    Titel: Rotkäppchen Antworten mit Zitat

Habe da mal vor langer Zeit ein Programm geschrieben ... ist nicht speziell Q- oder FreeBASIC, eher eine Mischung aus vier verschiedenen Dialekten cool
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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2007, 21:24    Titel: Antworten mit Zitat

ROFL, Schöne idee lachen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 23.02.2007, 21:37    Titel: Antworten mit Zitat

Hätte noch PHP, MySQL und Ruby im Angebot, aber das passt nicht hierher cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 23.02.2007, 21:51    Titel: Antworten mit Zitat

hehe.. sehr schön ! lächeln Ich musste beim Lesen jedenfalls lachen ! lächeln
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.02.2007, 22:02    Titel: Antworten mit Zitat

Fand ich auch sehr schön! Ja!
Und da hier auch noch PHP-/MySQL-Programmierer rumschwirren, kannst auch gerne die 3 anderen Versionen posten, bitte. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 23.02.2007, 22:03    Titel: Antworten mit Zitat

Au ja!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.02.2007, 22:41    Titel: Antworten mit Zitat

vor lachen auf dem Boden rollen vor lachen auf dem Boden rollen Hammer
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2007, 23:09    Titel: Antworten mit Zitat

ABER: Da fehlen noch einige Konstanten durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.02.2007, 23:31    Titel: Antworten mit Zitat

Zum Beispiel, an welchem Offset sich die lokale Instanz von "Wald" befindet. lachen

/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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.02.2007, 23:32    Titel: Antworten mit Zitat

Zum Beispiel, an welchem Offset sich die lokale Instanz von "Wald" befindet. lachen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 23.02.2007, 23:49    Titel: Antworten mit Zitat

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 cool

edit: PHP-Version etwas fehlerreduziert


Zuletzt bearbeitet von nemored am 24.02.2007, 02:07, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.02.2007, 00:40    Titel: Antworten mit Zitat

ä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 durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 24.02.2007, 00:47    Titel: Antworten mit Zitat

Genial find ich die MySQL-Variante happy kurz und simpel happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 24.02.2007, 02:00    Titel: Antworten mit Zitat

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 mit dem Kopf durch die Mauer wollen

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 durchgeknallt

Die Nichtdeklarieren ist schon Absicht, das würde den Lesefluss schon ein Stückchen hemmen. Vielleicht umgehe ich es ja mit einem include grinsen

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 verlegen Werde ich nochmal überarbeiten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 24.02.2007, 11:38    Titel: Antworten mit Zitat

vor lachen auf dem Boden rollen
Am besten find ich irgendwie die mySQL und die PHP variante.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz