Liedzeile (Anthea, 14. Jan 1995, 01:01:20):
[Verlegt von allgemeines, Schrumpfi, 12. Jan 1995, 23:12:18]:
m ist eindeutig von den sexpistols anarchie in the UK


-----------------------------------------------------------------------------



Quiz/Raetsel (Anthea, 14. Jan 1995, 01:01:22):
[Verlegt von allgemeines, Anatol, 13. Jan 1995, 00:28:26]:

Hiho!
Nachdem Raetsel grade 'in' sind...mal ein richtig schweres:

Wer knackt diesen Code?

2 3 4 1 3 4 4 2 2 1 4 1 1 3 4 1 3 3 4 4 2 4 1 2 3 4 1 2 4 1 4 3 2 4 4
1 3 2 4 2 2 4 2 3 4 1 3 1 4 4 3 4 1 1 3 4 1 1 4 1 2 4 4 4 2 2 1 4 1 1
3 4 1 3 3 4 4 1 4 1 2 3 4 1 2 4 4 1 2 3 4 1 2 4 1 4 3 3 4 3 3 4 2 2 1
4 4 2 1 4 1 1 3 4 1 1 3 4 1 1 4 4 4

Tips:
Biologen sind klar im Vorteil.
Gelesen wird er wie ein normaler deutscher Text: von links nach rechts und
von oben nach unten.

Wetten, dass ihn keiner knackt?

           Anatol (ueberzeugt)



-----------------------------------------------------------------------------



Re: Preisraetsel (Anthea, 14. Jan 1995, 01:01:49):
#! rn=Oetti rt=789928007
[Verlegt von allgemeines, Engywuck, 13. Jan 1995, 10:46:05]:
Also:
e. Irgendwas von Pink Floyds "The wall".
n. Reinhard Mey, "Ueber den Wolken"
o. Rolling Stone "Under my thumb"

Tja...war wohl nicht sehr gut, oder?

Tschuessi, Engy


-----------------------------------------------------------------------------



Re: Quiz/Raetsel (Anthea, 14. Jan 1995, 01:02:09):
#! rn=Anatol rt=789953306
[Verlegt von allgemeines, Beldin, 13. Jan 1995, 10:10:02]:
Hmmmmmmm....

Code? Was soll denn rauskommen? Irgendwas sinnvolles?
Oder vielleicht nur eine Zeichenkette, welche vornehmlich aus den vier
Buchstaben "A G C U" besteht - in wechselnder Reihenfolge?
Das waere naemlich so das einzige was mir zum Thema 'Biologie' und den Zahlen
1,2,3,4 einfallen wuerde.
Dann waere das hier ja eine *grins* DesoxyriboNukleinSaeure-Sequenz (ich
hasse dieses Wort...).

Beldin... (Jurist, der muehsam seine Kenntnisse aus dem Bio-LK reaktivierte)

:)


-----------------------------------------------------------------------------



Re: Quiz/Raetsel (Anthea, 14. Jan 1995, 01:03:16):
#! rn=Anatol rt=789953306
[Verlegt von allgemeines, Anatol, 13. Jan 1995, 15:22:44]:

*grmpf*
Ok.
Es sollte ein sinnvoller deutscher Satz rauskommen. Nur DNA-Buchstaben sind
ein bisschen duerftig...naja.
Ich setze einfach mal ein paar Muenzen aus. Der erste, der mit die Loesung
(natuerlich mit Weg) zuschickt, bekommt eine kleine bescheidene Summe.
Sagen wir mal 50000.
Eventuelle 'Nachfragen' bitte auch nur gemailt. Sonst kriegen hier noch ein
paar einen Herzkasper. Und das wollen wir nicht, oder?

Anatol (traeumt von einer schoenen neuen Welt)



-----------------------------------------------------------------------------



Re: Preisraetsel (Anthea, 14. Jan 1995, 01:03:22):
[Verlegt von allgemeines, Arombolosch, 13. Jan 1995, 19:04:03]:
a) 51st State of America, New Model Army ( YEAH !!! ;)
g) HYPER HYPER ! (Yuk ;)

Mehr weiss ich nicht. :)

Arombolosch


-----------------------------------------------------------------------------



Re: Preisraetsel (Anthea, 14. Jan 1995, 01:03:27):
#! rn=Oetti rt=789928007
[Verlegt von allgemeines, Anthea, 14. Jan 1995, 00:52:10]:
Ihr seid doch alle Ignoranten und kennt keine gute Musik mehr:
Lied o ist eindeutig von den BEATLES und zwar: Norwegian Wood.
Anthea


-----------------------------------------------------------------------------



Liedquiz (Schrumpfi, 14. Jan 1995, 04:47:17):
Mag auch mitmachen :)
Aaaalso....
a) A ragged cup a twisted mop, face of Jesus in my soup
b)  Zwei Beamte in Zivil schieben sanft den alten Mann zur Maschine ins Exil
wo er gluecklich sterben kann... (Kretek, is was fuer Dich ;) )
c) Standing on the beach with a gun in my hand..
d) Ich war in meinem ersten Leben ein Kohlweissling rein wie Schnee, ich
starb an einem Fruehlingsmorgen an einem Koernchen DDT...
e) Weisst du noch damals? Am azurblauem Meer? Es war genauso schoen wie beim
ersten mal..
f) Now theres 1984, are you ready for the 3rd WW, you two will meat the
secret  police, they'll come and they jail you nice, go quietly to boot camp -
they shoot you dead make you a man, dont......(Schon wieder was fuer dich
Kretek;) )
g) I hear you calling marian...
h) Mensch Meier kam sich vor wie ne Oelsardine irgendjemand stand auf seinem
rechten grossen Zeh, dass passierte ihm auch noch in aller Herrgottsfruehe im
29er kurz vor Wannensee ...
j) Und als ich mich an dich verloren hab ich einen andern gedacht, so ward
die Luege geboren, schon in der ersten Nacht..
i) Oh brother be a brother fill this tiny cup of mine and please sir make it
whisky i have no head for wine....
So ratet mal brav :) wer die meisten weiss kriegt von mir 5000 Muenzen wer
alleweiss 20000 :)
Schrumpfi

-----------------------------------------------------------------------------



Loesung (Oetti, 14. Jan 1995, 13:43:48):
Hier die Loesung meines Raetsel, uebrigens ist Boing der Gewinner mit 3 aus
40. glaub ich...

a.) New Model Army, 51st State
b.) In the dutch mountains, The Nits
c.) Fred vom Jupiter, Die Doraus und die Marinas
d.) The name of the game, Abba
e.) Pink Floyd, Nobody Home
f.) Would you be my girl (Sally), The Police
g.) Hyper Hyper, Scooter
h.) Heinz Rudolf Kunze, Keine Angst
i.) Il, Les negresses verte
j.) BAP, Muesli Man
k.) Aerzte, Ich weiss nicht ob es Liebe ist
l.) Queen, Somebody to love
m.) Anarchy in the UK, Sex Pistols
n.) Rheinhard Mey, Ueber den Wolken
o.) Norwegian Woods, The Beatles

Ich fands nicht soo schwer, klar ich mag die ganzen Lieder ja auch :-)))

Ciao Oettl

-----------------------------------------------------------------------------



Schrumpfi Quiz (Oetti, 14. Jan 1995, 13:50:31):
Schrumpfi Quiz:

c.) Cure, Killing an Arab (Goooil)
g.) Sisters of Mercy, Marian (Yeah)
h.) Ton Steine Scherben, Dieser Schwarzfahrer Song, wie heisst er denn...
i.) Whisky in the Jar...?, Is doch ein Irischer Folksong, oder Schottisch
*argl*

mehr weiss ich glaub ich nicht

Ciao

Oettl

-----------------------------------------------------------------------------



Liedquiz (Schrumpfi, 14. Jan 1995, 15:46:27):
Yeah Oetti hat drei richtige :)
Der Song von den Ton-Steine-Scherben heisst 'Mensch Meier'
Schrumpfi

-----------------------------------------------------------------------------



Re: Liedquiz (Zardoz, 16. Jan 1995, 09:07:05):
#! rn=Schrumpfi rt=790055237
Ich hab nur eins erkannt:
f) Dead Kennedys: We've got a bigger problem now :-)

-----------------------------------------------------------------------------



Noch ein Raetsel (Zardoz, 16. Jan 1995, 09:20:28):
Und noch ein schoenes Liederraetsel:
a) Israel must unite
b)what would daddy say if I blew mom away?
c)how did the cat gets so fat?
d)I'll believe in god when 1+1=5
f)I am Emperor Ronald Reagan, born again with fascist cravings (fuer
Schrumpfi)
g)what's the problem, oh my god?
h)all I know is that I don't know nothing
i)the only hazard I see ist yourself
j)she said,"I'll never forget the first time you kissed me,
  now I want you to fist me."
k)don't wanna end up downtown unwound found drowned
l)look at him he's insane
m)airplanes falling from the sky
Viel Spass :-)

-----------------------------------------------------------------------------



Re: Loesung (Boing, 16. Jan 1995, 14:36:58):
#! rn=Oetti rt=790087428
Kann nicht sein, ich hatte doch nur 2 Richtige ... (eigentlich nur 1 1/2,
bei Pink Floyd hatte ich den falschen Titel (aber die richtige platte)).
  Boing

-----------------------------------------------------------------------------



Naechste Zeile? (Highlander, 17. Jan 1995, 15:08:13):
So, ich hab auch noch eines, aber ich aendere die Regeln mal eben leicht:
Ich moechte zu Interpret/Titel auch noch die naechste Zeile, bitte :>
Und: Bekannt sind alle Stuecke, ich greife also nicht auf obskure
Heavy-Metal-oder-was-weiss-ich-Gruppen zurueck ;>
Bei einem reicht mir im Prinzip naechste Zeile und Stueck, wer mehr weiss,
soll's schreiben :>
OK, here we go:
a)
Hoppla...
a) Ja, wir lieben uns nur von der Fern
b) Heavy Metal, Suicide,
c) Wir betreten feuertrunken
d) Beim Barte des Propheten
e) Knows not where he's going to
f) There's just one solution that can't be avoided
g) I am a satellite
h) Dass der Herrgott den Weg in den Himmel Dir bahne
i) That ain't working
j) Can you work some magic with your own two hands
k) I'll give my cousins a free ride
Das war's schon :>  Na, OK, eines ist ein bisschen schwer und eines ziemlich
ungewoehnlich :>

  Highlander

-----------------------------------------------------------------------------



Re: Naechste Zeile? (Aranya, 17. Jan 1995, 15:16:32):
#! rn=Highlander rt=790351693
c) L.v.Beethoven: Ode an die Freude, Himmlische, dein Heiligtum
h) Udo Juergens: Aber bitte mit Sahne, Aber bitte mit Sahne
g) Queen: Bohemian Rhapsody, I'm out of control (?)

Aranya
      Froh, dass sie auch mal was weiss.

-----------------------------------------------------------------------------



Re: Re: Naechste Zeile? (Aranya, 17. Jan 1995, 15:19:48):
#! rn=Aranya rt=790352192
Vielmehr:
g) Queen: Don't stop me now, Ready to reload.

Sorry fuer Irrtum!

-----------------------------------------------------------------------------



Re: Highlander Quiz (Oetti, 17. Jan 1995, 16:00:30):
Huhu

c.) ,himmlische Dein Heiligtum, L.v.B, Symphonie Nr. 9 Schlusssatz Ode an die
Freude (Schiller)
Queen, Dont stop me now, on my way to Mars, on a
collision course I'm outta control, I'm a Sex machine...

-----------------------------------------------------------------------------



Re: Re: Naechste Zeile? (Yantro, 17. Jan 1995, 17:40:12):
#! rn=Aranya rt=790352192
hi,

b) ist we didn't start the fire von billy joel
g) ist zwar Queen, aber Don't stop me now (I'm out of control ist richtig)

-----------------------------------------------------------------------------



 (Schrumpfi, 17. Jan 1995, 17:53:23):
Liedquiz Aufloesung
Ok hier meine Aufloesung:
a) Nick Cave - Mercy-Seat
b) Razzia - fahnensong
c) Cure - Killing an Arab
d)Franz Morak - Der Kohlweissling und die Apokalypse
e) Peter Alexander - Liebe kommt so wie ein bunter Schmetterling
f) Dead Kennedys - California ueber alles
g) Sisters of Mercy - Marian
h) Ton-Steine-Scherben - Mensch Meier
j) Zarah Leander - Nur nicht aus Liebe weinen
i) Nick Cave - Brother my Cup is empty

Damit ist Oetti, mit drei richtigen, derGewinner :)
Schrumpfi

-----------------------------------------------------------------------------



Re:  (Kretek, 17. Jan 1995, 18:19:43):
#! rn=Schrumpfi rt=790361603
Schrumpfi, Schrumpfi...
Wenn man hier schon Quizzes veranstaltet und dann die Loesungen
praesentiert, sollten sie aber _richtig_ angegeben werden!
Fuer alles: Das Stueck von Razzia heisst nicht "Fahnensong", sondern
"Fahnensog"!

c u l8er,
Kretek (Razzia-Fan)

-----------------------------------------------------------------------------



 (Schrumpfi, 17. Jan 1995, 18:20:15):
Liedquiz Aufloesung
b) ist natuerlich Fahnensog und nicht Fahnensong

-----------------------------------------------------------------------------



Re: Re:  (Kretek, 17. Jan 1995, 18:20:37):
#! rn=Kretek rt=790363183
PS: :))

-----------------------------------------------------------------------------



 (Schrumpfi, 17. Jan 1995, 18:21:37):
Liedquiz
Sorry Kretek hab mich vertippt

Schrumpfi verbeugt sich sogar vor Razzia ;-)

-----------------------------------------------------------------------------



 (Georg, 18. Jan 1995, 09:21:21):
So jetzt will ich auch mal ein Raetsel stellen. (Ja,ja ich weiss
die Quiz-Mania ist shon wieder vorbei)
Es gibt sogar was zu gewinnen!!
1.Preis: (bei 10 Richtigen) Eine Ueberraschung!
2.Preis: Einen Stab.
3.Preis: Ein T-Shirt (selbst bedruckbar!)

Also hier die Fragen:
1) the white man ome to pillage my village
2)... victory through domination ...
3)my underwear and the garden fence
4)when the rain comes i sit home and pray
5)the water is so yellow, i'm a healthy student
i love me, i love me, i love me
waiter, there's a terrorist in my soup
8) just a proove, the war was here
9)Only so many songs can be sung with ...
10) Ich bin ein Mutterbeischlafendes Erfrischungsgetraenk auf
    Schwarzteebasis, Prostituierte

mist... ich merke gerade, dass ich ein paar zeilennummern vergessen habe.
egal.

JEHOVA sei mit Euch! Georg

P.S.: Pteppic darf nicht mitmachen ! :)
P.S.S.: 1,2 sind speziell fuer Zardoz und Toeter ! :)

-----------------------------------------------------------------------------



artikel 26 nach quiz (Pteppic, 18. Jan 1995, 12:38:24):
Also das von Georg ist ja Rassismus pur. Ich darf als einziger nicht
mitmachen... :)
So hier kommt mein eigenes Raetsel... Ueber die Belohnung muss ich noch mit
Georg reden ...

a) drug me with your crossword puzzles...
b)aqua sea foam shame
c)love puppet with no strings thats what the spiral-eyed girl sings
d)the pallaces now stand where the coffins all were laid
e)an the tears he cried will rain on walls
f)fuck americanism fuck nationalism
g)don't you know that the time has arrived
h) with rewritten histories and a fictional past
i) our protagonist named bill
j) ah, ah, ah, ah, yeah, yeah, oh shit, oh, oh, oh, oh     :)


viel spass

JEHOVA sei mit allen Zeitungslesern
             euer Pteppic

-----------------------------------------------------------------------------



Ich will auch mal! (Boing, 18. Jan 1995, 14:39:55):
Halloli!
Jetzt will ich doch auch mal ein Quiz machen, Antworten bitte nicht in diese
Rubrik sondern direkt per mail an mich, sonst ist hier immer alles so schnell
zugemuellt. Der Gewinner bekommt ein von mir handgenaehtes Kissen ... ;)
Oder lieber ein bei Klonks legendaerer Hamburger-Fete entstandenes MonCherie?
Naja, nach Wahl ... ;)

a) Deaf, dumb and blind
b) This will be all that I fled from
c) You're a thousands mind within a flash
d) They say jump, you say how high
e) The lunatic is on the grass
f) Do you want to be hypnotized?
g) She'll pray for endless sundays
h) Burn you racist bitch
i) And I let go
j) Hot air for a cool breeze?
k) The graves were disturbed and the coffins wide open    :)
l) Rael Imperial Aerosol Kid
m) Chants rise in terror, pray round the oaken beam
n) I can't stand it, I know you planned it
o) I trusted my venus was untouched in her shell
p) What price the crown of a king on his throne,
   when you're chained in the dark all alone
q) With the shimmering silver head of wisdom looking at me
r) He converteth me to lamb cutlets
s) They like a nigga like me 'cause I'm a known crook

  Boing

-----------------------------------------------------------------------------



nochn Quiz (Oetti, 18. Jan 1995, 15:04:56):
Huhu Kinnings !
Diemal nicht Liedzeilen sondern Passagen aus beruehmter Literatur und/oder
Filmen.

1.) I'll be back...
2.) When shall we three meet again,...
3.) Ich bin das Baby, ihr muesst mich alle Liebhaben.
4.) Oh Gott, lass mich sterben... :-))
5.) Don't mention the war (schwierig)
6.) Nudge, Nudge, know what I mean...
7.) Jehova, Jehova
8.) Schau mir in die Augen, kleines (musste sein)
9.) Titten, Titten, Titten
10.) hmmmm,hmmmmm, ich hab's !!

Viel spass beim Raetseln

Oetti

-----------------------------------------------------------------------------



 (Schrumpfi, 18. Jan 1995, 16:01:04):
Oettis Quiz

3) Die Dinos
7) Das Leben des Brian
8) Casablanka
9) Der bewegte Mann von Ralf Koenig

Schrumpfi

-----------------------------------------------------------------------------



Re: nochn Quiz (Schlonz, 18. Jan 1995, 17:01:17):
#! rn=Oetti rt=790437896
2. Mc Beth
3. Dinos
7. Live of Brian
8. assablanca
9. Der bewegte Mann

Schlonz

-----------------------------------------------------------------------------



Re: Re: nochn Quiz (Schlonz, 18. Jan 1995, 17:02:19):
#! rn=Schlonz rt=790444877
8. nicht assablanca sondern Cassablanca, sorry

-----------------------------------------------------------------------------



 (Elric, 18. Jan 1995, 17:48:29):
georg-quiz
Nicht nur fuewr Zardoz&Toeter...
1 : NOFX, Kill All The White Man (mit a)
2: Bad Religion, Land of Competition.
Das letzte koennte von Blumfeld sein. Oder Sterne ?

Eigentlich keine Ahnung,
         Elric.

-----------------------------------------------------------------------------



Re: nochn Quiz (Ratz, 18. Jan 1995, 18:38:40):
#! rn=Oetti rt=790437896
das letzte mit koennte aus der Fehrnsehserie Wicki stammen!

-----------------------------------------------------------------------------



Re: Re: nochn Quiz (Caradhras, 19. Jan 1995, 04:07:36):
#! rn=Ratz rt=790450720
Koennte nicht nur, das stammt von Wickie :) Immer wenn ihm was neues
einfiel.
 :-) Ansonsten kenn ich zwar alles schon genannte, aber nix neues :(

   *seufz*      Caradhras der ewige Prophet -
           nachdenklich die Nase reibend     *schnipps* Ich habs! :)

-----------------------------------------------------------------------------



Re: nochn Quiz (Georg, 19. Jan 1995, 11:22:07):
#! rn=Oetti rt=790437896
Tja 2 weiss ich ! :)


Jehova, Jehova -> Das Leben des Brian. :)
Schau mir in die augen Kleines -> Mephis, H.B. :)

JEHOVA sei mit euch

georg

-----------------------------------------------------------------------------



Re: nochn Quiz (Highlander, 19. Jan 1995, 11:25:17):
#! rn=Oetti rt=790437896
1) Terminator
2) MacBeth
7) Life of Brian
8) :) Weisses Haus
10. Wicki

HrT

-----------------------------------------------------------------------------



Re: nochn Quiz (Aranya, 19. Jan 1995, 13:16:35):
#! rn=Oetti rt=790437896
Also 2 ist klar: Macbeth, Anfangszeilen. Und 8 muss ja nicht erwaehnt werden:
4x im Weissen Haus.

Nur so. Aranya

-----------------------------------------------------------------------------



Re:  (Bungle, 19. Jan 1995, 20:40:16):
#! rn=Georg rt=790417281
Hallo!

Man was bin ich froh : Nummero 9 ist NoMeansNo ! ...with two lips,two lungs
and one tongue!
Nr. 7 wuerd ich ja sagen von Ludichrist 'Immaculate Deception', aber da hiess
es ..there's a god in my soup... :) naja vielleicht gibt's ja 'n Trostpunkt.
Nr. 1 : Bad Brains ???
Menno was schreib ich ueberhaupt, ich weiss ja doch nix, sorry... :)
Tschuessi, Bungle.

-----------------------------------------------------------------------------



Re: Ich will auch mal! (Felagund, 20. Jan 1995, 07:43:22):
#! rn=Boing rt=790436395
ich weiss auch mal was:
g:.. as she enters saffron sunsets... ist von marillion's chelsea monday!
und das eine is von den beatles i say yes,you say no oder so-
war wohl nich so doll.....YTF(hab ich mir mal ausgeborgt catweazle)

-----------------------------------------------------------------------------



Re: Ich will auch mal! (Boing, 23. Jan 1995, 22:28:49):
#! rn=Boing rt=790436395
Hier die Antworten zu meinem Quiz, ich bezieh mich auf meinen eigenen
Artikel, falls jemand noch mal schauen will. Bei a) hab ich auch Pinball
wizard von The
Who gelten lassen.

a) Dogs, Pink Floyd
b) One for the Vine, Genesis
c) Here comes the Flood, Peter Gabriel
d) Bullet in the Head, Rage against the machine
e) Brain Damage, Pink Floyd
f) Adam in Chains, Billy Idol
g) Chelsea Monday, Marillion
h) Momma's gotta die tonight, BodyCount
i) Love to be loved, Peter Gabriel
j) Wish you were here, Pink Floyd
k) Dead man's Dream, Procol Harum
l) The Lamb lies down on Broadway, Genesis
m) Grendel, Marillion
n) Sabotage, Beastie Boys
o) Modern Love, Peter Gabriel
p) The Cask of Amontillado, Alan Parson's Project
q) Supper's ready, Genesis
r) Sheep, Pink Floyd
s) Bowels of the Devil, BodyCount

  Boing

PS: Ach ja! Sieger ist Klonk mit 6 Richtigen!

-----------------------------------------------------------------------------



Re: Naechste Zeile? (Jimdigriz, 26. Jan 1995, 12:15:37):
#! rn=Highlander rt=790351693
hmmm eins faellt mir ein:

e> Beatles, Nowhere Man, Zeilen:
Knows not where he's going to, doesn't have a point of view , nowehere man
.... (oder war das die zeile davor ?)

Ciao, JimdiGriz (oops evtl hat schon jmd geantwortet, hab noch
garnichweitergeleden)

-----------------------------------------------------------------------------



Quiz (Li, 26. Jan 1995, 15:15:10):

*****************************************************************************
*             MORGEN,  12 UHR,    GROSSES TOLKIEN-QUIZ                      *
*                                                                           *
*        WO?:   Festsaal der Unterwelt                                      *
*        Wann?  Freitag, 27.1.95 , 12 Uhr                                   *
*        Inhalt: Der Herr der Ringe (exklusive Anhaenge)                    *
*                                                                           *
* Mitmachen kann natuerlich jeder: Spieler, Seher, Magier und Goetter       *
*                                                                           *
* Damit das Ganze auch einen Reiz hat, erhaelt der Gewinner ein Amulett     *
* mit dem aufgravierten Wappen von Koenig Elessar (Aragorn II.)             *
*                                                                           *
*****************************************************************************


-----------------------------------------------------------------------------



Tolkien-Quiz (Caradhras, 26. Jan 1995, 16:37:32):
                       Halloechen

Da alle Welt quizzt, moechte ich auch eines machen, natuerlich ueber
Tolkien, besser gesagt Mittelerde :) Einige Fragen sind ziemlich heftig,
dafuer gibts dann auch ne Belohnung fuer die ersten 4 Plaetze. Wenn
mehrere punktgleich sind, lose ich. Magier und Goetter duerfen mitmachen,
kriegen aber keine Preise (bzw. geben freiwillig (per Definition) ihre
Preise weiter an die naechsten Spieler ;-) )
Noch etwas: Ich verteile auch Teilpunkte, also wer ne Frage nicht 100
prozentig beantworten kann... nicht so schlimm. Dafuer sind es aber
40!! Fragen. Preise sind auch entsprechend. *grins*

Antworten bitte nur per Brief an mich, Reply-Artikel zaehlen nicht.
Einsendeschluss naechster Montag, High Noon (damit man zuhause auch
nachkucken kann)

Preise zu gewinnen gibt es:

1. Platz: 20.000 Muenzen oder
         1 Blutsauger-Schwert, 1 Krone mit 5 Kristallen, 1 Steinbeisser-
         Amulett und glaenzende Stiefel

2. Platz: 15.000 Muenzen oder
         1 Krone mit 5 Kristallen, 1 Steinbeisser-Amulett, Eispanzer
         und glaenzende Stiefel

3. Platz: 10.000 Muenzen oder
         1 Steinbeisser-Amulett, Lichtpanzer, glaenzende Stiefel und
         Lederhandschuhe
und
4. Platz:  5.000 Muenzen oder
         1 Steinbeisser-Amulett und Lederstiefel


 1) Wie heissen die 3 Berge von Moria? (auf Sindarin)?
 2) Wie heissen die 3 Berge in der Zwergensprache und auf Deutsch?
 3) Wie heissen die 9 Gefaehrten?
 4) Wieviele Silmaril gab es?
 5) Wie starb Feanor?
 6) In welche 3 Teile zerfiel Arnor?
 7) Nenne mir 5 Valar!
 8) Wer erschlug Ancalagon?
 9) Was ist ein Balrog? Welcher Rasse gehoert er an?
10) Nenne mir 3 der Istari (Zauberer)
11) Wieviele Istari gibt es?
12) An welchem Fluss liegt das Bockland? (2 Namen)
13) Was fuer Heere sind gemeint bei 'Die Schlacht der 5 Heere'?
14) Wer toetete Smaug?
15) Wie hiess das Schwert Fingolfins?
16) Wen heiratete Sam Gamdschie?
17) Nenne mir 2 andere Namen fuer Aragorn!
18) Wie heisst der Schlachtruf der Zwerge? (4 Worte)
19) Wieviele Kinder hatte Sam?
20) Welche 2 Geburtstage feierten Frodo und Bilbo im Jahre 3018?
21) Wie heisst der Koenig von Westernis bei dessen Untergang?
22) Wie heissen die begleiter thorin eichenschilds und Bilbos auf
    der Fahrt zum Berg Erebor?
23) Wie heisst der Vater von Legolas?
24) Ein anderer Name Gollums.
25) Wie nennt Baumbart Lorien?  (fies ;-)
26) Wen heiratet Elrond? Wer war die Mutter von ihr?
27) Wie heissen die Kinder Hurins?
28) Wen heiratete Thingol?
29) Wieviele Kinder hatte Finwe? Wie heissen sie?
30) Wer ist der Vater von Galadriel?
31) Nenne mir 3 andere Namen fuer Bruchtal.
32) Der Name der 2 Baeume von Valinor?
33) Wie heisst der Herr der Adler in der Altvorderenzeit?
    (Tip: Er hatte sein Nest in den Gipfeln der Thangorodrim)
34) Name des Speers Gil-Galads
35) Wie heissen die Hallen von Koenig Theoden und in welcher
    Stadt liegen sie?
36) Wie heisst der Wirt des Taenzelnden Ponys?
37) Anderer Name fuer die Wetterspitze?
38) Wie heisst die Stadt inmitten der umzingelnden Berge?
39) Name der Maia der Sonne und des Mondes?
40) Wer war der weiseste der Maia?


Ein kalter Wind blies hinter ihnen her, als sie dem Rothornpass den
Ruecken wandten und muede den Hang hinunterstolperten.
Caradhras hatte sie besiegt.


Viel Spass :) Und bitte nicht in die Rubrik Quiz antworten, Loesung
kommt am Montag von mir. Rest wie gesagt per Brief.

          Caradhras - der hoechste Berg Morias :)

-----------------------------------------------------------------------------



Re: artikel 26 nach quiz (Jimdigriz, 26. Jan 1995, 16:46:59):
#! rn=Pteppic rt=790429104
 j weiss ich :)
j) Evil Dick von Body Count , weiter gehn tuts: come here baby, come here
baby ... :)

Ciao, James Bolivar diGriz

-----------------------------------------------------------------------------



Re: nochn Quiz (Jimdigriz, 26. Jan 1995, 16:55:49):
#! rn=Oetti rt=790437896
pfffffff

7) klaro, live of brian
8) casablanca ?
9) der bewegte mann

Ciao, Jim diGriz

-----------------------------------------------------------------------------



Re: Re: nochn Quiz (Jimdigriz, 26. Jan 1995, 17:14:52):
#! rn=Jimdigriz rt=791135749
...
kam wohl ein bischen spaet.. ;-)
Jim

-----------------------------------------------------------------------------



Re: Tolkien-Quiz (Li, 27. Jan 1995, 08:38:56):
#! rn=Caradhras rt=791134652

Also sowas!
Da kann man nur sagen:
"Zwei Mann, ein Gedanke"
Ehrlich, Cara, ich hatte absolut keine Ahnung, dass du auch ein Tolkien Quiz
machen wolltest. Naja, aber zum Glueck habe ich andere Frage.


Mein Quiz findet Heute um 13 Uhr, nicht um 12 Uhr statt, Ort:Festsaal der
Unterwelt.
bis denn,
Li

-----------------------------------------------------------------------------



Re: Tolkien-Quiz (Caradhras, 28. Jan 1995, 01:30:26):
#! rn=Caradhras rt=791134652
Ich muss noch etwas zu meinem Quiz ergaenzen:

In Frage 9 will ich nicht als Antwort Valaraukar hoeren, denn das ist
nur Quenya fuer Balrog. Ich will einmal ne Kurzbeschreibung (ein Wort reicht)
und dann noch die Rasse (entsprechend wie Mensch, Elb, Zwerg ...) und
das ist NICHT Valaraukar. :)

Ansonsten gibts natuerlich Abzug, wenn man Dinge nennt, die zwar
richtig waeren, aber dann noch etwas falsches dazuschreibt. Das sollte
klar sein. Solange kein Reboot bis Montag stattfindet wird dann wohl die
Preisverteilung sein.
Bisher hab ich erst 2 Antworten und erst ein Preis von den 4
wird vergeben. (andere ist Magier)
Also schreibt was.

      tschoe         Caradhras - wirft mit Schnee um sich :)

-----------------------------------------------------------------------------



Duncton Quiz (Tryfan, 28. Jan 1995, 11:23:22):
Hi Leute,
 wollen wir doch mal sehen, wer durch Duncton nicht nur einfach so durch-
gerannt ist, sondern auch mal ein wenig links und rechts geschaut hat.
 Die Antworten zu folgenden Fragen kann man alle (auch zu den Expertenfragen)
in Duncton erfahren. 

			D U N C T O N    Q U I Z

- Fragen, die jeder beantworten koennen sollte -
a) Wer ist der aelteste Maulwurf von Duncton?
b) Wie heisst Brackens Bruder?
c) Wer begleitete Boswell zurueck nach Uffington?
d) Wer hat den Stein von Duncton als erster aufgestellt?
e) Welchen Gegner hat man laut Medlar am meisten zu fuerchten?
f) Warum sollte man die Wuermer der Aeltesten nicht klauen?
g) Wie heisst das (neue) Zentrum von Duncton?
h) Wer besiegte den Moerder von Hulver?

- Diese Fragen sind schon etwas schwieriger -
i) Wer war Hulvers bester Freund in Duncton?
j) Wer ist so schlau wie ein Wiesel?
k) Wer ist Brackens Schwiegervater?
l) Wie hiess die Lehrerin von Rose?

- Diese Fragen sind schon ziemlich happig -
m) Warum kam so lange kein Schreiber mehr nach Duncton?
n) Wer ist mein Schwiegervater?
o) Wie nennen die Maulwuerfe die Elfen, Menschen und Zwerge?

- Diese Fragen sind fuer die Experten -
p) Warum brach Boswell seine Geluebde?
q) Woher habe ich meinen Namen?
r) Wie heisst der Titel zu Boswells Lehre?


 Ehrlich gesagt erwarte ich kaum, dass jemand alle Fragen beantworten kann.
Bei vielen Fragen reicht mir als Antwort schon die Beschreibung des
Maulwurfs, wenn man den Namen nicht mehr weiss, oder der ungefaehre Name.
 Einen Preis fuer den Gewinner habe ich mir noch nicht ueberlegt, sollte
aber jemand wirklich alle Fragen beantworten koennen, liegt ein RL-
Sachpreis im Bereich des Moeglichen. ;)
 Magier koennen natuerlich gerne mitmachen, aber leider ausser Konkurenz.

 Antworten bitte per mud-mail zu mir und nicht in die MPA!! 
Der Gewinner wird in ca. zwei Wochen bekannt gegeben. Bis dahin nehme ich
alle Antworten und Ergaenzungen an. Wie gesagt, alle Antworten stecken in 
der Quest, und die steht jedem offen.

		Tryfan aus Duncton
		(Weisser Maulwurf)

-----------------------------------------------------------------------------



Re: Re: Tolkien-Quiz (Acrimon, 29. Jan 1995, 03:28:13):
#! rn=Caradhras rt=791253026
Du hast bereits einen Preis vergeben, obwohl der Termin noch nicht gekommen
ist?
Was sollen wir dazu sagen?
Caradhras, du weit ja noch nicht, wer besser ist!

-----------------------------------------------------------------------------



Re: Re: Tolkien-Quiz (Hobo, 29. Jan 1995, 16:23:43):
#! rn=Caradhras rt=791253026
Das ist fies, Cara!
Warum bekommen Maggis keine Preise?

    Hobo ( fuehlt sich diskriminiert ;) )

-----------------------------------------------------------------------------



Re^3: Tolkien-Quiz (Kretek, 29. Jan 1995, 19:23:59):
#! rn=Hobo rt=791393023
Weil du dir doch eh alles clonen kannst, was Cara an Preisen zu geben hat!
Und wenn du's nicht kannst, dann kraul Boing doch ein bisschen... :)

Alles klar?


Mit einem breiten Grinsen im Gesicht,

Kretek

-----------------------------------------------------------------------------



Re^5: Tolkien-Quiz (Hobo, 29. Jan 1995, 19:38:24):
#! rn=Hobo rt=791404609
Klar, kann ich mir das Zeug clonen, aber das ist einfach nicht das selbe.

Aber ich mach ja sowieso nicht mit (wuerde alles von Boing abschreiben)

   Hobo

-----------------------------------------------------------------------------



Re^6: Tolkien-Quiz (Kretek, 29. Jan 1995, 19:51:14):
#! rn=Hobo rt=791404704

Also:
Hobo hat Recht.
Hobo hat immer Recht.
Egal, um was es geht, Hobo hat einfach Recht.

Boing! Den Artikel nicht einfach uebergehen! Lies das ruhig! Und jetzt
auch nicht ignoriere artikel.kretek eingeben!
Denn es stimmt einfach:

HOBO HAT EINFACH IMMER RECHT!


Unterwuerfig grinsend,
Kretek

-----------------------------------------------------------------------------



Re^3: Tolkien-Quiz (Caradhras, 29. Jan 1995, 20:00:29):
#! rn=Hobo rt=791393023
Ich hab doch gesagt, Magier bekommen Preise :)
Nur haben sie sie dann sofort per Definition weiterzugeben, wenn sie das
nicht tun, gibt es sie auch nicht. Aehm, oder wie war das? :)
Momentan ist eh nur eine Suppenkoenigin auf einem der ersten 4 Plaetze,
naemlich Arien. Der Rest sind Spieler.

      tschoe
Caradhras der prophetenhaft hungrig Gummibaerchen sehende Golddrachenberg

-----------------------------------------------------------------------------



Tolkien Quiz, Freitag, Antworten (Li, 30. Jan 1995, 11:27:19):

So fuer alle, die am Freitag an dem Herr der Ringe Quiz mitgemacht haben (
und natuerlich auch fuer alle anderen) , hier noch 'mal die Fragen und die
Antworten





Bd 1


1 )    Was waren die Geschenke, die Galadriel Sam und Frodo bei
        ihrer Abreise gab?

       Sam bekam ein Kaestchen, dass Erde aus ihrem Obstgarten und den Samen
       eines Mallorn enthilt. Frodo bekam eine Phiole mit Licht von
earendils
       Stern, das in dem Wasser der Quelle, die Galadriels Spiegel speist,
       eingefangen war.



2)      Wer allein gab den einen Meisterring freiwillig
        irgendjemanden zum Geschenk?

        Bilbo


3)    Welchen Namen fuehrte Frodo  beim Gasthaus in Bree?

      Herr Unterberg


4)    Wer sagte folgendes bei welcher Gelegenheit:
       "Verdient ihn! Das will glauben. Viele, die leben, verdienen den
       Tod. Und manche, die sterben, verdienen das Leben. Kannst Du
       es ihnen geben?"


      Gandalf zu Frodo, darueber, dass Gollum am Leben gelassen wurde,
      nachdem Aragorn ihn (Gollum) aufspuerte.



12)     Wer sagte folgendes bei welcher Gelegenheit:
          "Er ist kuehn, kuehner als viele annehmen. Denn heutzutage
         faellt es den Menschen schwer zu glauben, dass ein
         Heerfuehrer klug sein kann und bewandert in den alten
         Schriften der Lehre und des Liedes, wie er es ist, und
         dennoch ein Mann von Beherztheit und rascher Entscheidung
         auf dem Schlachtfeld."

        (Tja, wohl die schwerste Frage: Beregond, der pippin ueber
        Faramir erzaehlte.)



Soviel fuer Heute, demnaechst mehr.
Li


-----------------------------------------------------------------------------



Antworten II (Li, 30. Jan 1995, 11:56:14):
Hoplla, ich hab grad gesehen, dass ein Teil der Antworten auf seltsame Art
verschwunden sind. hier sind sie:

Bd 2

5)    Waehrend sie Frodo suchten, wurden Boromir, Pippin und
       Merry  von Orks angegriffen. Was wahr ungewoehnlich an
       diesen Orks?


      Einige der Ork kamen nicht aus Mordor, sondern trugen
      Sarumans Zerichen und konnten der Sonne trotzen.



6)   Als die Ents nach Isengart marschierten, wurden sie von Wesen
     begleitet, die ihnen aehnlich waren. wie wurden diese
     Lebewesen genannt?

     Huorns.

7)   Gandalf sagte zu Saruman, dass er Orthanc unverletzt verlassen
      koenne, wenn er Gandalf zwei Sachen gaebe. Welche?


     Sarumans Stab und den Schluessel von Orthanc.
     ( Viele antworteten: Palantir, aber Gandalf wusste nicht, dass der
     Palantir von Isengart ueberhaupt noch existierte.)


8)   Wer sagte folgendes bei welcher Gelegenheit:
       "Die Welt ist seltsam geworden. Elben und Zwerge wandern
      gemeinsam ueber unsere alltaeglichen Weiden;  und Leutee
      sprechen mit der Herrin des Waldes und sind dennoch am
      Leben..."

     Eomer zu Aragorn, waehrend ihres ersten Zusammentreffens.


Bd.3
9)     Auf wieviel Stufen war Minas Tirith erbaut?

       Sieben.


10)    Viele der Maenner in Minas Tirith nannten Pippin Ernil i
         Pheriannath. Was bedeutete diese Bezeichnung?

       Fuerst der Halblinge.


11)     Wer toete den Herrn der Nazgul, der nicht von der Hand
          eines Mannes fallen konnte?

       Er wurde von einem Hobbit (Merry) und einer Frau (Eowyn)
       erschlagen. (Ich hab nur Eowyn auch gelten lassen)




-----------------------------------------------------------------------------



Aufloesung & Gewinner des Mittelerde-Quiz (Caradhras, 30. Jan 1995, 14:43:52):
                   So, das Quiz ist vorbei :)

Ich musste leider um Platz 1 losen lassen, weil Ancalagon und Throin
die gleiche Punktzahl hatten.

Gewinner ist:
                ANCALAGON mit 39.7 Punkten
2ter Platz:     THROIN    mit 39.7 Punkten
3ter Platz:     ZEPHYR    mit 39.0 Punkten
4ter Platz:     JIMDIGRIZ mit 38.5 Punkten

5ter Platz:     ARIEN     mit 37.2 Punkten
6ter Platz:     ACRIMON   mit 29.2 Punkten
7ter Platz:     BOING     mit 21   Punkten
8ter Platz:     GRIMMBORN mit 11   Punkten
9ter Platz:     OETTI     mit  4.8 Punkten

Meinen Dank an alle, die mitgemacht haben, vor allem an die, die wenig
wussten und trotzdem sich getraut haben, mir was zu schicken. *knuddels*
Hat Spass gemacht, ich mach bestimmt wieder ein Mittelerde-Quiz :-)

Und hier die Aufloesung:


 1) Wie heissen die 3 Berge von Moria? (auf Sindarin)?
 Caradhras, Celebdil, Fanuidhol :-))

 2) Wie heissen die 3 Berge in der Zwergensprache und auf Deutsch?
 Rothorn, Silberzinne, Wolkenkopf
 Barazinbar, Zirak-Zigil, Bundushathur  oder
 Baraz, Zirak, Shathur

 3) Wie heissen die 9 Gefaehrten?
 Peregrin Tuk (Pippin), Meriadoc Brandybock (Merry), Sam Gamdschie,
 Frodo Beutlin, Gandalf, Boromir, Aragorn, Gimli und Legolas

 4) Wieviele Silmaril gab es?
 3
 Einer endete im Feuer, einer im Meer und der dritte befindet sich
 an Earendils Stirn.

 5) Wie starb Feanor?
 Er starb an toedlichen Wunden, die ihm von Gothmog zugefuegt wurden.
 Dies passierte in der Schlacht unter den Sternen, der Dagor-nuin-
 Giliath. Beim Tod verbrannte er zu Asche, als sein feuriger Geist
 den Koerper verliess.

 6) In welche 3 Teile zerfiel Arnor?
 Arthedain, Cardolan, Rhudaur

 7) Nenne mir 5 Valar!
 Manwe, Ulmo, Aule, Orome, Mandos, Lorien, Tulkas  und die Damen
 Varda, Yavanna, Nienna, Este, Vaire, Vana und Nessa
 Morgoth(Melkor) war auch noch erlaubt

 8) Wer erschlug Ancalagon?
 Earendil

 9) Was ist ein Balrog? Welcher Rasse gehoert er an?
 Feuergeister, Feuerdaemonen, Feuergeissler, Rasse: Maia
 Valaraukar ist nur der Quenya-Name von Balrog, deswegen haette er
 schon noch in deutsch uebersetzt werden sollen :)

10) Nenne mir 3 der Istari (Zauberer)
 Saruman, Gandalf, Radagast, Pallando, Alatar
 Saruman wird auch Scharku, Scharrer, Curunur, Curumo, der Weisse genannt
 Gandalf heisst noch Olorin, Mithrandir, Tharkun, Incanus, der
         graue Pilger
 Radagast heisst noch Aiwendil

11) Wieviele Istari gibt es?
 5 Istari landeten im Norden an den grauen Anfurten, moeglicherweise
 gab es mehr, 3 als Antwort gab auch noch nen halben Punkt, da an einigen
 Stellen steht: "Von 3 sind die Namen bekannt, von den anderen nicht."
 oder so aehnlich.

12) An welchem Fluss liegt das Bockland? (2 Namen)
 Brandywein, Baranduin, goldbrauner Fluss

13) Was fuer Heere sind gemeint bei 'Die Schlacht der 5 Heere'?
 Elben, Menschen, Zwerge, Orks und Warge

14) Wer toetete Smaug?
 Bard aus Esgaroth am Langen See, Nachfahre von Girion, Fuerst von Dal

15) Wie hiess das Schwert Fingolfins?
 Ringil, das glitzernde Schwert

16) Wen heiratete Sam Gamdschie?
 Rosie Huettinger

17) Nenne mir 2 andere Namen fuer Aragorn!
 Streicher, Elessar, Elbenstein, Isildurs Erbe, Thorongil,
 Adler des Sterns

18) Wie heisst der Schlachtruf der Zwerge? (4 Worte)
 Baruk Khazad! Khazad aimenu! (Aexte der Zwerge! Zwerge ueber euch)

19) Wieviele Kinder hatte Sam?
 13
 Jemand schrieb mir sogar alle 13 Namen auf *freu* Hier sind sie, in
 Reihenfolge der Geburt:
 Elanor, Frodo, Rose, Merry, Pippin, Goldloeckchen, Hamfast, Margerite,
 Primula, Bilbo, Rubinie, Robi, Tolman (auch Tom genannt)

20) Welche 2 Geburtstage feierten Frodo und Bilbo im Jahre 3018?
 Einer hat doch tatsaechlich geantwortet: Ihre eigenen :)
 Das hab ich auch anerkannt, weil der Tag noch dranstand, 22 September.
 Ansonsten: Bilbos 111ten und Frodos 33ten.

21) Wie heisst der Koenig von Westernis bei dessen Untergang?
 Ar-Pharazon der Goldene

22) Wie heissen die Begleiter Thorin Eichenschilds und Bilbos auf
    der Fahrt zum Berg Erebor?
 Dwalin, Balin, Kili, Fili, Dori, Nori, Ori, Oin, Gloin, Bifur,
 Bofur, Bombur und natuerlich Gandalf (fast immer)
 Gandalf musste nicht erwaehnt werden :)

23) Wie heisst der Vater von Legolas?
 Koenig Thranduil der Waldelben des noerdlichen Duesterwalds
 Das ist der, der im kleinen Hobbit Thorin gefangenhaelt :)

24) Ein anderer Name Gollums.
 Smeagol, Schleicher und Stinker hab ich auch gelten lassen, wenn
 beide Worte wirklich vorkamen.

25) Wie nennt Baumbart Lorien?  (fies ;-)
 Eigentlich wollte ich ja Laurelindorenan lindelorendor malinornelion
 ornemalin hoeren, aber das erste Wort hat auch genuegt, das Land des
 Tals des singenden Goldes

26) Wen heiratet Elrond? Wer war die Mutter von ihr?
 Elrond heiratete Celebrian, die Tochter Galadriels und Celeborns

27) Wie heissen die Kinder Hurins?
 3!! Kinder, dies haben die beiden ersten falschgemacht. Das zweite
 Kind taucht im Stammbaum im Silmarillion nicht auf, da es mit 3 oder
 4 Jahren Alter an einer pestaehnlichen Krankheit starb.
 Aeltestes Kind: Turin Turambar, auch Meister des Schicksals,
                 Meister des Dunklen Schattens, Neithan, Agarwaen,
                 Thurin, Mormegil oder Wilder Mann aus den Waeldern
                 genannt
 Zweitaeltestes: Urwen Lalaith, auch das Lachen genannt, starb wie
                 gesagt frueh, als Turin noch 7 oder 8 Jahre alt war

 Juengstes     : Nienor Niniel, die Trauer, das Traenenmaedchen

28) Wen heiratete Thingol?
 Melian, die weiseste der Maia von Lorien, beide wohnten dann
 zusammen in Menegroth in Doriath, bis Thingol von Zwergen
 ermordet wurde. Dann fiel Doriath auseinander.

29) Wieviele Kinder hatte Finwe? Wie heissen sie?
 Finwe hatte 3 Kinder, Feanor mit Miriel, seiner ersten Gattin,
                       Fingolfin und Finarfin mit Indis

30) Wer ist der Vater von Galadriel?
 Finarfin ist ihr Vater.

31) Nenne mir 3 andere Namen fuer Bruchtal.
 Bruchtal, Imladris, Rivendell, Letztes heimeliges Haus haetten
 gegolten, Karnigul muss ich mal nachschauen wo das herkommt, hab
 ich nirgends entdeckt. Haus Elronds gilt nicht, das ist zu selbst-
 verstaendlich, Letzte Zuflucht haette ich noch gelten lassen.

32) Der Name der 2 Baeume von Valinor?
 Telperion der weisse Baum von Valion, auch Silpion oder Ninquelote
 genannt
 und
 Laurelin der Baum der Sonne, Goldenes Lied, Malinalda oder Culurien
 auch genannt

33) Wie heisst der Herr der Adler in der Altvorderenzeit?
    (Tip: Er hatte sein Nest in den Gipfeln der Thangorodrim)
 Es war natuerlich Thorondor :-) Die Frage war etwas verwirrend
 gestellt, weil in alten Fassungen Thorondor von Manwe den Auftrag
 bekommt, in den Gipfel des Thangorodrim zu nisten um von dort aus
 aus Melkor aufzupassen waerend in spaeteren Fassungen nur steht,
 dass er sein Nest im suedlichen Teil der Crissaegrim hatte, den
 Umzingelnden Bergen und die Thangorodrim kommen dort als Nistplatz
 gar nicht mehr vor.

34) Name des Speers Gil-Galads
 Aiglos oder Aeglos war der Name des Speers, der Schneedorn

35) Wie heissen die Hallen von Koenig Theoden und in welcher
    Stadt liegen sie?
 Meduseld, die goldenen Hallen Theodens in Edoras

36) Wie heisst der Wirt des Taenzelnden Ponys?
 Gerstenmann Butterblume

37) Anderer Name fuer die Wetterspitze?
 Amon Sul, der Windberg, Amon Sul hiess auch die Festung auf dem
 Berg, die geschleift wurde

38) Wie heisst die Stadt inmitten der umzingelnden Berge?
 Gondolin, die verborgene Stadt

39) Name der Maia der Sonne und des Mondes?
 Maia der Sonne ist Arien, Maia des Mondes ist Tilion ;-)

40) Wer war der weiseste der Maia?
 Der weiseste der Maia war zur Verwunderung einiger Olorin, der
 spaeter auch Gandalf genannt wurde in anderer Gestalt. Das war
 auch der einzige Fehler von Zephyr, sonst waer sie mit 40 Punkten
 Nummer 1 gewesen.
 Der weiseste der Maia war aber nicht der maechtigste der Maia,
 das war wohl Manwes Herold. Und die bekanntesten Maia waren wohl
 Osse und seine Gemahlin Uinen.



  Drei Ringe den Elbenkoenigen hoch im Licht,
  sieben den Zwergenherrschern in ihren Hallen aus Stein,
  den Sterblichen, ewig dem Tode verfallen, neun,
  einer dem dunklen Herrn auf dunklem Thron,
  im Lande Mordor, wo die Schatten drohn.
  Ein Ring, sie zu knechten, sie alle zu finden,
  ins Dunkel zu treiben und ewig zu binden,
  im Lande Mordor, wo die Schatten drohn.


The show must go on :) Es wird bestimmt wieder bald ein Quiz
stattfinden, es gibt noch viele hundert Fragen. Wuerde mich
freuen, wenn dann dieselben wieder mitmachen und noch mehr
dazu! Vielen Dank an alle, die mitgemacht haben.


         tschuess          Caradhras - eisgekroent

-----------------------------------------------------------------------------



Re: Tolkien Quiz, Freitag, Antworten (Caradhras, 30. Jan 1995, 15:36:41):
#! rn=Li rt=791461639
                     Hallo

So leid es mir tut, Li, aber ich muss dich korrigieren.
Du fragtest nicht: Wer alleine gab den Meisterring freiwillig
irgendjemandem als Geschenk? sondern hast das "als Geschenk
weggelassen"
Und da fallen mir auf die Schnelle sogar 2 Antworten ein, wobei
Deine sogar falsch ist.
Sam gab Frodo den Ring freiwillig wieder, als er ihn in Schagrats
Turm auf der Spitze des Passes Cirith Ungol befreite.
Und Tom Bombadil gab den Ring freiwillig her, nachdem er ihm
kurz ueberlassen wurde von Frodo. Sogar Frodo selbst gab ihn
dort freiwillig (wenn auch etwas skeptisch) kurz aus der Hand.

Bilbo hingegen gab ihn erst auf Gandalf Zwang hin an Frodo weiter,
bzw. er hatte den Umschlag schon eingesteckt mit dem Ring drin,
was zu einer sehr unerfreulichen Szene zwischen Gandalf und Bilbo
fuehrte.
Also gab ihn keiner als Geschenk freiwillig weiter, denn von Tom
und Sam und Frodo aus war es kein Geschenk an den anderen.

 tschoe
Caradhras der prophetenhaft hungrig Gummibaerchen sehende Golddrachenberg

PS: Das naechste koennen wir ja gemeinsam veranstalten, Li.
    Wuerde mich freuen. Hat mir auch gefallen, die Art. :)

-----------------------------------------------------------------------------



Re: Re: Ich will auch mal! (Icet,  1. Feb 1995, 04:39:05):
#! rn=Boing rt=790896529
Du hoerst Bodycount, Boing?
*staun*

-IceT (Leadsaenger von Bodycount)

-----------------------------------------------------------------------------



Re: Re: Tolkien Quiz, Freitag, Antworten (Li,  2. Feb 1995, 11:40:48):
#! rn=Caradhras rt=791476601
Nein Caragdhras, wir brauchen uns nicht streiten, aber meine Antwort war
nicht falsch.
vieleicht haette ich die Frage anders formulieren sollen, aber wenn Bilbo
auch aif Zuspruch von Gandalf den Ring weitergsb, so wurde er doch nicht von
Gandalf gezwungen. (Das haette bilbo "zerbrochen", wie Gandalf spaeter zu
Frodo sagte, sihe Gollum) Das mit Tom und Sam sehen wir beide genauso, das war
kein Geschenk, denn Tom hatte ihn fuer ca. eine min, und auch nur auf anfrage,
also kein geschenk. Sam nahm den ring von frodo und gab ihn ihm wieder, als
frodo erfuhr, dass sam ihm hat (wobei frodo schon ganz schoen wuetend wurde).
Also war definifiv Bilbo der einzige, der den Ring als Geschenk weitergegeben
hat (von den 5 traegern nach Sauron, wenn man Tom nicht mitzaehlt). Gandalf
hatte ihm zugeredet, aber dennoch war es Bilbos eigener wille, wenn auch der
Brief mit dem Ring zu Boden viel. Als Gandalf dann den Brief auf den Kamin
stellte sagt Bilbo etwas wie "Nun, wohl, blablabla. Er gab ihn aus freine
Stuecken, und wurde nicht gezwungen)

Li (mag keine Haaarspalterein und haelt das Thema nun fuer erledigt)

-----------------------------------------------------------------------------



Re^3: Tolkien Quiz, Freitag, Antworten (Caradhras,  2. Feb 1995, 14:19:42):
#! rn=Li rt=791721648
*kicher* *schmoll* *brummel* Schreibt Li doch tatsaechlich Caraghras,
aegl, nein, Caragdhras, so falsch kann ich das ja gar nicht schreiben :)

Mein armer schoener toller Name *schnief*
Und wie ich schon meinte, hatte ich nicht mitgekriegt, dass Du nach einem
'Geschenk' gefragt hattest. :-)

Ich muss mich uebrigens bei Arien entschuldigen, ich habe Fehler bei ihr
gemacht, die hat 39.2 Punkte und ist damit Dritte. Aber da sie Suppen-
werfel ist hat es ja bei der Preisverteilung nichts ausgemacht. (Uff)

Hoffe, das war der einzige Fehler, den ich sonst noch beim zaehlen
gemacht habe.

         tschoe             Caradhras

-----------------------------------------------------------------------------



Re^4: Tolkien Quiz, Freitag, Antworten (Li,  2. Feb 1995, 14:22:45):
#! rn=Caradhras rt=791731182
*grins*
Wie hiess dieser komische Berg noch mal?
Carabas? caternas? Caterpilar? Nein!
Aber mal im Ernst: Sorry, Caradhras! fuer die Namensverstuemmelung!

Li (wundert sich, dass nicht all so einfache Namen bevorzugen wie er)

-----------------------------------------------------------------------------



Aufloesung (Cifer,  3. Feb 1995, 13:27:38):
Hallo,

auch wenn es wohl niemanden interessiert, hier die Aufloesung zu meinem Quiz
von letzter Woche. Dank der ungeheuren Resonanz (1 Mail) war es leicht, einen
Sieger zu finden.

Der Gewinner ist: HIGHLANDER mit 3.0 Punkten.

Hier die Fragen und Antworten, da ich den Original-Artikel geloescht habe, um
Platz zu schaffen.

a) you play the guitar on the MTV
   Dire Straits: Money For Nothing
b) I can feel it inside something new has begun
   Robin Beck: First Time
c) hot sun making me sweat
   Genesis: I Can't Dance
d) ooh baby do you know what that's worth
   Belinda Carlisle: Heaven is a place on earth
e) can't keep my eyes from the circling sky
   Pink Floyd: Learning to fly
f) Im Kirchenchor und als Student stieg er steil empor -
   bis er sein Herz verlor
   E.A.V.: Der Sandlerkoenig Eberhard
g) und der Mann, mit dem sie redet, bleibt unsichtbar
   Juliane Werding: Stimmen im Wind
h) so giving all the love you have
   Anderson, Bruford, Wakeman, Howe: Brother Of Mine
i) This is Golf Mike Oscar Victor Juliet
   Mike Oldfield: Five Miles Out
j) I touched the lizard with the Crimson Veil
   Marillion: She Chameleon
k) and I need you tonight, and I need you more than ever
   Bonnie Tyler: Total Eclipse of the Heart
l) "I think I'm old and I'm feeling pain" you said
   The Cure: Plainsong
m) ich zahl keine Kichensteuer, lieber leg ich bei Dir Feuer
   Westernhagen: Auf 'ner einsamen Insel
n) don't complicate it - just do it once again
   Kim Wilde: The Second Time
o) I'm like a letter with no address
   Cindy Lauper: Heading West
p) we will meet them on the beaches, we will fight them in the fields
   Tony Carey: Bedtime Story (Soundtrack Der Joker, mit Peter Maffay)
q) Margarita was waiting inside
   Chris De Burgh: Last Night
r) when cancer sucks a young girl's breast
   Fish: Credo
s) there ain't nobody better than me - can't you see?
   Divine: I'm so beautiful
t) one man's pleasure is another man's pain
   Rupert Hine: One Man's Poison
u) I don't have to ask permission if I want to go out fishing
   Tom Waits: Better Off Without A Wife
v) Eben wuchs auf seiner Brust das erste blasse Haar
   Hannes Wader: Die Arschkriecher-Ballade
w) how far are we from dying, is it nearly at an end
   Edgar Broughton Band: Evening Over Rooftops
x) Auf der Autobahn A8 Richtung Oberhausen
   Mike Oldfield: Hostage
y) beginning with the end is starting backwards
   Tom Newman: Sad Sing (featuring Mike Oldfield)
z) did you get up this morning before the dawn?
   Terry Riley: Eastern Man

Das war's. gewonnen hat, wie gesagt, Highlander, der mich nun nach Belieben
foltern kann (fuer einen Magier, der dies sowieso kann, eigentlich witzlos,
aber wenn die Spieler nicht mitmachen wollen - Pech fuer sie).

Cifer.

-----------------------------------------------------------------------------



Re^3: Ich will auch mal! (Yendi,  3. Feb 1995, 19:36:42):
#! rn=Icet rt=791609945
Tja, Ice-T, Du warst wohl nicht auf der ersten MUD-Party dabei, wie?
Da haben Boing und Hate um die Wette gepoget! :)


-----------------------------------------------------------------------------



Re^4: Ich will auch mal! (Kretek,  4. Feb 1995, 02:38:16):
#! rn=Yendi rt=791836602
Ui, da staun ich jetzt aber auch!
Na, aber wartet mal, bei der uebernaechsten MUD-Fete, da habt Ihr dann
noch (mindestens) einen Mit-Poger!

Kretek,
der fuer guten Punk, Indie und Crossover (und ein bisschen Industrial)
doch alles liegen und stehen laesst! :)

-----------------------------------------------------------------------------



Re^5: Ich will auch mal! (Hobo,  7. Feb 1995, 14:45:10):
#! rn=Kretek rt=791861896
Unr Boing fragt mich immer wieder: Wie bin ich nur auf den Ruecken drauf
gekommen??? (Schaut Euch Locos Photos an)

Hobo

-----------------------------------------------------------------------------



Re^6: Ich will auch mal! (Catweazle,  7. Feb 1995, 15:15:57):
#! rn=Hobo rt=792164710
DAS frag ich mich AUCH dauernd :)
Tja, Boing, was hasttest Du da eigenltich zu suchen? :-)))
Yours truly,
    Catweazle

-----------------------------------------------------------------------------



Re^7: Ich will auch mal! (Boing,  7. Feb 1995, 15:20:32):
#! rn=Catweazle rt=792166557
Ist mir ja selbst ganz peinlich, dass ich es nicht mehr weiss ... aber
wir sind hier in de Rubrik quiz, deshalb biete ich 1000 Muenzen fuer
denjenigen,
der mir sagen kann, wie ich bei der ersten MG-Fete im Januar letzten
Jahres auf Catweazles Ruecken gekommen bin! :)
  Boing

-----------------------------------------------------------------------------



Re: Re: Duncton Quiz (Silvana, 16. Feb 1995, 08:48:07):
#! rn=Tryfan rt=792891729
DAS sind die Momente, an denen ich auch gern mal wieder Spieler sein wuerde.
Magier hast Du ja leider (verstaendlicherweise) aus dem Quiz ausgenommen.
Silvana - etwas traurig, etwas grinsend.

-----------------------------------------------------------------------------



Erkennen Sie die Melodie? (Yendi, 23. Feb 1995, 15:52:42):

Salvete!

Kann mir jemand sagen, woher dieses kurze Jingle kommt,was man auch klopfen
kann, dieses
                        Tam-tam-tatam-tam----Tam-Tam       ?

Melodie geht ungefaehr so:

----------------------------------------------------------------------

----------------------------------------------------------------------
    |                   |
----+---------------+---+---------------------------------------------
   O         |      |  O
-------+-+---+-----O---.----------------------------------------------
       | |  O      .
------*-*------O------------------------------------------------------


Sachdienliche Hinweise nimmt entgegen

                          YTY


-----------------------------------------------------------------------------



Re: Erkennen Sie die Melodie? (Bloodyharry, 23. Feb 1995, 16:15:24):
#! rn=Yendi rt=793551162
Ist es Roger Rabbit?


Bloody Harry, der Pirat

-----------------------------------------------------------------------------



Re: Erkennen Sie die Melodie? (Gatsby, 23. Feb 1995, 16:54:08):
#! rn=Yendi rt=793551162
Hmm, Yendi..
ich weiss, welche Melodie Du meinst..
Aber fuer die, die den Ursprung erkennen wollen, musst Du auch die
richtige Notierung angeben ;-))
Also Leuts: statt g sollte das ein gis sein.
(manche singen es auch mit einem fis statt f.. ;-))

dann stimmt schonmal die Melodie.
So, jetzt kann weitergeraten werden!
Gats.. mal wieder voll in ihrem Element.

-----------------------------------------------------------------------------



Re: Re: Erkennen Sie die Melodie? (Boing, 23. Feb 1995, 17:19:31):
#! rn=Gatsby rt=793554848
Und der angegebene Rhythmus war auch falsch ... ;)
  Boing

-----------------------------------------------------------------------------



Re: Erkennen Sie die Melodie? (Hardil, 23. Feb 1995, 18:31:24):
#! rn=Yendi rt=793551162

Hmmm, Tonart c-dur ? a-moll ?

Hardil (pfeift schon die ganze Zeit vor sich hin)

-----------------------------------------------------------------------------



Nur mal ne Frage (Felagund, 24. Feb 1995, 08:32:54):
Also eigentlich passt dieser Artikel nicht in Quiz, aber bei den vielen
Tolkien-Fragen irgendwie doch wieder...
Ich wuerde naemlich gern mal wissen, an welche Frau Tom Bombadil durch die
Brosche aus den Huegelgraebern erinnert wird.. die Frage nervt mich jetzt
schon seit Jahren! Er sagt ueber diese Frau nur "fair was she,who woar this
once" (oder sowas in der richtung und "we will remember her"..
Also,falls mir da jemand helfen kann,waer ich fuer ne kurze mail sehr
dankbar....Fela

-----------------------------------------------------------------------------



liedzeilen (Loco, 27. Feb 1995, 13:56:18):
[Verlegt von allgemeines, Charlie, 27. Feb 1995, 13:44:24]:
Hallo leute!
wieder einmal melde ich mich mit eienr neuen runde des allseits
beliebten spiels 'liedzeilenquiz' und hoffe wieder auf rege anteilnahme
doch zuerst fuer die, die die alten zeilen noch irgendwo in
ihren gehirnzellen rumwuseln haben, die loesungen vom letzten mal:


"...hope I die before get old..."
The Who - My generation
a.) bow
Aerzte - Schlaflied                                                          
                       b.) You got me on my knees
Eric Clapton - Layla                                                         
  c.) ...drei, vier, schmeckt besser wie Bier
Rodgau Monoton - Die Hesse komme!                                            
                        d.) Wars in Luedenscheid oder Wladiwostok
klaus Lage - steig nicht aus                                                 
                                      e.) Komm nimm mich mit auf die Reise
Abwaerts - die Reise                                                         
                            f.) Your mouth, so hot, your web, Im caught, your
skin, so wet, blach lace on sweet.
Alice Cooper - Poison                                                        
                                     g.) fast enough so we can fly
Tracy Chapman - Fast Car                                                     
                                          h.) Ich bin Dein dunkler Cherubim,
du die sphinx im schwarzen Kleid
Alice + Stefan Waggershausen                                                 
                               i.) Remember the gester that showed you tears
Marillion - Script for jesters tear                                          
                                      j.) Der Hosentraeger is mir abgerissen
K2 - Der Berg ruft                                                           
                                          k.) I never try anything
White zombi - thunderkiss '65          l) wer hat an der Uhr gedreht
Stefan Raab & die Bekloppten - Boerti, Boerti Vogts                          
                    m.) I tell a joke, you probably heard it before
ABBA - Thank you for the music                                               
                               n.) Lying in my bed I hear the clock tick, and
think...
Cyndy Lauper - time after time                                               
                             o.) I could show you my favorite obsession
RockyHorrorPictureShow - Sweet transvstite                                   
                         p.) We3re just to lost souls, swimming in a fishbowl,
year after year
Pink Floyd - Wish you where here                                             
                             q.) Another mother3s breakin3heart is taking over
cranberrys - zombies                                                         
                                 r.) Dawo das Leben noch lebenswert ist
Peter Alexander - Die kleine Strasse in unserer Strasse                      
              s.) There ain3t no island left for islanders like me
Billy Joel - The downeaster alexa                                            
                               t.) Russian3s famous love machine
BoneyM - Rasputin                                                            
                                      u.) he fell in love, not far from there,
decation grows
Philip Boa & the voodooclub                                                  
                                    v.) no matter what they say
Sting - Englishman in NY                                                     
                     w.) And I3m Getting Old
Neil Young - Heart of gold  more night                                       
                                  x.) Then you see it3s not me it3s not my
und nun kommt das neue ratematerial:

der compi scheint das irgendwie nicht zu raffen ... ich schreib einen neuen
artikel


-----------------------------------------------------------------------------



liedzeilen2 (Loco, 27. Feb 1995, 13:59:08):
[Verlegt von allgemeines, Locutus, 27. Feb 1995, 13:48:50]:
So hier nun das Liedzeilenquiz von Charlie:


"Tell me the way to the next whiskybar"

a.) A traveling circus came, they brought an intelligent [....] and [....]
was his name
b.) You're damned if you do and you're if you don't
c.) Es musste aber sein, der Sprit ging aus
d.) The monkey and the plywood violin
e.) Sorry my train won't stop at your station
f.) Was koennte wichtiger sein als Sex und Musik                             
  g.) Where is my place in this bright future
h.) da da da dam didi nananana, pretty baby
i.) You're 21 and still your mother makes your bed - and thats too long
j.) Es ist 'ne Scheibe fuer die Doofen
k.) Shead a tear cause I'm missing you
l.) ... auch durch ein Schluesselloch
m.) Du bist 'n Babe, ich moecht' Badewasser saufen
n.) Denkst Du vielleicht auch mal an mich
o.) The killer in me is the killer in you
p.) Fette Moesen, fette Titten, Leut beim Wichsen, Leut beim Ficken
q.) Anyway the wind blows....
r.) Don't know what I want, but I know how to get it
s.) Now, I'm the king of the swingers Ooooh, the jungle V.I.P.
t.) Insgeheim war man noch Nazi, doch da fehlte 'n bisschen Mut
u.) To be together and forever be true
v.) ... she had to get out of a date with...
w.) Oh lever Jott, jib uns Wasser
x.) a mystic fantasy
y.) We're bingo numbers and our names are absolute why do I feel better when
I should be feeling sweet
z.) I used to be a little boy




-----------------------------------------------------------------------------



Re: liedzeilen (Catweazle, 28. Feb 1995, 13:14:08):
#! rn=Loco rt=793889778
Also, das ist...bei weitem, ... der _schlechtest_ formatierte
Artikel, den ich je gesehen habe :-)
YTC

-----------------------------------------------------------------------------



tolkien mal anders (Felagund,  2. Mar 1995, 11:37:08):
Also jetzt ist mir doch was ganz dummes passiert.. da stehn doch tatsaechlich
2 saetze in meinem haus, von denen ich nicht weiss, was sie bedeuten! (runen,
inschrift) Wer mir da also die richtige Uebersetzung liefert, sowohl von der
Schrift als auch vom Inhalt her, der kann damit rechnen, dafuer ein BSS, einen
Hornpanzer, Armschienen, Beinschienen und Seestiefel zu bekommen (oder 20.000
muenzen)
Auf regen (mail)-Zuspruch hoffend.....Fela

-----------------------------------------------------------------------------



Re: tolkien mal anders (Felagund,  4. Mar 1995, 14:44:20):
#! rn=Felagund rt=794140628
Hab bis jetzt noch nix bekommen, aber vielleicht liegts ja daran...das erste
Wort der Wandinschrift is ne freie Interpretation von mir und hat
normalerweise eine AEHNLICHE Bedeutung...
Viel Spass beim raetseln....Fela

-----------------------------------------------------------------------------



Re: Re: tolkien mal anders (Caradhras,  4. Mar 1995, 15:41:43):
#! rn=Felagund rt=794324660
Du koenntest wenigstens noch schreiben, wo Nargothrond liegt :)
Ist mir zwar schon mal wo begegnet, aber ich weiss nicht mehr wo.

   Caradhras - fragt halt Felagund gleich direkt

-----------------------------------------------------------------------------



Re^3: tolkien mal anders (Felagund,  6. Mar 1995, 16:05:29):
#! rn=Caradhras rt=794328103
Also gut, da mich jetzt schon mehrere Leute gefragt haben..
mein Haus steht zwischen Findling und PV, den Rest muesst ihr aber schon
selbst rausfinden.
P.S. Ein weiterer Tip.. direkt daneben steht das Haus meines Grossonkels Elwe
Singollo...

-----------------------------------------------------------------------------



aufloesung (Felagund,  8. Mar 1995, 16:12:48):
Also es hat in der Tat jemand geschafft, die Inschrift und die Runen in
meinem Haus zu deuten...und zwar ein Zwerg *wunder*
Throin ist der glueckliche Gewinner und er hat mich auch gleich noch auf den
einen oder anderen kleinen Fehler hingewiesen, weshalb die Inschrift
moeglicherweise in naechster Zeit ueberarbeitet wird.
Die Wandinschrift heisst namarie elendili na nargothrond bar en gelidh, was
soviel heisst wie willkommen elbenfreunde in nargothrond, heim der noldor
(hierbei war das na allerdings geraten und wird demnaechst entfernt...)
die runen heissen ganz einfach Finrod aran nargothrond, also Finrod, Koenig
von Nargothrond...
Das wars also....MFG  Fela

-----------------------------------------------------------------------------



Re: aufloesung (Caradhras,  9. Mar 1995, 14:01:52):
#! rn=Felagund rt=794675568
Hmmm, und warum existierte dafuer weder ein Stichtag noch sonstwas,
damit man wenigstens weiss, bis wann man die Loesung abzugeben hat? Tsts,
Felagund, ich
dachte, man haette viel mehr Zeit.
Bisher hab ich mich noch nicht dran versucht. *grins*

        tschoe          Caradhras
PS: Verwandter von Celebdil und Fanuidhol und mittlerweile auch wohl
    noch Methedras (Gruesst alle Huegel und Berge)

-----------------------------------------------------------------------------



Film-Quiz (Locutus, 13. Mar 1995, 12:12:54):
Hallo Leute !

Ich habe mal ein Film-Zitate-Quiz zusammengestellt. Die Zitate sind alle
im Original. Zu gewinnen gibt's 10.000 Muenzen (als kleinen Anreiz), 
wenn Boing nix dagegen hat.
Antworten bitte nur per MUD-Mail an mich.

--------------------------------------------------------------------------
1.
A boy's best friend is his mother. 

--------------------------------------------------------------------------
2.
I do wish we could chat longer, but I'm having an old friend for dinner. 

--------------------------------------------------------------------------
3.
Dr. Chandra, will I dream? 

--------------------------------------------------------------------------
4.
Person One:  Tell me a bedtime story. 
Person Two:  Fuck you.
Person One:  That's my favourite.

--------------------------------------------------------------------------
5.
Person One:  Why should I tell you copper? 
Person Two:  Because I'm the last line of defense between sleeze like
  this and the decent people of this town.
Person Three:  Oh hi Frank, say we got that model D83 Swedish sure-grip suck
  machine that you ordered.
Person Two:  It's a gift.

--------------------------------------------------------------------------
6.
I love the smell of napalm in the morning... Smells like victory. 

--------------------------------------------------------------------------
7.
Person One:  Did you ever do drugs with Mr. Boz? 
Person Two:  Sure.
Person One:  What kind of drugs?
Person Two:  Cocaine.  Have you ever fucked on cocaine Nick?  It's
  nice.
Person Three:  You like playing games don't you?
Person Two:  I have a degree in psychology, it goes with the turf...
  Games are fun.

--------------------------------------------------------------------------
8.
Chew, if only you could see what I've seen with your eyes! 

--------------------------------------------------------------------------
9.
Person One:  We're 104 miles from Chicago.  We've got a full tank of gas, 
  a half pack of cigarettes, it's dark and we're wearing sunglasses.
Person Two:  Hit it!

--------------------------------------------------------------------------
10.
Person One:  Hey Vasquez, have you ever been mistaken for a man? 
Person Two:  No, have you?

--------------------------------------------------------------------------
11.
Person One:  Where were you last night? 
Person Two:  That's so long ago, I don't remember.
Person One:  Will I see you tonight?
Person Two:  I never make plans that far ahead.

--------------------------------------------------------------------------
12.
All of life's riddles are answered in the movies. 

--------------------------------------------------------------------------
13.
Oh man, I can't fucking believe this.  Another basement, another elevator.  
How can the same thing happen to the same guy twice??? 

--------------------------------------------------------------------------
14.
Person One:  What are you doing? 
Person Two:  I'm thinking.
Person One:  Well, think me up a cup of coffee and a chocolate doughnut 
with some little sprinkles on top, will you?

--------------------------------------------------------------------------
15.
Yes, John.  But when the Pirates of the Caribbean breaks down, the pirates 
don't eat the tourists. 

--------------------------------------------------------------------------
16.
I'm too old for this shit! 

--------------------------------------------------------------------------
17.
In Italy for 30 years under the Borgias they had warfare, terror, murder, 
and bloodshed, but they produced Michelangelo, Leonardo da Vinci, and the 
Renaissance.  In Switzerland they had brotherly love -- they had 500 years 
of democracy and peace, and what did that produce?  The cuckoo clock. 

--------------------------------------------------------------------------
18.
-  Look, you can't expect to wield supreme executive power just 
  because some watery tart threw a sword at you!
-  Help!  Help!  I'm being oppressed!  Violence inherent in the
  system!  Violence inherent in the system!

--------------------------------------------------------------------------
19.
Now you listen to me, I'm an advertising man, not a red herring. 

--------------------------------------------------------------------------
20.
Hello.  My name is Inigo Montoya.  You killed my father. Prepare to die. 

--------------------------------------------------------------------------
21.
Person One:  I need your clothes, boots and your motorcycle!  
Person Two:  You forgot to say please...


Das wars.
Viel Spass beim Raetseln !!!
Die Antworten poste ich naechste Woche mal hier ins Brett.

Locutus


-----------------------------------------------------------------------------



Re: Film-Quiz (Li, 13. Mar 1995, 14:50:18):
#! rn=Locutus rt=795093174
Ha! Beim Ueberfliegen ist mir schon mal nummer 20 eingefallen: Deutscher
titel: Die Braut des Prinzen.
Li(gruebelt uber dem Rest)
NN

-----------------------------------------------------------------------------



Re: Film-Quiz (Yendi, 13. Mar 1995, 15:49:35):
#! rn=Locutus rt=795093174

Sollen die Antworten gepostet werden, oder lieber gemailt?


-----------------------------------------------------------------------------



Re: Re: Film-Quiz (Locutus, 13. Mar 1995, 16:20:18):
#! rn=Yendi rt=795106175
Hiho Raetselfreunde !

BITTE schreibt die Antworten nicht hier ins Brett ! Schreibt mir bitte ne
MUDmail. Ich werte die Antworten aus und der Gewinner bekommt dann, sofern
Boing nix dagegen hat 10.000 Muenzen. Natuerlich koennen auch gerne Magier
bei dem Raetsel mitmachen, obwohl die 10.000 Oecken wohl kein Anreiz sind.
Einsendeschluss fuer das Raetsel ist uebrigens der kommende Sonntag.
Am Montag kommt dann die Aufloesung und der Gewinn.
Zitat Nummer 20 wird aus der Wertung genommen, da Li schon die richtige
Antwort hier ins Brett geschrieben hat :(
Also nochmal. Antworten bitte bitte bitte nur als MUDmail.
Viel Spass nochmal beim Raetseln...

Tschoe.
Loc.

-----------------------------------------------------------------------------



Re: Film-Quiz (Caradhras, 13. Mar 1995, 19:37:09):
#! rn=Locutus rt=795093174
Ui ist das schwer, ich gebs auf, ich weiss nur ein einziges, naemlich
die Nummer 10. Was es ist wird aber nicht verraten, hoechstens Locu :)

       Caradhras - kuckt zu wenig englische Filme (naemlich gar keine)

-----------------------------------------------------------------------------



Re: Re: Film-Quiz (Icet, 13. Mar 1995, 19:59:16):
#! rn=Caradhras rt=795119829
Nu hoert doch auf, 21 ist doch obersimpel.
Aberbeim Rest muss ich auch ganz schoen raetseln

-IceT (+raetsel,raetsel,augeb*)
n

-----------------------------------------------------------------------------



Catweazle mogelt! (Yendi, 13. Mar 1995, 20:05:52):

Der fragt die Goetter um Rat:

"tmj Jof, wie heisst der Film mit Sharon Stone und dem Eispickel?"

Sonderbar... also ich hab von _Gurken_ gehoert, oder sowas...
Aber _Eispickel_... Tut das nicht weh?

(Au, lass das, Cat, aua!
   Jajaa, ich werds nicht wieder tun, aber lass meine Haare los...)

-----------------------------------------------------------------------------



Film/Buch-Quiz (Rochus, 14. Mar 1995, 17:02:28):
Das Film-Quiz von Locutus hat mir so gut gefallen, dass ich auch ein
Quiz zusammengestellt habe, jedoch auch mit Zitaten aus Buechern.
Preis: 10000 Muenzen, Antworten per Mud-Mail an mich.
Die Teilnahme von Magiern ist erlaubt :-)
---------------------------------------------------------------------------
1.
P1: P2, this reminds me of that time you tried to drill a hole in your head.
P2: That would have worked if you hadn't stopped me.
---------------------------------------------------------------------------
2.
P1: P2, ich habe mal eine Abhandlung ueber exotische Foltermethoden
    verfasst. Haettest Du Lust, aktiv an der Fortsetzung mitzuwirken?
---------------------------------------------------------------------------
3.
Listen; I'm a politician which means I'm a cheat and a liar, and when I'm not
kissing babies I'm stealing their lollipops. But ... it also means I keep my
options open...
---------------------------------------------------------------------------
4.
Was fuer eine deprimierend daemliche Maschine.
---------------------------------------------------------------------------
5.
P1: Humor. It is a difficult concept. It is not logical.
P2: We learn by doing.
---------------------------------------------------------------------------
6.
P1: You broke my arm!
P2: There's 215 bones in the human body. That's one.
---------------------------------------------------------------------------
7.
P1: Aber beherrschst du irgendwelche besonderen Fertigkeiten?
P2: Wie waer's mit Erfahrungen im Umgang mit gewissen
    landwirtschaftlichen Werkzeugen?
---------------------------------------------------------------------------
8.
P1: P2, be careful what you shoot at. Most things in here don't react too
well to bullets.
---------------------------------------------------------------------------
9.
Ihre Luftwaffe hat so viele Sonarbojen abgeworfen, dass man von Groenland
ueber Island nach Schottland gehen koennte, ohne nasse Fuesse zu bekommen!
---------------------------------------------------------------------------
10.
Oh, no, I've got my own autographed Get Out of Jail Free card!
---------------------------------------------------------------------------
11.
Du warst immer schon der Typ fuer superintelligente Fragen, stimmt's?
---------------------------------------------------------------------------
12.
Wenn A und B zusammenarbeiten, koennen C und D nicht gewinnen.
Doch wenn D A besticht...
---------------------------------------------------------------------------
13.
Nothing shocks me. I'm a scientist.
---------------------------------------------------------------------------
14.
P1: Er hat ein Gewehr!
P2: Und wenn schon!
*PENG*
P1: Scheisse!
---------------------------------------------------------------------------
15.
P1: Do you believe in God?
P2: Never met him.
---------------------------------------------------------------------------
16.
P1: Where are we going?
P2: Planet 10!
P1: When?
P2: Real soon!
---------------------------------------------------------------------------
17.
What's the matter man, the food ain't THAT bad?!
---------------------------------------------------------------------------
18.
Ja, jetzt sehe ich, was an deinen Fuessen nicht stimmt.
---------------------------------------------------------------------------
19.
He'll live.
---------------------------------------------------------------------------
20.
Wer nach 40 Jahren Rache nimmt, hat uebereilt gehandelt
---------------------------------------------------------------------------
21.
Wake up! Time to die!
---------------------------------------------------------------------------
22.
P1: Remember, once you're inside you're on your own.
P2: Oh, you mean I can't count on you? Good!
---------------------------------------------------------------------------
23.
P1: P2, P2, I love you, but we only have fourteen hours to save the Earth!
---------------------------------------------------------------------------
24.
P1: Wissen es die Kinder schon?
P2: Aeh... ich denke ja...
---------------------------------------------------------------------------
25.
P1: Hey, get out of my chopper!
P2: No, no - MY chopper.
---------------------------------------------------------------------------
26.
P1: Das ist ja Wahnsinn.
P2: Ja, und es brachte nur 30 Punkte.
---------------------------------------------------------------------------
27.
If it bleeds, we can kill it.
---------------------------------------------------------------------------
28.
Ich moechte nichts anderes ... als eine Tasse Tee.
---------------------------------------------------------------------------
29.
It's showtime!
---------------------------------------------------------------------------
30.
Wonderful girl! Either I'm going to kill her or I'm beginning to like her.
---------------------------------------------------------------------------
31.
Sie beschuetzt MICH?
---------------------------------------------------------------------------
32.
P1: That's too early. Prepare to fast-forward!
P2: Preparing to fast-forward!
P1: Fast-forward!
P2: Fast-forwarding, Sir!
---------------------------------------------------------------------------
33.
Im Augenblick herrscht eine praechtige Stimmung.
Aber ich erwarte, das wird sich spaetestens um Mitternacht aendern.
---------------------------------------------------------------------------
34.
Achtung. Notfall-Abschaltung wurde aktiviert. Einen schoenen Tag noch.
---------------------------------------------------------------------------
35.
Fuer Norwegen habe ich einen Preis gekriegt.
---------------------------------------------------------------------------
36.
Naja, nicht eigentlich LANDEN, nein, nicht richtig landen, nein ... aeh ...
---------------------------------------------------------------------------
37.
Consider that a divorce!
---------------------------------------------------------------------------
38.
Nice outfit!
---------------------------------------------------------------------------
39.
Today is a good day to die...
---------------------------------------------------------------------------
40.
P1: What's his plan?
P2: His plan?
P1: Russians don't take a dump, son, without a plan...
---------------------------------------------------------------------------
41.
P1: P2, when someone asks you if you're a god, you say YES!
---------------------------------------------------------------------------
42.
P1: You're a creature of the night, P2. Wait'll Mom hears about this.
---------------------------------------------------------------------------
43.
Sieht mir ganz und gar nicht nach einem Soehnchen aus, du Dummkopf.
---------------------------------------------------------------------------
44.
Central Intelligence Agency... Now, there's a contradiction in terms.
---------------------------------------------------------------------------
45.
Eine amerikanische Stadt bombardieren?
Oh, das wird doch wohl ein Irrtum sein?!
---------------------------------------------------------------------------
46.
Und in der Finsternis war nur noch ich.
Und ich schwebte ueber der Finsternis.
Ich sah, dass ich allein war, und das war nicht gut.
Ich beschloss, das zu aendern.
---------------------------------------------------------------------------
47.
Heb sie nicht auf, nicht auf, nicht a-
---------------------------------------------------------------------------
48.
LIES DAS
---------------------------------------------------------------------------
49.
Will you take a company check?
---------------------------------------------------------------------------
50.
Wir sind die Zauberrer.
Wir erwecken den Traum zum Leben.
Und wir sind die einzigen, die das koennen.
---------------------------------------------------------------------------

Nicht vergessen: Antworten per Mail und NICHT in der Zeitung! :)

-----------------------------------------------------------------------------



Re: Film/Buch-Quiz (Rochus, 14. Mar 1995, 19:18:10):
Ach, noch etwas...
Einsendeschluss ist Dienstag, der 21. maerz, 19:00.
Sieger ist derjenige mit den meisten richtigen Antworten.
Wenn mehrere Personen die gleiche Anzahl richtiger Antworten haben
gewinnt der erste Einsender davon.

-----------------------------------------------------------------------------



Filmraetsel-Auswertung (Locutus, 17. Mar 1995, 12:25:38):
Hallo Filmraetselfreunde ! Ich musste leider den Einsendeschluss-
termin etwas vorverlegen, da ich ab Montag eine Woche nicht er-
reichbar bin. Hier also nun die richtigen Antworten und die
Leute, die bei dem Raetsel mitgemacht haben.

Antworten:
1. Psycho
2. Schweigen der Laemmer
3. 2010
4. 48 Hrs
5. Naked Gun 2 1/2
6. Apocalypse Now
7. Basic Instinct
8. Bladerunner
9. Blues Brothers
10.Aliens
11.Casablanca
12.Grand Canyon
13.Die Harder
14.The Fugitive
15.Jurassic Park
16.Lethal Weapon
17.The third man
18.Monty Python & the holy grail
19.North by northwest
20.The Princess Bride
21 Terminator 2

Antwort 20 wurde rausgenommen, da die Antwort ungluecklicherweise
ins Brett gepostet worden war.


Mudname                         Anzahl an richtigen Antworten
-------------------------------------------------------

Stahldorn                                     4
Plappermaul                                   7
Catweazle, Rochus & Jof (ausser Konkurrenz)   19 (!!!) 
Schrumpfi                                     1
Snuggle                                       2
Bahrain                                       8
                

Also ist der Gewinner (*klatsch, klatsch*):

BAHRAIN !!!

Die 10.000 Muenzen werden sofort ausgehaendigt, sobald Bahrain
und ich uns im MUD begegnen (sofern Ein EM oder Gott nichts da-
gegen hat).

Tschoe....

Locutus (macht vielleicht demnaechst nochmal ein anderes Raetsel)

-----------------------------------------------------------------------------



Mal wieder ein Quiz (Zardoz, 28. Jun 1995, 11:38:37):
Halloechen!
Nachdem diese Rubrik schon laengere Zeit leer steht, moechte ich hiermit
ein Quiz ueber die Daemonenburg ankuendigen. Ich werde es aber via mail
machen, also teilt mir mit, oder schreibt mir, wenn ihr mitmachen wollt,
ich schicke euch dann einen Fragebogen. Mitmachen koennen alle Spieler
und Seher. Wer sich jetzt noch nicht dort auskennt hat genug Zeit sich
umzuschauen, denn ich werde das Quiz erst in fruehestens 2 Wochen beenden.
Es wird natuerlich auch eine Belohnung geben, da werde ich mir noch was
ausdenken....

Zardoz, der auf mails wartet...

-----------------------------------------------------------------------------



Bin dabei! (Bendeigid, 29. Jun 1995, 10:13:45):
Na bitte, das hat zur Auflockerung noch gefehlt. Selbstverstaendlich bin ich
dabei. Und ich hoffe auf Konkurrenz (zwinker Rudiratter und Mesirii zu..)

Gespannt,
            Bendeigid

-----------------------------------------------------------------------------



Ich AUCH ;) (Mesirii, 29. Jun 1995, 22:29:54):
Hallo Zardoz,
die idee ist super ;) ich freu mich schon, auf die horden von leuten, die
die burg heimsuchen werden. endlich ist mal was los. viel spass allen
mitquizzern ;)
Mesii (zwar fremdenfuehrer, aber nicht alleswisser *zwinker rudi*)
P.S. na los Bendei*

-----------------------------------------------------------------------------



Daemonenburg-Quiz (Zardoz, 17. Jul 1995, 13:14:49):
Hallo an alle, die bei dem Quiz mitmachen!
Einsendeschluss ist Montag, der 24.07. um 12 Uhr nachts. Wer bis dahin
den Fragebogen nicht eingesendet hat, kann leider keinen schoenen Preis
gewinnen...

-----------------------------------------------------------------------------



Mittelerde-Quiz II (Caradhras,  9. Okt 1995, 08:14:02):
                     Moin Kinners

Ich such mir grade wieder ein paar Fragen zusammen fuer ein Quiz,
muss ich mal aus dem Kopf machen jetzt... *gruebel*
Also es ist ein Quiz ueber Mittelerde natuerlich. Es gibt uebrigens
auch Teilpunkte fuer Teilantworten. Die Fragen sind ziemlich heftig,
dafuer ist aber auch lange Ueberlegzeit. Naemlich bis Montag in einer
Woche, High Noon. Wenn mehrere punktgleich sind, lose ich.
Magier und Goetter duerfen mitmachen, kriegen aber keine Preise (bzw.
geben freiwillig (per Definition) ihre Preise weiter an die naechsten
Spieler ;-) )
Antworten nur per mudmail oder email an mich (caradhras@fmi.uni-passau.de),
alles andere zaehlt nicht. Loesungen am Montag mittag von mir.

Preise zu gewinnen gibt es:

1. Platz: 20.000 Muenzen oder
         1 Blutsauger-Schwert, 1 Krone mit 5 Kristallen, 1 Steinbeisser-
         Amulett und glaenzende Stiefel
2. Platz: 15.000 Muenzen oder
         1 Krone mit 5 Kristallen, 1 Steinbeisser-Amulett, Eispanzer
         und glaenzende Stiefel

3. Platz: 10.000 Muenzen oder
         1 Steinbeisser-Amulett, Lichtpanzer, glaenzende Stiefel und
         Lederhandschuhe
und
4. Platz:  5.000 Muenzen oder
         1 Steinbeisser-Amulett und Lederstiefel

Wer Karateka ist ist eh zu gut :) Der darf an seine Zweities weitergeben
oder kriegt mal Hilfe von mir und/oder nen Eisstab, Schlammdrachenring,
2 Bummis geschenkt (wenns ein Spieler ist). Irgendwas werden wir schon
finden. Am meisten freu ich mich ueber Leute die nur ein paar Antworten
wissen, sich aber trotzdem trauen mitzumachen.

So, jetzt mal die Fragen aus dem Gedaechtnis schreiben...


  1) Wie heisst der zweithoechste der Nazgul?
  2) An welchem Berg liegt Minas Tirith?
  3) Wie heisst der Vater von Earendil?
  4) Nenne mir den hoechsten Berg von Westerniss
  5) Was heisst 'Galadriel' auf deutsch?
  6) Und wie waere eine passende Uebersetzung fuer 'Felagund'?
  7) In welchem Verwandtschaftsverhaeltnis steht Galadriel zu Finrod
     Felagund?
  8) Wie heissen die 2 Kinder von Earendil und Elwing?
  9) Was bedeuten die Namen der 2 Kinder?
 10) Wieviele Soehne hatte Feanor?
 11) Wer war der Koenig von Gondolin?
 12) Welcher Mensch ueberbrachte dem Koenig von Gondolin eine Warnung?
 13) Wie endeten die 3 Silmaril?
 14) Wer verriet Gondolin an Melkor?
 15) Welcher Hochkoenig der Noldor verletzte Melkor schwer in einem Kampf?
 16) Wie entstanden die Ringgeister?
 17) Was waere mit Frodo passiert wenn Elrond ihn nicht geheilt haette?
 18) Wie heisst der Bruder Boromirs?
 19) Wie endet Boromir?
 20) Wie nennt Gandalf den Balrog auf der Bruecke in Khazad-Dum?
 21) Wie nennt sich der groesste Hafen der Korsaren weit suedlich
     von Gondor?
 22) Wie erobern Luthien Tinuviel und Beren einen Silmaril?
 23) Nenne mir den Teil Mittelerdes der in der Altvorderenzeit untergeht
 24) Wie hiess der Vater von Maeglin?
 25) Wie und wo starb dieser Vater?
 26) Wieviele Schiffe der Elendili ueberlebten den Untergang Numenors?
 27) Wieviele Palanthiri gab es?
 28) Wo waren diese?
 29) Wie stirbt Grima Schlangenzunge?
 30) Wer wird nach Theoden Koenig von Rohan?
 31) Wie heisst der Weiher, in dem Gollum in Ithilien verbotenerweise
     Fische faengt?
 32) Nenne mir die 2 Namen der Schwerter von Gandalf und Thorin
     Eichenschild.
 33) Welche besondere Dinge bekam Thorin in sein Grab mit?
 34) Welcher Elb geleitete verbotenerweise einen Menschen nach Gondolin?
 35) Wie hiess der besten Elbenfreund Turin Turambars?
 36) Wie heisst das Zuhause von Mim, dem Zwerg?
 37) Wie heissen die Soehne Isildurs, die mit ihm fallen?
 38) Was bedeutet in der Sprache der Rohan 'Heiliger Berg'?
 39) Was sind die Druedain?
 40) Wie heisst der Wald zwischen den Fluessen Teiglin und Sirion
     in Beleriand.


Ein kalter Wind blies hinter ihnen her, als sie dem Rothornpass den
Ruecken wandten und muede den Hang hinunterstolperten.
Caradhras hatte sie besiegt.

           Rothorn Caradhras Barazinbar wuenscht bonne chance

-----------------------------------------------------------------------------



Re: Mittelerde-Quiz II (Caradhras,  9. Okt 1995, 08:49:37):
#! rn=Caradhras rt=813222842
Ach so, ich habe noch was vergessen:
Wenn mir jemand mehr als einmal was schickt zaehlt das letzte, dh.
Nachbesserungen sind auf alle Faelle moeglich, man kann also erst mal
einige Fragen beantworten und spaeter die Antwort auf die restlichen
oder auf einige der restlichen schicken, natuerlich aber nur bis
Montag 12 Uhr (in einer Woche)

           Caradhras - der grausame Berg Morias

-----------------------------------------------------------------------------



Re: Mittelerde-Quiz II (Caradhras, 10. Okt 1995, 12:53:13):
#! rn=Caradhras rt=813222842
Ach so, *huestel* sind mir natuerlich noch 2 Fehlerchen reingerutscht
beim Schreiben. Einmal heisst es natuerlich normalerweise Palantiri
statt Palanthiri, auch wenn ich es glaube ich schon mal mit 'h'
geschrieben sah. Absolut peinlich war natuerlich, dass ich 'Sprache
der Rohan' schrieb statt 'Sprache Rohans' oder 'Sprache der Rohirrim'.

Sonst ist nirgends ein Fehler denke ich... hoechstens das mit dem
groessten Hafen der Korsaren ist etwas 'unkorrekt' formuliert, aber
nehmt einfach die bekannteste Stadt der Corsaren und ihr habt es. :)

       tschoe
                Rothorn Caradhras Barazinbar

-----------------------------------------------------------------------------



Antwort & Loesungen Mittelerde-Quiz II (Caradhras, 16. Okt 1995, 12:06:12):
                     Huhu

Hier kommen die Gewinner des Quiz und die Aufloesung:

1) THROIN    39.5 Punkte
2) LI        39.0 Punkte
2) ARIEN     39.0 Punkte
4) URZA      37.0 Punkte
5) TROUBADIX 36.5 Punkte
6) THINGOL   29.0 Punkte
7) GOLUM     26.5 Punkte
8) HADRA     21.0 Punkte
9) RAALRRA   14.75 Punkte

Drum bekommen die Preise Urza, Troubadix, Hadra und Raalrra, sie werden
nach dem naechsten Reboot verteilt (jetzt gibts eh noch genug Ruestungen
& Waffen im Spiel)


  1) Wie heisst der zweithoechste der Nazgul?
     Khamul, der Schatten aus dem Osten bzw der Schwarze Ostling
     wohnt in Dol Guldur nach der Wiedereroberung
  2) An welchem Berg liegt Minas Tirith?
     An den Auslaeufern des Berges Mindolluin
  3) Wie heisst der Vater von Earendil?
     Tuor, der Turgons Tochter Idril heiratete
  4) Nenne mir den hoechsten Berg von Westerniss
     Meneltarma, das hoechste Heiligtum Numenors
  5) Was heisst 'Galadriel' auf deutsch?
     Maedchen, von einem Strahlenkranz gekroent
     von Alatariel, der Quenya- und Teleriform
  6) Und wie waere eine passende Uebersetzung fuer 'Felagund'?
     von Felak-Gundu, der Hoehlenschleifer, spaeter auch
     interpretiert als Herr der Grotten
  7) In welchem Verwandtschaftsverhaeltnis steht Galadriel zu Finrod
     Felagund?
     Sie ist die Schwester von Finrod
  8) Wie heissen die 2 Kinder von Earendil und Elwing?
     Elrond und Elros
  9) Was bedeuten die Namen der 2 Kinder?
     Elrond bedeutet Sternendach (Sternenkuppel galt auch),
     Elros bedeutet Sternenschaum
 10) Wieviele Soehne hatte Feanor?
     7
 11) Wer war der Koenig von Gondolin?
     Turgon
 12) Welcher Mensch ueberbrachte dem Koenig von Gondolin eine Warnung?
     Schon wieder Tuor
 13) Wie endeten die 3 Silmaril?
     Einer in der Luft (an der Stirn von Earendil), einer fiel ins Feuer
     (Maedhros stuerzte sich in einen Feuerspalt) und einer endete im
     Wasser (Maglor warf ihn hinein)
 14) Wer verriet Gondolin an Melkor?
     Maeglin
 15) Welcher Hochkoenig der Noldor verletzte Melkor schwer in einem Kampf?
     Fingolfin
 16) Wie entstanden die Ringgeister?
     Wurden zu Geistern durch die 9 Menschenringe, die Sauron gemacht
     hatte, verdorben durch Streben nach Macht, es heisst, 3 davon
     seien hohe numenorische Fuersten gewesen und ihr Anfuehrer war
     der Hexenmeister und Koenig von Angmar
 17) Was waere mit Frodo passiert wenn Elrond ihn nicht geheilt haette?
     Er waere auch ein Geist in der Schattenwelt geworden, allerdings
     kein Ringgeist (wenigstens nicht lange :-))
 18) Wie heisst der Bruder Boromirs?
     Faramir
 19) Wie endet Boromir?
     Wurde von Orkpfeilen durchbohrt bei der Verteidigung Merrys und
     Pippins, trieb dann mit einem Boot den Anduin hinunter
 20) Wie nennt Gandalf den Balrog auf der Bruecke in Khazad-Dum?
     Flamme von Udun (Udun ist sozusagen die 'Vorhoelle' von Mordor,
     das Gebiet direkt hinter dem Morannon, dem Tor im Nordwesten)
 21) Wie nennt sich der groesste Hafen der Korsaren weit suedlich
     von Gondor?
     Umbar
 22) Wie erobern Luthien Tinuviel und Beren einen Silmaril?
     Luthien tanzt Melkor in den Schlaf und Beren schneidet mit Angrist,
     einem Messer, einen Silmaril aus dessen eiserner Krone
 23) Nenne mir den Teil Mittelerdes der in der Altvorderenzeit untergeht
     Beleriand
 24) Wie hiess der Vater von Maeglin?
     Eol der Dunkelelb, der Schmied
 25) Wie und wo starb dieser Vater?
     Wurde hingerichtet in Gondolin, vom Caragdur, einem schwarzen
     Felsvorsprung, hinabgestuerzt
 26) Wieviele Schiffe der Elendili ueberlebten den Untergang Numenors?
     9
 27) Wieviele Palanthiri gab es?
     7
 28) Wo waren diese?
     Emyn Beraid (auf dem westlichsten Turm der Turmberge), Amon Sul,
     Annuminas, Minas Ithil, Minas Anor, Orthanc und Osgiliath
 29) Wie stirbt Grima Schlangenzunge?
     Von drei Hobbitpfeilen erschossen
 30) Wer wird nach Theoden Koenig von Rohan?
     Eomer
 31) Wie heisst der Weiher, in dem Gollum in Ithilien verbotenerweise
     Fische faengt?
     Henneth Annun, eigentlich der Name der Grotte hinter dem Wasser-
     fall, aber auch der Namen des Weihers
 32) Nenne mir die 2 Namen der Schwerter von Gandalf und Thorin
     Eichenschild.
     Orcrist und Glamdring
 33) Welche besondere Dinge bekam Thorin in sein Grab mit?
     Den Arkenjuwel (das Herz des Berges) mit ins Grab und sein
     Schwert Orcrist aufs Grab
 34) Welcher Elb geleitete verbotenerweise einen Menschen nach Gondolin?
     Voronwe den lieben Tuor
 35) Wie hiess der besten Elbenfreund Turin Turambars?
     Beleg 'Cuthalion' Langbogen
 36) Wie heisst das Zuhause von Mim, dem Zwerg?
     Bar-en-Danwedh, das Haus der Ausloese
 37) Wie heissen die Soehne Isildurs, die mit ihm fallen?
     Elendur, Aratan und Ciryon
 38) Was bedeutet in der Sprache der Rohan 'Heiliger Berg'?
     Halifirien (die Frage die die wenigsten wussten :))
 39) Was sind die Druedain?
     Die 'Wilden Menschen' der Ered Nimrais
 40) Wie heisst der Wald zwischen den Fluessen Teiglin und Sirion
     in Beleriand.
     Wald von Brethil, der Wohnsitz der Haladin

Ein kalter Wind blies hinter ihnen her, als sie dem Rothornpass den
Ruecken wandten und muede den Hang hinunterstolperten.
Caradhras hatte sie besiegt.

         tschoe
       Caradhras - der hoechste Berg Morias

-----------------------------------------------------------------------------



Re: Antwort & Loesungen Mittelerde-Quiz II (Li, 18. Okt 1995, 08:42:45):
#! rn=Caradhras rt=813841572
Tja, Halafirien, na egal.
Zu Frage 20) Das mit Udun stimmt schon, aber ich frage mich, ob gandalf mit
udun wirklich ddas Gebiet in Mordor gemeint hat. Schliesslich ist der Balrog
schon etwas aelter, und muss ja wohl den Fall von Thangorodrim ueberlebt
haben.
Es sit sowieso schon seltsam, wie er in die Tiefen von Moria kam, wo er ja
auch eingeschlossen war.
Jedenfalls war der Balrog doch von Sauron unabhaengig denke ich mal, (zuerst
zumindestens). Soviel ich weiss, "lebte" Sauron noch nicht wieder in dol
goldur, als der Balrog erwachte, oder?
Naja, wer weiss warum Gandalf ihn so genant hat.
Li (gruebelnd)

-----------------------------------------------------------------------------



Re: Re: Antwort & Loesungen Mittelerde-Quiz II (Throin, 18. Okt 1995, 08:54:37):
#! rn=Li rt=814002165
Tja, mit Udun war in dem Fall wohl Melkors Festung im Ersten Zeitalter in den
Eisenbergen gemeint :) Und dort hat er eben einige der Maia zu Balrogs
pervertiert. Dass der Balrog von Sauron unabhaengig sei kann schon sein. Aber
die wachsende Praesenz in Dol Guldur war glaub' ich etwa zeitgleich mit einer
erhoehten Aktivitaet der Moria-Orks. Ob da ein Zusammenhang besteht weiss ich
aber nicht genau.
Throin

-----------------------------------------------------------------------------



MIni-Tolkien-Quiz (Li, 18. Okt 1995, 09:13:19):
Mal eben eine Frage fuer alle Tolkien Kenner:
Warum war Sauron so bewandert im ringeschmieden?
(Mal abgesehen davon, dass er ein Maia ist, und damit sicherlich hoeheres
wissen besass als Celebrimbor, gibt es noch einen anderen Grund)

Li

-----------------------------------------------------------------------------



Trivial Pursuit (Li, 18. Okt 1995, 09:33:11):
Hi!
Nachdem die Quizrubrik wieder auflebt, moechte ich mal ein paar Fragen aus
dem "Klassischem" Quiz-Spiel, trivial Pursuit, hier posten. Loesungsmail an
mich.
Viel Spass!


Geographie:      Wie heisst der beliebte Reisschnaps Japans?

Unterhaltung:    Wie hiess der Film, der als Vorbild fuer "Die glorreichen
                 Sieben" diente?

Geschichte:      Welche Bezeichnung trugen die 12 Begleiter Karls des
                 Grossen?

Kunst/Literatur: Von welchen Fantasy-Taschenbuch verkaufe dtv 1991 das
                 einmillionste Exemplar?

Wissenschaft/
Technik:          Was verstanden die frueheren Alchimisten unter dem
                  "Stein der Weisen?

Sport:            Welches Volk hat wahrscheinlich den Bumerang erfunden?


P.S.      Uebrigens, das sin alles Originalfragen aus der 2.Genus Edition.

-----------------------------------------------------------------------------



Re: MIni-Tolkien-Quiz (Ancalagon, 18. Okt 1995, 10:44:48):
#! rn=Li rt=814003999
moin Li!
Die Antwort ist einfach. Er hat im Zweiten Zeitalter bei den Elben
Mitgeschmiedet. Ob er da allerdings was gelernt hat, kann ich nicht
beurteilen.
Allerdings konnte er nur so seinen Ring der Macht schmieden.....

-----------------------------------------------------------------------------



Re: Re: MIni-Tolkien-Quiz (Li, 18. Okt 1995, 10:54:59):
#! rn=Ancalagon rt=814009488
Nene, das meine ich nicht, es hat was damit zu tun, was er vorher war.
Li

-----------------------------------------------------------------------------



Re^3: MIni-Tolkien-Quiz (Ancalagon, 18. Okt 1995, 11:04:54):
#! rn=Li rt=814010099
moin nochmal.
Ach so, du meinst das er ein Maia ist und aus Aules Mitarbeiterstab kam....

-----------------------------------------------------------------------------



Re^4: MIni-Tolkien-Quiz (Li, 18. Okt 1995, 11:09:19):
#! rn=Ancalagon rt=814010694
Genau, Aules Ex-Maia

-----------------------------------------------------------------------------



Re: Trivial Pursuit (Caradhras, 18. Okt 1995, 20:12:43):
#! rn=Li rt=814005191
Au ja, oefters bitte, ich hab nur Teil 1 mal auswendig gelernt, aber
Teil 2 kenn ich nicht. :)

    Jeden Tag ne neue Karte *:^)
                Rothorn Caradhras Barazinbar - versagt bei Teil 2

-----------------------------------------------------------------------------



Re^5: MIni-Tolkien-Quiz (Felagund, 25. Okt 1995, 08:43:41):
#! rn=Li rt=814010959
Dass er von den Elbenschmieden gelernt haette waer auch unlogisch, immerhin
haben die den mittmachen lassen, um von IHM zu lernen ;)
gruss...Fela

-----------------------------------------------------------------------------



Re^6: MIni-Tolkien-Quiz (Ancalagon, 25. Okt 1995, 09:56:05):
#! rn=Felagund rt=814607021
Moin Fela!
Wenn ich mich recht entsinnen kann, haben aber tatsaechlich beide seiten von
der anderen etwas gelernt. Nicht nur die Elben von sauron, auch
andersrum.....(wo hab' ich das gleich noch gelesenFela!).

-----------------------------------------------------------------------------



Re^7: MIni-Tolkien-Quiz (Grimmborn, 25. Okt 1995, 10:11:01):
#! rn=Ancalagon rt=814611365

Genau! War es nicht Sauron (bzw sein Herrchen), der die Elben zu den Orks
weiterentwickelt hat? Nur so ein paar Dumpfbacken haben sich an ihren Baeumen
festgeklammert und sich geweigert, wie jede normale Rasse unter der Erde zu
leben...

Grimmborn der Atheist und Zwerg

-----------------------------------------------------------------------------



Re^8: MIni-Tolkien-Quiz (Felagund, 26. Okt 1995, 07:48:58):
#! rn=Grimmborn rt=814612261
Liegt Nargothrond denn etwa ueber der Erde????
Fela....kennt sich anscheinend daheim schlechter aus als Grimmi :)

-----------------------------------------------------------------------------



Preisfrage (Loco, 14. Nov 1995, 15:17:15):
Und die ganze Uni Tuebingen wird morgen raetseln ueber die Frage, die Euch
schon heute aufgetischt wird:

Was bitte ist das spezifisch weibliche an einem Balisto-Riegel?

Die beste Antwort gewinnt ein Studentenpaket. Die Ausgabe fuer Frauen. Mit
Balisto-Riegel.

-----------------------------------------------------------------------------



Re: Preisfrage (Olpp, 16. Nov 1995, 08:48:42):
#! rn=Loco rt=816358635
Suess und vollwertig :)

Olpp

-----------------------------------------------------------------------------



Re: Preisfrage (Ancalagon, 16. Nov 1995, 15:04:52):
#! rn=Loco rt=816358635
Moin erstmal!
Au ja, diese Studentenpakete gibts bei uns auch.......Fuer die maeners gabs
"Old Spice After Shave" und fuer die Frauens Maggi-Tuetensuppen *kicher*
Das ist bei uns allerdings scvhon etwas laenger her....
Immer noch grinsend,
                                     Ancalagon
                             Draco knuddellensis major

-----------------------------------------------------------------------------



Re: Re: Preisfrage (Loco, 16. Nov 1995, 15:08:35):
#! rn=Ancalagon rt=816530692
Das war ja wenigstens noch ein echter Unterschied - bei uns bestand der
Unterschied eben nur in den Balistos fuer Frauen. Deswegen auch die Frage.
Es hat uebrigens bisher noch keine Antwort gegeben - seid ihr denn wirklich
so unkreativ?

Loco

-----------------------------------------------------------------------------



Re^3: Preisfrage (Yendi, 16. Nov 1995, 15:30:57):
#! rn=Loco rt=816530915

Ich habe da eine moegliche Antwort, aber die ist nicht jugendfrei...


Also hier die jugendfreie:
Die Weiblein kaufen sich "Ballisto"-Riegel, die Maennlein spielen mit
"Ballista".
(Das kapieren jetzt wieder bloss Historiker oder Rollenspieler...)


-----------------------------------------------------------------------------



Re^3: Preisfrage (Nasim, 16. Nov 1995, 15:56:00):
#! rn=Loco rt=816530915
Vielleicht, weil Frauen i.A. mehr auf gesunde Ernaehrung achten als Maenner?

Gruss, Nasim

-----------------------------------------------------------------------------



Re: Re: Preisfrage (Agnetha, 16. Nov 1995, 22:15:17):
#! rn=Olpp rt=816508122

HOHOHO :


Agnetha

-----------------------------------------------------------------------------



Re^3: Preisfrage (Olpp, 17. Nov 1995, 00:35:51):
#! rn=Loco rt=816530915
Natuerlich hab ich geantwortet..

Olpp

-----------------------------------------------------------------------------



Re: Re: Preisfrage (Fyt, 17. Nov 1995, 01:40:04):
#! rn=Ancalagon rt=816530692
Also bei uns haben auch die Maenner Tuetensuppen bekommen, und
Ballisto hab ich nicht gesehen :|
:
Fyt.

-----------------------------------------------------------------------------



Re^4: Preisfrage (Li, 17. Nov 1995, 09:17:55):
#! rn=Nasim rt=816533760
Ballisto und gesunde Ernaehrung?
Naja, ich weiss ja nicht!

-----------------------------------------------------------------------------



Rechenraetsel (Yantro, 17. Nov 1995, 10:09:20):
 HAllo ihrs alles,

ich bin letztlich bei einer Party ueber ein kleines Spiel gestolpert, dass
nicht nur das Hirn massiert, sondern auch stark an den Nerven zehrt. Dabei
handelt es sich um eine aeusserst simple angelegenheit:

Mann hat immer 3mal die selbe Zahl zur verfuegung und soll die nun so mit
irgendwelchen mathematischen Symbolen, Rechenzeichen oder Operatoren
verbinden, dass immer 6 rauskommt. Das kann man dann von 1 bis wasweissich
durchspielen... wir sind damals mal bis 12 gekommen ;)

Beispiel, wie es gemeint ist:

fuer 1:     (1+1+1)! = 6
fuer 2:      2+2+2   = 6
fuer 3:      3*3-3   = 6   usw.

manchmal ist es einfach, mal ganz knifflig.

Loesungen, wenn ihr welche habt bitte wenns mehrere sind per mail an mich,
damit nicht alles zehnfach in der Zeitung steht.... :) Viel Spass beim
gruebeln...

               Euers Yantros ;)

-----------------------------------------------------------------------------



Re: Preisfrage (Aranya, 17. Nov 1995, 16:27:05):
Was hat das mit den Studi-Paketen auf sich? Ich hab noch nie ein Studipaket
gekriegt. *schnueff* Weder mit noch ohne Balisto.
Deshalb fuehl ich mich auch ausserstande, die Frage zu beantworten, was das
spezifisch weibliche an einem Balisto ist. Hab schliesslich noch nie einen
gegessen.

Aranya
      NNN

-----------------------------------------------------------------------------



Re: Re: Preisfrage (Puma, 17. Nov 1995, 16:32:34):
#! rn=Aranya rt=816622025
Was hat das ueberhaupt noch mit dem Titel dieser Rubrik zu tun?
Waere es nicht nett, hier mal wieder etwas zum Thema zu lesen? So frei nach
der Art, was steht auf dem Monument von Waldfels und wie ist es entstanden.
Oder wieder ein paar Liedzeilen, etc..
Oder wieder Mittelerde. Ich als Magier kann nur schlecht Mud-Preise anbieten.

Puma!



-----------------------------------------------------------------------------



Re^3: Preisfrage (Cuchullin, 17. Nov 1995, 18:55:51):
#! rn=Puma rt=816622354


Hmmm... Puma, wenn Du ein Quiz machen moechtest und keine Preise vergeben
darfst, finden sich bestimmt ein paar Seher, die fuer die Preise 'sammeln'
(*grins*) gehen.

Cuch.-


-----------------------------------------------------------------------------



Re^5: Preisfrage (Nasim, 19. Nov 1995, 13:51:21):
#! rn=Li rt=816596275
... behauptet jedenfalls die Werbung - und gesuender als z.B. Pommes
rot-weiss duerfte ein Ballisto allemal sein.

Gruss, Nasim

-----------------------------------------------------------------------------



Re^6: Preisfrage (Loco, 20. Nov 1995, 22:08:08):
#! rn=Nasim rt=816785481
Mangels besserer Antworten gehen die zwei hier noch gelagerten Pakete an
Yendi und Olpp. Gebt mir Bescheid, wie ich sie Euch zustellen soll oder was
ich sonst damit machen soll. So ein Paket wiegt etwa 2 kg und ist meiner
Meinung nach ungefaehr 3 Mark wert (nach Ladenpreisen etwa 10,-).

P.S.: Hier hatte auch keiner eine sinnvolle Antwort :)

Loco

-----------------------------------------------------------------------------



artikel Mal wieder Liedzeilen zum Raten... (Hardil, 23. Nov 1995, 12:04:35):

Ich sitz hier grad mal wieder an einem Liedzeilenraetsel, und nachdem die
ganzen (fuer mich) einfachen Zeilen geloest sind, sind leider immer noch
einige viele
Zeilen uebrig. Vielleicht kann von Euch jemand mir helfen? :-)
Antworten bitte per mud-mail an mich - wenn ihr sie hier postet, krieg ich
wieder Aerger mit dem Sheriff.
Die 'krumme' Zaehlung liegt daran, dass ich die bereits herausgefundenen
Zeilen schon rausgenommen hab aus dem Zettel :-)

3.) turns a building down, splits a family in two
4.) another red light street
10.) Na klar, der Mob hat wieder randaliert, der Buerger applaudiert
14.) grass is always greener over there
16.) Kannst Du mich schreien hoeren ....
18.) My mother threw me into the world as a winner
20.) Das ganze Leben ein Exzess
26.) Everywhere you look now, questionairesre living in a dream ... you stay
behind the scenes

27.) Look and dry your eyes
28.) You're living in a dream ... you stay behind the scenes
30.) Get a good job with more pay and you're okay
31.) I'm on the run, no time to sleep, I've got to ...
33.) Tonight we'll bring you first pictures of the assassination of the
president ... first picture - first pictures ...
36.) Wir kommen aus Hamm
38.) Soviel Glueck am Montag morgen - da komm' ich ins Gruebeln, da mach' ich
mir Sorgen
39.) A pre-owned song or a second hand uzi


So. Det wars. Merci im Voraus fuers helfen. :)

-Hardil.

-----------------------------------------------------------------------------



Kleines C-Quiz (Durian, 18. Dez 1995, 13:39:41):
Hi!

HIer nun ein Quiz bei dem man nix gewinnen kann. Sacht mir mal, was bei
folgender C-Anweisung als Ergebnis rauskommt:

     a = --a - a--;

Mein Tip lautet -1, es kommt aber 0 raus. So, und nun erklaert mir mal
warum ...

- Durian

-----------------------------------------------------------------------------



Re: Kleines C-Quiz (Gum, 18. Dez 1995, 13:58:59):
#! rn=Durian rt=819290381
wenn du es genau auseinander nimmst und nachrechnest, kommt wirlkich 0 raus.
--a ergibt a-1, gleichzeitig wird aber auch a um eins verringert, so dass
du bei a-- eigentlich (a-1)-- rechnest, also insgesamt
a = (a-1) - (a-1) und das ist 0 das a-- wird im prinzip uebergangen
da danach gleich die zuweisung von (a-1) - (a-1) an a erfolgt
alles klar? :)
gum

-----------------------------------------------------------------------------



Re: Re: Kleines C-Quiz (Loco, 18. Dez 1995, 15:54:02):
#! rn=Gum rt=819291539
Wie mir Fyt mal nachgewiesen hat, ist das nicht ganz spezifiziert, was
rauskommt, und es bleibt dem Programmierer ueberlassen, solche Situationen zu
vermeiden.
Das Ganze erinnert an folgendes C-Fragment:

  int i; i=2;
  printf("%d\n",++i + i++ + i++);
Nach gesundem Programmiererverstand muesste 10 herauskommen, mit
verschiedenen Compilern und verschiedenen Optimierungsleveln haben wir in
einer Testreihe _alle_ Werte von 7 bis 13 erzeugen koennen...

Uebrigens hat Klammerung daran auch nichts geaendert.

Das dazu,
         Loco

-----------------------------------------------------------------------------



Re: Kleines C-Quiz (Sique, 19. Dez 1995, 00:57:08):
#! rn=Durian rt=819290381
Das ist doch klar? --a ist a - 1, danach ist a = a - 1. a-- ist a, danach
ist a = a - 1. D.h. --a - a-- ist (a_alt - 1) - (a_alt - 1) == 0.
D.h. dass kurz vor Durchfuehrung von a = expr. a den Wert von a_alt - 2 hat,
muss ja keinen interessieren :)

                                                       Sique

-----------------------------------------------------------------------------



Re: Re: Kleines C-Quiz (Boing, 19. Dez 1995, 09:22:17):
#! rn=Sique rt=819331028
So logisch ist das offensichtlich nicht ... nachdem ich durch Nachdenken
zuerst auf 0 und dann auf -1 gekommen bin, hab ich doch mal einen
Compiler bemueht. Und siehe da: gcc-2.7 errechnet ohne Optimierung
0 als Ergebnis und mit Optimierung -1 ... :)
  Boing

-----------------------------------------------------------------------------



Re: Re: Kleines C-Quiz (Rochus, 19. Dez 1995, 17:25:46):
#! rn=Handi rt=819385939
Bloedsinn. C kennt einen Unterschied zwischen --a und a--:
a=0;printf("%d,",--a);printf("%d\n",a); liefert -1,-1
a=0;printf("%d,",a--);printf("%d\n",a); liefert 0,-1
Die Unterschiede in der Quizaufgabe kommen dadurch zustande,
dass bei laengeren Ausdruecken nicht genau spezifiziert ist,
ob beim a-- der Abzug direkt nach der Auswertung von a oder erst
nach der Auswertung des vollstaendigen Ausdrucks durchgefuehrt werden soll.

-----------------------------------------------------------------------------



Re: Kleines C-Quiz (Fyt, 19. Dez 1995, 17:26:04):
#! rn=Durian rt=819290381
wuerg.. staendig die gleichen diskussionen...

Also: Ein konformer Compiler darf Dir nach Eingabe von --i + i--
die Festplatte formatieren, anfangen zu kiffen und Dir ans Bein
pinkeln :))
Das Verhalten ist undefiniert, d.h. es kann was rauskommen, muss aber
nicht, und wenn er 342 rauskriegt isses immer noch ok, und du solltest
dankbar sein, dass Deine Platte noch lebt, den die duerfte er auch
crashen :)


Fyt.

-----------------------------------------------------------------------------



Re: Re: Kleines C-Quiz (Fyt, 19. Dez 1995, 17:38:37):
#! rn=Handi rt=819385939
Um noch was konstruktives beizutragen, Auszug aus der C-FAQ-list:

                int i = 7;
                printf("%d\n", i++ * i++);

        prints 49.  Regardless of the order of evaluation, shouldn't it
        print 56?

A:      Although the postincrement and postdecrement operators ++ and --
        perform the operations after yielding the former value, the
        implication of "after" is often misunderstood.  It is _not_
        guaranteed that the operation is performed immediately after
        giving up the previous value and before any other part of the
        expression is evaluated.  It is merely guaranteed that the
        update will be performed sometime before the expression is
        considered "finished" (before the next "sequence point," in ANSI
        C's terminology).  In the example, the compiler chose to
        multiply the previous value by itself and to perform both
        increments afterwards.

        The behavior of code which contains multiple, ambiguous side
        effects has always been undefined (see question 5.23).  Don't
        even try to find out how your compiler implements such things
        (contrary to the ill-advised exercises in many C textbooks); as
        K&R wisely point out, "if you don't know _how_ they are done on
        various machines, that innocence may help to protect you."

        References: K&R I Sec. 2.12 p. 50; K&R II Sec. 2.12 p. 54; ANSI
        Sec. 3.3 p. 39; CT&P Sec. 3.7 p. 47; PCS Sec. 9.5 pp. 120-1.
        (Ignore H&S Sec. 7.12 pp. 190-1, which is obsolete.)

-----------------------------------------------------------------------------



Re^3: Kleines C-Quiz (Oetti, 19. Dez 1995, 17:44:42):
#! rn=Fyt rt=819391117
*kratz*

Wer so einen Mist programmiert, dem gehoert der Rechner entzogen...

Nur so nebenbei

Oetti

-----------------------------------------------------------------------------



Re^4: Kleines C-Quiz (Raffi, 19. Dez 1995, 17:59:40):
#! rn=Oetti rt=819391482

Du meinst C/C++ Programmierern gehoertt standardmaessig der Rechner entzogen
?


Grinsend
H.

-----------------------------------------------------------------------------



Re: Kleines C-Quiz (Aell, 21. Dez 1995, 06:00:02):
#! rn=Durian rt=819290381
  Das ist implementationsabhaengig.

    -- Aell

-----------------------------------------------------------------------------



Filmzitate (Silvana,  8. Jan 1996, 08:52:42):
Ich hab hier nen bischen was fuer die grossen Kenner der Filmbranche:
Zitate aus verschiedenen (mehr oder weniger) bekannten Filmen. Wer mitraten
moechte, tut das bitte per Mud-mail an mich, um nicht den anderen den Spass
zu verderben. Preise? Jo, gibt's auch - auf der Party. Wer nicht kommen
kann - dumm gelaufen - dann halt hinterher. ;)

So - zum warmwerden erstmal ein paar, die wirklich geschenkt sind:
1) Es kann nur einen geben.

2) Heute ist kein guter Tag zum sterben.

3) Hasta la vista, baby.

OK, die sollten klar sein. So, jetzt die einfachen:
4) Mick, Mick, Mick! Verdammt, Mann, sing deutlich.

5) Her kommen sie mal, Frau!

6) Du musst zugeben, dass ich auf dieser Stadt wie auf einer Teufelsharfe
   gespielt habe.

7) And what charming underclothes you wear...
8) ...Sie wissen zum Beispiel, dass ich keine Unterwaesche trage.

9) Messer? Das ist doch kein Messer. DAS hier ist ein Messer.

10) Sehr wohl, Euer Majy.  (Ich bin mir hier nicht sicher, ob sich das so
     schreibt.)

11) Er schleimte mich voll.

12) Quid pro quo, <name>

Zu leicht? OK, wie waer's hiermit?
13) Das alte Spiel: boeser Bulle - ganz boeser Bulle.

14) Moment mal. Was ist denn, wenn einer im Flugzeug fliegt und durch die
    Zeitzonen reist? Ich meine: Irgendwo ist doch immer nach Mitternacht.

15) C1: Ah, ich verstehe: boeser Bulle (zu C2), guter Bulle (zu C3).
    C3: Schnauze.
    C1: Ach, so: boeser Bulle, noch'n boeser Bulle.

16) C1 (zu vielen Polizisten): Waffen runter und verzieht euch, oder ich leg
    die Geisel um.
    C2 (zu C1): Moment mal - Sie legen die Geisel um? Sie SIND die Geisel.
    C1 (zu C2): Halt die Schnauze und gib mir Deine Kanone.

17) Jippijajeh, Schweinebacke.

18) Wer ist Bernsey?

19) Sie: Die meissten Serienmoerder behalten eine Art Trophae von ihren
Opfen.
    Er: Tat ich nie.
    Sie: Nein. Sie haben sie gegessen.

Auch noch einfach, gell? OK, jetzt wird's langsam schwerer:
20) Der kaelteste Winter, den ich je erlebt habe, war der Sommer, den ich
    in San Francisco verbracht habe.

21) Es war, als blickte man in das Antlitz der Liebe.

22) Er: ...und was macht Ihr Buch?
    Sie: Das schreibt sich ganz von selbst.

23) Gebt dem Luder ordentlich Puder.

24) Sie: ...Dir waechst ein wildes Tier aus der Hose!
    Er: Danke, Schatz. Ich hab uebrigens einen Hund dabei.

25) Er(1): Fuck...
    Sie: Was soll's. Die waren doch alle schon halb besoffen, als ich
rauskam.
    Er(2): Sie sagt fuck...
    Sie: Mein Gott, ich hab's gesagt, nicht gemacht!

26) Wir sind mit dem Essen fertig, er langt ueber den Tisch, reisst mir ein
    Haar aus und putzt sich damit die Essensreste aus dem Zaehnen.

27) (Im Gerichtssaal) Achtung! Ein Offizier ist anwesend!

28) Sie(1): Ausgesprochen huebsch... Entzueckend...
Wunderschoen...(erschrickt)
    Sie(2): Und was empfehlen Sie hier?
    Sie(1): Moeglichst nur nachts zu spielen.

29) Das hier ist Wunderkleber. 1001 Verwendungsmoeglichkeit. Und jetzt
    gibt's 1002.

30) Ich werde mich biegen wie das Schilf im Winde.

31) Sie: ...du bist so... amerikanisch.
    Er: Und du, du bist so - hmmm - tschecheslovakisch.


So, zum Abschluss noch was fuer Profis   ;)
32) Ein Mensch, der Blacky heisst, ist niemals aufrichtig, Roberta.

33) 'WIR sind das Volk!' ist nicht das gleiche wie 'Wir SIND das Volk!'.
    Das verdreht den Sinn. ... Kurz gesagt: Wir werden die Plaketten nicht
    bezahlen.

34) Er(1): Ist ihr Anwalt da?
    Er(2): Ich bin der Anwalt.
    Er(1): Oh... (Mein Vetter Winnie)

Einsendeschluss ist uebrigens der 20.Februar - viel Zeit also, Videotheken
zu durchsuchen etc.

Have Fun - Silvana

PS: Ach - um Geruechten vorzubeugen: Bei dem Preis geht es NICHT um einen
    Schlafplatz bei der Party... ;)

-----------------------------------------------------------------------------



links-rechts (Zardoz,  9. Feb 1996, 14:38:32):
Hier mal ne kleine Denksportaufgabe:

Also, angenommen man stellt ueber Funkt mit Ausserirdischen einen Kontakt
her, man lernt die Sprache und loesst alle kommunikativen Probleme.
Wie erklaert man den Ausserirdischen, was bei uns links und rechts ist,
wenn man auf keine asymetrischen Sternbilder/Konstellationen verweisen
kann und man ihnen auch keinen Lichtstrahl polarisierten Lichts schicken
kann?

Wer diese Aufgabe kennt, soll bitte nicht gleich die richtige Loesung
hier posten, sondern die anderen mal ueberlegen lassen :)
Wer Vorschlaege hat, kann sie mir mal mailen, ich werde dann schon
begruenden, warum es so nicht geht :))

Zardoz
P.S. Es gibt natuerliche eine (bzw. mehrere Loesungen)
P.P.S argl, soll natuerlich Funk heissen, um nur einen der vielen Fehler
zu korrigieren :)

-----------------------------------------------------------------------------



Affentheater ? (Ryne, 14. Feb 1996, 20:15:33):
Nur ein kleines Quiz, recht einfach:
Wo ist diese Sache passiert ?

Nun ja, da der Affe des Hauses nicht mehr unter uns weilt, muss dieses Lokal
voruebergehend geschlossen werden. Enttaeuscht gehst Du aus der Kneipe.


Ueberrascht, in einer (eigentlich bekannten Region des MG auch noch neues zu
finden,

Rzne.

-----------------------------------------------------------------------------



Weg mit den Geldnoeten? (Yantro, 15. Feb 1996, 08:40:04):

Heya,

hier mal eine kleine Sache, die ich noch aus alten Zeiten aus einer
Schuelerzeitung habe, die aber immer wieder fuer Verwirrung (NEIN, nicht DU)
sorgt:

A leiht sich bei B und C jeweils 25 DM. Mit diesen 50 DM und seiner Freundin
geht er dann was nettes essen, was ihn von den 50 DM 45 DM kostet. Also hat er
noch 5 DM ueber. Nun geht er zu B und C und zahlt jeweils 1 DM der Schulden
zurueck. A hat nun noch 3 DM, aber 2*24 DM Schulden. Dies zusammengezogen
hiesse aber, dass er nicht 50, sondern 51 DM hat. Wo ist die 1 DM her? Wo
steckt der Denkfehler? Wieso kann ich nicht zu 2 Banken gehen und damit
Geldscheffeln?

Loesung bitte per mail an mich. Diskutieren koennt ihr auch hier :)

                       Yantro, demnaechst reich :)

-----------------------------------------------------------------------------



Links 1 DM, rechts 1 DM Schulden, das sind dann schon 2 DM  (Tryfan, 15. Feb 1996, 14:02:12):
Also die Aufgabe von Yanrtro ist ja nun fast schon zu einfach.
Aber das mit dem rechts-links bereitet mir schlaflose Naechte.
MIr faellt einfach keine Loesung ein. Muss man da mit Spiegelsymetrien ran,
oder Nichtkummutativitaeten von Drehungen ausnutzen, oder unterscheidet
Links von Rechts eigentlich gar nicht? *argl*
Bitte , bitte erloese mich endlich von den Qualen, Zardoz, auf dass ich
mich ob der einfachen Loesung in meinen Maulwurfsgaengen verlaufen moege.
 Tryfan ist leicht verwirrt

-----------------------------------------------------------------------------



Mal was anderes.... (Morgoth, 15. Feb 1996, 18:35:49):
 1.) Wie lautet der Spitzname von Lt. Barklay?
 2.) Wie lautet der name des groessten, boesen Meister der Kholinaru?
 3.) Durch wen wurde das Krisstallinwesen zerstoert?
 4.) Wer toetete Worf Eltern und wann und wo geschah es?
 5.) Wie hiess der klingonische Austauschoffizier auf der Enterprise?
 6.) Wie heisst die klingonische Spezialitaet, die am Besten lebend
     gegessen wird?
 7.) Was heist VISOR (englisch)?
 8.) Wie lautet die Seriennummer Jean-Luc Picards?
 9.) Wo fand die erste Entscheidungsschlacht mit den Borg statt?
10.) Was stand auf Kirks T-Shirt zu Beginn von ST 5 ?
11.) Wie heissen die Wale aus ST 4 ?
12.) Wer uebernahm die zweite fuenfjahres Mission auf der NCC-1701 ?
13.) Wie heisst Picards Bruder und dessen Sohn?
14.) Wer ist der Verursacher der Mutationen in der TNG-Folge 'Genesis'
     und wie heissen die Gene, die aktiviert wurden?
15.) Von welcher Rasse war das Schiff, das zusammen mit der Enterprise
     in der Energiefalle gefangen war?
16.) Welche drei Symbole waren auf dem psionischen Resonator vorhanden?
17.) Wie heissen die beiden Rassen in der TNG-Folge 'Kontakte' ?
18.) Wie heisst die Tetrarchin der Paco?
19.) Wieviele Personen verkoerpert Data in der TNG-Folge 'Der Komet' ?
20.) Wie heisst Quarks Neffe?

Diese Fragen sollten nicht allzu schwer sein. Mail bitte an mich.
Morgoth

-----------------------------------------------------------------------------



Re: Mal was anderes.... (Grimmborn, 26. Feb 1996, 21:31:32):
~#! rn=Morgoth rt=824405749
~#! tid=824405749

Klar sind die Fragen nicht schwer.
Die Antworten andererseits...
Nur als Frage meinerseits: Verraetst Du auch, worum es geht? Sowas in der Art
wie "Mittelerdequiz" oder "Wer kennt die folgenden Liedzeilen" waere nett.

GdA

-----------------------------------------------------------------------------



3 Toechter (Wendellgee, 27. Feb 1996, 12:48:33):
Ein Vertreter kommt zu einem Haus. Er klingelt und eine Frau kommt heraus. Er
fuehrt ihr sein Produkt vor und die Frau ist interessiert. Sie sagt:

Ich kaufe Ihnen das ab, wenn Sie mir sagen koennen, wie alt meine drei
Toechter sind. Die Summe der drei Zahlen ist meine Hausnummer und das Produkt
ist 36.

Der Vertreter denkt nach und sagt dann:

Nein, das kann ich leider nicht loesen.

Die Frau entgegnet:

Na gut, noch ein Tip: Meine aelteste Tochter spielt Klavier.

Der Vertreter denkt noch einmal nach, dann kann er ihr die drei Zahlen
nennen.

Die Fragen lauten nun: Wie alt sind die drei Toechter, und wie ist der
Vertreter darauf gekommen?

-----------------------------------------------------------------------------



Re: 3 Toechter (Asmodis, 27. Feb 1996, 17:07:07):
~#! rn=Wendellgee rt=825421713
~#! tid=825421713
Wie ist denn die Hausnummer? hab ich irgendwie nicht gelesen.

-----------------------------------------------------------------------------



Re: Re: 3 Toechter (Ulo, 27. Feb 1996, 17:07:52):
~#! rn=Asmodis rt=825437227
~#! tid=825421713
das ist ja der gag, die sollst du auch noch rauskriegen :)
Ulo.

-----------------------------------------------------------------------------



Re^3: 3 Toechter (Freund, 27. Feb 1996, 20:24:10):
~#! rn=Ulo rt=825437272
~#! tid=825421713
Tja, die Hausnummer BRAUCHT man bei dieser seltenen Aufgabenart auch nicht.
Ich habe eine Loesung, ich denke, man sollte sie nicht
hier posten, oder?

Freund, der diese Rubrik sonst immer ueberliest...

-----------------------------------------------------------------------------



rot oder schwarz, aber warum? (Tryfan, 27. Feb 1996, 21:33:04):
Hi,
 hier mal ein etwas komplizierteres Raetsel, wie ich meine. Aber man muss 
aehnlich, wie bei dem mit dem Vertreter denken.

 Vorrede:
Also, Ausserirdische kidnappen drei Menschen, die sie fuer sehr intelligent
halten. Nun wollen sie herausbekommen, wer der intelligenteste von ihnen
ist. In zahlreichen Tests haben sie ihre Intelligenz unter Beweiss gestellt,
und es lies sich einfach kein Unterschied herausfinden. 
 Nun entschliesst man sich zu einer drastischen Massnahme, zu einem letzten 
Test. Man macht den dreien klar, dass nur der Gewinner des Test ihn ueberleben
wird. Nur wer die richtige Antwort auf eine Frage als erster gibt, wird
ueberleben, die anderen getoetet. Falsche Antworten fuehren zum sofortigen Tod!

 Hier kommt die eigentliche Aufgabe:
Die drei Menschen werden in einem Raum gefuehrt, in dem ein Tisch steht, auf
dem fuenf Kappen liegen, drei rote und zwei schwarze. Den dreien werden die 
Augen verbunden und jeweils eine Kappe aufgesetzt. Die zwei uebriggebliebenen
Kappen werden entfernt. Die drei werden so in einen Kreis gesetzt und gefes-
selt, dass sie sich nicht bewegen koennen. Nun wird die Frage gestellt. 
          'Welche Farbe hat die Kappe, die Du aufhast?'
Allen werden nun gleichzeitig die Augen frei gemacht. Natuerlich koennen sie
nur die Kappen der jeweils anderen nicht aber die eigene sehen!

 Nun Deine Aufgabe: 
Stell Dir vor, Du waerest dabei, und die anderen beiden haben rote Kappen auf.
Wie lautet Deine Antwort und warum? Sei Dir sicher, dass sie stimmt! Eine 
falsche Antwort bedeutet Deinen Tod. Und sei schnell! Denn deine Mitstreiter 
sind nicht dumm!

P.S.: Niemand kann mogeln, und die Ausserirdischen haben auch nicht gemogelt.

 Loesungen bitte wie immer NICHT in die MPA, sondern diesmal an mich.

-----------------------------------------------------------------------------



Re: rot oder schwarz, aber warum? (Cub, 27. Feb 1996, 21:55:43):
~#! rn=Tryfan rt=825453184
~#! tid=825453184
Da ich diesen intellektuellen Kram eh nicht verstehe:

Kriegen wir irgendwann die Antwort auch in der MPA zu lesen ?

Rzne, geht jetzt ausnahmsweise was metzeln.

-----------------------------------------------------------------------------



Re: Re: rot oder schwarz, aber warum? (Anatol, 27. Feb 1996, 21:58:01):
~#! rn=Cub rt=825454543
~#! tid=825453184

Unmittelbar nach Erscheinen des vorigen Artikels:
"Ryne   I S T   J E T Z T   N I C H T   M E H R   D A !!!"

Wo geht der Kerl metzeln???
Ueberlegt sich das in Zukunft mit Muenster NOCH genauer,
Anatol


-----------------------------------------------------------------------------



Re: Re: rot oder schwarz, aber warum? (Mango, 27. Feb 1996, 21:58:32):
~#! rn=Cub rt=825454543
~#! tid=825453184


          Da kann ich Rzne nur zustimmen.


Mango, tierisch dumm.




-----------------------------------------------------------------------------



Re^4: 3 Toechter (Asmodis, 27. Feb 1996, 22:20:37):
~#! rn=Freund rt=825449050
~#! tid=825421713
Also ich hab da 2 Loesungen, welche soll richtig sein ?

-----------------------------------------------------------------------------



Re: rot oder schwarz, aber warum? (Tryfan,  4. Mar 1996, 13:14:36):
~#! rn=Tryfan rt=825453184
~#! tid=825453184
  Ein Vertreter ruft: rot!
Alle, die sich der Aufgabe gestellt haben, haben ihr Leben behalten.
Ich poste hier mal die Erklaerung von Snuggle. Sie scheint mir am ausfuehr-
lichsten.
ich nenn die drei mal a b und c, wobei ich selber c bin.
angenommen ich habe eine schwarze kappe auf, so denkt a sich: wenn b die
schwarze kappe von c sieht, muesste er, falls ich selber eine schwarze kappe
aufhabe,sofort rot schreien, da ers nicht tut, habe ich eine rote kappe auf
Ergebnis: er schreit rot
Das selbe gilt fuer b
da keiner von beiden dieses tut, muessen sie den gleichen komplizierten
gedankegang verfolgen, wie ich soeben, da ich aber schneller bin, rufe ich
vorher rot: :-)

Auch Anatol, Snuggle, Mika und Zephyr konnten noch die richtige Loesung und
Erklaerung geben. Argl, Predator sollte das heissen.
Also nochmal : Anatol, Predator, Snuggle, Mika und Zephyr
 Herzlichen Glueckwunsch :)
	Tryfan

-----------------------------------------------------------------------------



Re: Re: rot oder schwarz, aber warum? (Amonsul,  5. Mar 1996, 11:40:11):
~#! rn=Tryfan rt=825941676
~#! tid=825453184
Und was ist, wenn einer oder zwei von den anderen farbenblind ist?

-----------------------------------------------------------------------------



Loesung fuer die 3 Toechter (Wendellgee,  5. Mar 1996, 12:24:37):
Um endlich Licht in die Sache zu bringen, hier die offizielle Aufloesung:

Es gibt folgende Moeglichkeiten, um das Produkt 36 zu erreichen:
1 1 36
1 2 18
2 2 9
1 3 12
2 3 6
3 3 4
1 6 6

die hausnummern waeren in diesen faellen:
38
21
13
16
11
10
13

Wie man sieht, ist die hausnummer bei 2 2 9 und bei 1 6 6 gleich

der vertreter konnte das raetsel nicht sofort loesen, weil die hausnummer 13
war

die loesung ist 2 2 9, weil es bei 1 6 6 zwei toechter4e gibt, die gleich alt
sind.

WendellGee.

-----------------------------------------------------------------------------



ergaenzung zur loesung (Wendellgee,  5. Mar 1996, 12:29:20):
natuerlich sind auch bei 2 2 9 zwei gleich alt, aber die aelteste ist
eindeutig definiert.
Noch mal tschuess, WendellGee

-----------------------------------------------------------------------------



kugeln (Wendellgee,  5. Mar 1996, 13:12:37):
Du hast 12 Kugeln, die alle gleich aussehen.
Alle Kugeln sind gleich schwer, bis auf eine.
Diese Kugel ist entweder schwerer oder leichter, du weisst jedoch nicht, was.

Du hast eine Waage mit zwei Waagschalen, auf die beliebig viele Kugeln
passen.
Du darfst drei Mal die Waage benutzen, dann musst du wissen, welche Kugel
anders ist, und ob sie leichter oder schwerer ist.

Anmerkung: Ich kenne die Loesung nicht, ich brauche viel Mal, um es zu
schaffen.

Viel Spass, WendellGee

-----------------------------------------------------------------------------



Re: kugeln (Terrorist,  5. Mar 1996, 13:16:33):
~#! rn=Wendellgee rt=826027957
~#! tid=826027957

Auweia das klingt mir verdammt nach Tarko REub und ich glaube nicht das es
die AMgs gern sehen wenn man die Loesung und der Zeitung postet.
Also versuch selber drauf zu kommen

Terrorist weiss wie es geht.

-----------------------------------------------------------------------------



Re: kugeln (Bloodyharry,  5. Mar 1996, 13:17:09):
~#! rn=Wendellgee rt=826027957
~#! tid=826027957

Das ist doch eine Aufgabe aus dem Tarko-Reub_quest!
Wer die loesung hier oeffendlich postet, wird geloescht!! :-)

BloodyHarry

-----------------------------------------------------------------------------



Re: kugeln (Morgoth,  5. Mar 1996, 13:21:56):
~#! rn=Wendellgee rt=826027957
~#! tid=826027957
aehm...das ist bestandteil einer quest....nimm das lieber raus

-----------------------------------------------------------------------------



Re: kugeln (Yendi,  5. Mar 1996, 13:41:57):
~#! rn=Wendellgee rt=826027957
~#! tid=826027957

Soll ich auch noch mal?
OK!

Also, Wendellgee, Du, das ist so, also, dieses Raetsel mit den Kugeln, ja,
das ist naemlich Bestandteil einer Quest hier, ja, und ich finde es ja ganz
toll, wenn Du hier so ein Quiz veranstaltest, ja, aber Du, also Du, da koennte
der Magier, der die Quest geschrieben hat, also echt total sauer werden, ja,
weil naemlich die Leute, die da reinrennen ja vielleicht schon die Loesung in
der Zeitung gelesen haben, ja, und das waere dann ja echt nicht so toll,
nicht?
Also, ich finds total gut, dass Du da Verstaendnis hast, also echt, Du...




So, sonst noch jemand, dem die Verwandschaft zum Tarko-Reub-Raetsel
aufgefallen ist?


-----------------------------------------------------------------------------



erklaerung (Wendellgee,  5. Mar 1996, 13:52:54):
ich hatte keine ahnung, dass dieses raetsel aus einem quest stammt, ich habe
es von einem freung gehoert (nicht im internet)
ich wuerde die loesung trotzdem gerne wissen, koennte sie mir jemand
persoenlich schicken?
WendellGee

-----------------------------------------------------------------------------



Re: erklaerung (Yendi,  5. Mar 1996, 13:55:32):
~#! rn=Wendellgee rt=826030374
~#! tid=826030374


Hey, _so_ schwer ist es wirklich nicht! Versuch es lieber selber! :)


-----------------------------------------------------------------------------



3 matrosen (Wendellgee,  5. Mar 1996, 14:04:04):
In einer Hafenkneipe sitzen drei Matrosen an einem Tisch, ein Chinese, ein
Indianer und ein Neger.
Da sagte der mit der weissen Jacke: Mir faellt gerade auf, dass keiner von
uns eine jacke traegt, die seiner hautfarbe entspricht.
stimmt, sagte der chinese.

(das raetsel ist ziemlich leicht)
Wer traegt welche jacke?
***

-----------------------------------------------------------------------------



Re: 3 matrosen (Highlander,  5. Mar 1996, 14:05:35):
~#! rn=Wendellgee rt=826031044
~#! tid=826031044
Der Neger traegt die weisse, der Chinese die gruene und der Indianer die
violette :>
  HrT

-----------------------------------------------------------------------------



theorie (Wendellgee,  5. Mar 1996, 14:07:47):
wir alle kennen die raetsel, bei denen man eine bestimmte figur in einem
strich nachziehen muss, ohne abzusetzen.

wie kann man innerhalb weniger sekunden erkennen, ob man eine beliebige figur
in einem strich nachziehen kann, egal, wie diese aussieht?

-----------------------------------------------------------------------------



Re: theorie (Ulo,  5. Mar 1996, 14:10:50):
~#! rn=Wendellgee rt=826031267
~#! tid=826031267
Du schaus bei den Schnittstellen, bzw. Kreuzungen nach, ob sich dort eine
gerade oder eine ungerade Anzahl von Strichen treffen. Wenn es mehr als 2
Stellen mit ungerader Anzahl gibt, kann man es nicht nachzeichnen.
Das liegt daran, dass an den Stellen, wo sich eine ungerade Anzahl von
Strichen trifft, entweder der Startpunkt oder der Endpunkt liegen muss. Und
mehr als 2 geht nicht gut :)

Ulo.

-----------------------------------------------------------------------------



Re: Re: 3 matrosen (Oetti,  5. Mar 1996, 14:12:56):
~#! rn=Highlander rt=826031135
~#! tid=826031044
Das mit dem NEger ist aber ueberhaupt nicht p.c., gelle ;-)))

Gruss

Oetti
,

-----------------------------------------------------------------------------



Re: theorie (Tryfan,  5. Mar 1996, 14:14:58):
~#! rn=Wendellgee rt=826031267
~#! tid=826031267
Hm, die Theorie nennt sich Pfadtheorie, glaub ich.
 das, wo zwei Linien zusammenstossen, wird Knoten genannt. Die Verbindungs-
linien der Knoten sind dann die Pfade. Geht von jedem der Knoten eine
grade Anzahl von Pfaden ab, aknn ich die Figur in einem Zug malen.
Dabei muss man noch beachten, dass ich mir den ersten (letzen) Pfad nur
denken koennte, aber nicht zeichne. Ich kann also auch Figuren duchzeichnen,
die zwei Punkte haben mit ungrader Knotenanzahl, indem ich mir den Pfad
denke,
der diese beiden Knoten verbindet. (Beispiel: Das Haus vom Nikolaus. ;) )
 Hab ich mich unklar genug ausgedrueckt? ;))
  Tryfan

-----------------------------------------------------------------------------



Re: kugeln (Asmodis,  5. Mar 1996, 14:26:41):
~#! rn=Wendellgee rt=826027957
~#! tid=826027957
Hmm, das Problem kenne ich irgendwoher. Tarko Reub ?? :)

-----------------------------------------------------------------------------



alt (Wendellgee,  5. Mar 1996, 14:27:54):
Wer noch nicht genug hat, kann ja noch mal das alte Raetsel probieren, wie
mal mit einem 3-liter-kanister und einem 5-liter-kanister genau 4 liter wasser
abmessen kann.
WendellGee

-----------------------------------------------------------------------------



Re: alt (Ulo,  5. Mar 1996, 14:29:47):
~#! rn=Wendellgee rt=826032474
~#! tid=826032474
Und wer die loesung nicht kennt, schaut sich nochmal Die Hard III an ...
Ulo.

-----------------------------------------------------------------------------



Re: alt (Yendi,  5. Mar 1996, 14:31:57):
~#! rn=Wendellgee rt=826032474
~#! tid=826032474

Soll ich auch noch mal?
OK!

Also, Wendellgee, Du, das ist so, also, dieses Raetsel mit den Kanistern,
das ist naemlich Bestandteil einer Quest hier, ja, und ich finde es ja ganz
toll, wenn Du hier so ein Quiz veranstaltest, ja, aber Du, also Du, da
koennte
der Magier, der die Quest geschrieben hat, also echt total sauer werden, ja,
weil naemlich die Leute, die da reinrennen ja vielleicht schon die Loesung in
der Zeitung gelesen haben, ja, und das waere dann ja echt nicht so toll,
nicht?
Also, ich finds total gut, dass Du da Verstaendnis hast, also echt, Du...


Schon gut, schon gut, ich hoer schon auf...



-----------------------------------------------------------------------------



Re: 3 matrosen (Asmodis,  5. Mar 1996, 14:33:31):
~#! rn=Wendellgee rt=826031044
~#! tid=826031044
Hmm, da steht nicht, dass alle Jacke eine Entsprechung in der Hautfarbe eines
Gegenuebers haben, also kann man nur den Besitzer der weissen Jacke
ermitteln.

-----------------------------------------------------------------------------



Re: alt (Asmodis,  5. Mar 1996, 14:37:30):
~#! rn=Wendellgee rt=826032474
~#! tid=826032474
Das gehoert auch zu einem Quest, Shaky-Island :)

-----------------------------------------------------------------------------



Re: alt (Morgoth,  5. Mar 1996, 15:19:03):
~#! rn=Wendellgee rt=826032474
~#! tid=826032474
auch aus ner quest....

-----------------------------------------------------------------------------



Nochmal Kugeln!! (Terrorist,  5. Mar 1996, 15:30:37):

Hab ich doch vorhins geschrieben das ich es geschafft hab, stimmt aber nur
mit der methode wo es eine der letzten 4 sein kann das hab ich aber erst jetzt
gemerkt und noch ein wenig nachgedacht und kam dann bis das es eine der ersten
9 is aber nicht weiter.

Wer kann mir mal per mudmail die Loesung schicken das es fuer alle Kugeln
geht? Denn bis jetzt bin ich noch ueberzeugt fuer alle klappts nicht.

Terrorist hofft auf eine eindeutige Loesung.

-----------------------------------------------------------------------------



Re: Nochmal Kugeln!! (Asmodis,  5. Mar 1996, 15:32:59):
~#! rn=Terrorist rt=826036237
~#! tid=826036237
Also ich hab ne Loesung, wo es eine von 2 sein kann, besser bekam
ich es auch nicht hin, naja, es reichte aber :)

-----------------------------------------------------------------------------



Re: Re: Nochmal Kugeln!! (Terrorist,  5. Mar 1996, 15:33:17):
~#! rn=Asmodis rt=826036379
~#! tid=826036237
Ich wills aber genau :)

-----------------------------------------------------------------------------



Re^3: Nochmal Kugeln!! (Mars,  5. Mar 1996, 15:54:30):
~#! rn=Terrorist rt=826036397
~#! tid=826036237
Also, es geht definitiv (Ich hab auch die Loesung) :
Bei jeder Waegung kann entweder die linke Waagschale schwerer
sein, die rechte Waagschale schwerer sein, oder die Waage ist
im Gleichgewicht => es gibt 27 verschiedene Faelle fuer die
drei Waegungen.
Wenn von 12 Kugeln eine leichter oder schwerer ist, als alle
anderen, gibt es 24 verschiedene Faelle fuer die falsche
Kugel.
Bei guenstiger Verteilung der Kugeln auf die Waagschalen kann
man die richtige Kugel also eindeutig bestimmem.

-----------------------------------------------------------------------------



Re^4: Nochmal Kugeln!! (Terrorist,  5. Mar 1996, 16:11:06):
~#! rn=Mars rt=826037670
~#! tid=826036237

Ich weiss zephyr hats mir gezeigt :)

Terrorist.

-----------------------------------------------------------------------------



Re: Re: kugeln (Raffi,  5. Mar 1996, 17:26:47):
~#! rn=Yendi rt=826029717
~#! tid=826027957

Auch wenn das mit den Kugeln in Tarko Reub vorkommt, so ist dieses Raetzel
leider nicht auf dem Mist des entsprechenden Magiers gewachsen (behaupte ich
einfach mal :) sondern 'Allgemeinbesitz'. Oder kann man jetzt hier einfach
irgendwelche Raetzel banishen lassen ?

Gruss
H.

-----------------------------------------------------------------------------



Re^3: kugeln (Laila,  5. Mar 1996, 17:33:51):
~#! rn=Raffi rt=826043207
~#! tid=826027957
Aber Raetsel die in Questen vorkommen sollen auch dort geloest werden, und
nicht
vorher schon in der Zeitung nachzulesen sein

Gruss

Laila

-----------------------------------------------------------------------------



Re^4: kugeln (Raffi,  5. Mar 1996, 17:37:07):
~#! rn=Laila rt=826043631
~#! tid=826027957

Und wenn demnaechst hier einer (nein ich nenne keine Namen) ein
Mittelerdequiz macht, dann ist das also auch verboten ? (es gibt ja
schliesslich auch im MG einige von dort Entliehene Sachen :)

Gruss
H.
P.S.: Endlich hab ich die MPA durch :)

-----------------------------------------------------------------------------



Re: Re: theorie (Atoz,  5. Mar 1996, 18:13:28):
~#! rn=Ulo rt=826031450
~#! tid=826031267
Also entweder ich habe deine Antwort falsch verstanden Ulo, oder sie Stimmt
nicht.
Einen Drudenfuss kann man auch in einem strich zeichnen, aber da haben alle
Kreuzungen drei schnittgeraden...
*gruebelnd* Abiszet :)

-----------------------------------------------------------------------------



Re: Re: alt (Atoz,  5. Mar 1996, 20:09:53):
~#! rn=Yendi rt=826032717
~#! tid=826032474
Hmmm also, das Raetsel in der Quest ist aber ein bisschen anders Yendi. Die
mengen angaben sind etwas anders....
Tschau Atoz

-----------------------------------------------------------------------------



Re: Nochmal Kugeln!! (Fyt,  6. Mar 1996, 10:01:13):
~#! rn=Terrorist rt=826036237
~#! tid=826036237
Es geht mit drei Waegungen, ich fibd das Problem nichttrivial
und werde mich hueten irgendwas per MudMail zu verschicken...

Das Raetsel in der QUest is uebrigens etwas entschaerft...

Fyt.

-----------------------------------------------------------------------------



Re^4: Nochmal Kugeln!! (Fyt,  6. Mar 1996, 10:03:10):
~#! rn=Mars rt=826037670
~#! tid=826036237
Hm, Mars, Du musst freilich sicherstellen, dass Deine
Waegungen die Moeglichkeite auch ungefaehr dritteln...
Wenn Du irgendwie wiegst, dass nuetzt Dir auch die t
theoretische Moeglichkeit der Unterscheidung von 27
Kugeln nix :)

Fyt.

-----------------------------------------------------------------------------



Re: Re: alt (Li,  6. Mar 1996, 10:50:34):
~#! rn=Ulo rt=826032587
~#! tid=826032474
oder "kopfball" vom vorletzten Sonntag....

-----------------------------------------------------------------------------



Re: Re: kugeln (Mango,  6. Mar 1996, 12:57:06):
~#! rn=Bloodyharry rt=826028229
~#! tid=826027957



         Ist das dann eine KL?


Mango.


-----------------------------------------------------------------------------



->Artikel 1 in d.gebirge (Paracelsus,  6. Mar 1996, 13:00:16):
Frage: Was meint bloss Silvana mit:
"Ich habe eine Kleinigkeit in Cronoertal geaendert." ?

Para.

-----------------------------------------------------------------------------



Re^5: Nochmal Kugeln!! (Mars,  6. Mar 1996, 17:03:17):
~#! rn=Fyt rt=826102990
~#! tid=826036237
Ja, ich hab aber geschrieben, dass ich eine Loesung habe. Also ist die
Existenz sichergestellt.
Falls man uebrigens nur rausfinden will, welche Kugel "falsch" ist, und
nicht, ob sie leichter oder schwerer ist, kann man sogar 13 Kugel ver-
wenden :)

-----------------------------------------------------------------------------



Re: erklaerung (Catweazle,  6. Mar 1996, 19:22:14):
~#! rn=Wendellgee rt=826030374
~#! tid=826030374
Ich geb Dir einen Tip:
Eine Balkenwaage hat nicht 2 moegliche Positionen, wie man eigentlich
erst mal annehmen koennte, sondern drei!
Vielleicht hilfts ja :)
YTC

-----------------------------------------------------------------------------



Catweazle weiss auch ein Raetsel :) (Catweazle,  6. Mar 1996, 19:35:35):
Hiho!

Ok, hier ein uraltes Raetsel, trotzdem nicht einfach.

       HAUS1             HAUS2              HAUS3



       E-WERK            GAS-WERK           WASSER-WERK


Okok. Aufgabe ist es jedes der drei Haeuser mit einer Leitung (Linie)
mit allen drei Werken zu verbinden. Genauer: Jedes Haus braucht 3 Leitungen
zu je einem WErk (ich hoffe das ist verstaendlich :-)
Das Problem: Keine der Linien duerfen sich ueberkreuzen!
Das Problem ist uebrigens nichttrivial.

Wer die Loesung weiss, bitte mail an mich.
Ytc

-----------------------------------------------------------------------------



Re: Catweazle weiss auch ein Raetsel :) (Rochus,  6. Mar 1996, 20:49:06):
~#! rn=Catweazle rt=826137335
~#! tid=826137335
Dazu habe ich folgende Loesung gefunden:
---
The problem you describe is to draw a bipartite graph of 3 nodes connected in
all ways to 3 nodes,
all embedded in the plane. The graph is called K3,3. A famous theorem of
Kuratowsky says that all
graphs can be embedded in the plane, EXCEPT those containing a subgraph that
is topologically
equivalent to K3,3 or K5 (the complete graph on 5 vertices, i.e., the graph
with 5 nodes and 10
edges). So your problem is a minimal example of a graph that cannot be
embedded in the plane.

The proofs that K5 and K3,3 are non-planar are really quite easy, and only
depend on Euler's
Theorem that F-E+V=2 for a planar graph. For K3,3 V is 6 and E is 9, so F
would have to be 5.
But each face has at least 4 edges, so E >= (F*4)/2 = 10, contradiction. For
K5 V is 5 and E is 10,
so F = 7. In this case each face has at least 3 edges, so E >= (F*3)/2 =
10.5, contradiction.

The difficult part of Kuratowsky is the proof in the other direction!

A quick, informal proof by contradiction without assuming Euler's Theorem:
Using a map in
which the houses are 1, 2, and 3 and the utilities are A, B, and C, there
must be continuous lines
that connect the buildings and divide the area into three sections bounded by
the loops
A-1-B-2-A, A-1-B-3-A, and A-2-B-3-A. (One of the areas is the infinite plane
*around*
whichever loop is the outer edge of the network.) C must be in one of these
three areas; whichever
area it is in, either 1, or 2, or 3, is *not* part of the loop that rings its
area and hence is inaccessible
to C. The usual quibble is to solve the puzzle by running one of the pipes
underneath one of houses
on its way to another house; the puzzle's instructions forbid crossing other
*pipes*, but not
crossing other *houses*.

---
Mit anderen Worten: Es geht nicht :)

-----------------------------------------------------------------------------



Re: Re: Catweazle weiss auch ein Raetsel :) (Duvain,  6. Mar 1996, 22:56:09):
~#! rn=Rochus rt=826141746
~#! tid=826137335
Mit ebendiesem Raetsel habe ich vor einiger Zeit einen Mathematiker genervt.
Schade eigentlich, dass er nicht drauf reingefallen ist, da er auf den
ersten Blick die Loesbarkeit ueberblickt hat :-(
Was hab ich heute gelernt? "plaettbar" heisst "embeddable to the plane" :-)
Duewaeng

-----------------------------------------------------------------------------



Re^3: Catweazle weiss auch ein Raetsel :) (Rumata,  7. Mar 1996, 00:03:00):
~#! rn=Duvain rt=826149369
~#! tid=826137335
Wieso, ich habe eine Loesung.
Ich habe sie gerade auf einen Bagel gemalt :-)
Rumata

-----------------------------------------------------------------------------



Re: Loesung fuer die 3 Toechter (Acrimon,  7. Mar 1996, 01:46:41):
~#! rn=Wendellgee rt=826025077
~#! tid=826025077
Nein, zwei Toechter, die 6 Jahre alt sind, sind niemals gleich alt!
Es gibt immer eine Aeltere.

Acrimon der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Loesung fuer die 3 Toechter (Jasper,  7. Mar 1996, 01:47:58):
~#! rn=Acrimon rt=826159601
~#! tid=826025077
und wenn sie parallel rausgeflutscht sind ? :)

-----------------------------------------------------------------------------



Re^6: Nochmal Kugeln!! (Catweazle,  7. Mar 1996, 16:33:55):
~#! rn=Mars rt=826128197
~#! tid=826036237
Hi!
Deine Rechnung ist interessant, Mars :)
Wuerde es Dich verblueffen, wenn ich sage, das man es auch aus 14 Kugeln
eindeutig bestimmen kann? *grins breit und fies*
Yours truly,
  Catweazle (hat mit diesem Raetsel schon diverse Kisten Bier gewonnen)
             noch einen fuer Grimmborn :)

-----------------------------------------------------------------------------



ACHTUNG ACHTUNG! (Creative, 12. Mar 1996, 12:34:04):

Wer mitmachen mag:

Die schoensten Saetze, deren Woerter mit den Anfangsbuchstaben 'A E I O U'
beginnen, werden praemiert. Zumindest veroeffentlicht :)

Man kann die Reihenfolge auch vertauschen...

Viel Spass...

-Crea-

-----------------------------------------------------------------------------



Re: ACHTUNG ACHTUNG! (Creative, 12. Mar 1996, 12:36:22):
~#! rn=Creative rt=826630444
~#! tid=826630444

Es gilt nicht:
Alles Erdreich ist Oesterreich untertan. Das ist naemlich schon alt :)
War aber gleichzeitig ein Beispiel.
Have Fun...

-Crea-


-----------------------------------------------------------------------------



Re: Re: ACHTUNG ACHTUNG! (Ulo, 12. Mar 1996, 12:45:11):
~#! rn=Creative rt=826630582
~#! tid=826630444
das ist Alles Ein Idiotischer Organisatorischer Unsinn!
Ulo.

-----------------------------------------------------------------------------



Re^3: ACHTUNG ACHTUNG! (Kramka, 12. Mar 1996, 13:32:53):
~#! rn=Ulo rt=826631111
~#! tid=826630444
Ohne Alkohol Ist Eierschaukeln Unmoeglich

-----------------------------------------------------------------------------



Re^4: ACHTUNG ACHTUNG! (Engywuck, 12. Mar 1996, 13:40:18):
~#! rn=Kramka rt=826633973
~#! tid=826630444
Fast, Loco. Richtig muss es heissen:
Ohne Alkohol Ist Engywuck Unertraeglich.

Oder so... Ciao, Engy

-----------------------------------------------------------------------------



Re^5: ACHTUNG ACHTUNG! (Loco, 12. Mar 1996, 13:56:30):
~#! rn=Engywuck rt=826634418
~#! tid=826630444
Huch? Seit wann ist Kramka mein Zweity? Das wusste ich ja noch gar nicht...
dass alle Tuebinger Mudder meine Zweities sind, ist ja schon bekannt, das
musste ja Gwynwaiter gestern schon undedingt rumposaunen, nachdem es 3 Jahre
keiner gemerkt hatte :-( . Aber jetzt auch schon die Dortmunder...

Aehm...
          Loco oder wer auch immer...

-----------------------------------------------------------------------------



Zweiti !! (Kramka, 12. Mar 1996, 13:59:59):
Ich bin immer noch der Zweiti von Laila und nehme meinen Job sehr sehr ernst.
Also keinen Unterstelltungen oder sontiges bitte

Kramka, Laila's Beschuetzer und Diener

-----------------------------------------------------------------------------



Re^4: ACHTUNG ACHTUNG! (Fyt, 13. Mar 1996, 01:04:42):
~#! rn=Kramka rt=826633973
~#! tid=826630444
Auch ein Ire operiert Ungarinnen... hm :) mir faellt auf die schnelle
nix besseres ein :)

Fyt.

-----------------------------------------------------------------------------



Entfernung PV <-> HE ? (Tryfan, 13. Mar 1996, 21:49:32):
Hm, es gibt Fragen, die hoeren sich so unmoeglich an, dass ihre Antwort
fast schon wieder ganz einfach wird, wenn man darueber nachdenkt.

Also: Da starten zwei grosse Schiffe gleichzeit an gegenueberliegenden Ufern 
 von einem See und fahren direkt auf einander zu. Das eine faehrt dabei genau 
 dreimal so schnell wie das andere. Zwischen ihnen fahert noch ein schnelleres
 kleines Schiff immer zwischen ihnen hin und her. Es kann in nullkommanix
 wenden und ist genau doppelt so schnell wie das schnellere der grossen, mit
 dem es gleichzeitig gestartet ist. 
 Wie weit ist nun das kleine Schiff gefahren, wenn die beiden grossen sich
 treffen?

P.S.: Wir nehmen mal an, dass die Boote keine Ausdehnung haben.

	Antworten bitte an mich, Tryfan

-----------------------------------------------------------------------------



Mal ne Frage... (Mango, 13. Mar 1996, 22:13:22):


kommen zu diversen Raetseln die nicht aus Quests stammen auch mal die
loesungen?



Mango, manchmal saudeppert.


-----------------------------------------------------------------------------



Re: Mal ne Frage... (Hadra, 13. Mar 1996, 22:26:15):
~#! rn=Mango rt=826751602
~#! tid=826751602
gegenfrage:

kommen zu all den brachliegenden raetseln auch mal irgendwann quests?

hadra - ueberlegt ob der artikel verlegt gehoert. duhu cahat?

-----------------------------------------------------------------------------



Re: Entfernung PV <-> HE ? (Anatol, 14. Mar 1996, 16:40:54):
~#! rn=Tryfan rt=826750172
~#! tid=826750172

Wenn der Kleine ein Segler ist und kreuzen muss, wird es happig ;-)
Grinst Tryfans Raetselbuch breit an,
Anatol.


-----------------------------------------------------------------------------



Re: Re: Entfernung PV <-> HE ? (Tryfan, 14. Mar 1996, 17:40:35):
~#! rn=Anatol rt=826818054
~#! tid=826750172
Da mich auch noch nicht ein Anflug einer Loesung erreicht hat, gebe ich
noch einen kleinen Tip. Es ist voellig egal, ob das kleine Schiff segeln,
kreuzen oder sonstwas muss.
    Tryfan, der leider noch kein Raetselheft hat

-----------------------------------------------------------------------------



Re: Entfernung PV <-> HE ? (Caradhras, 15. Mar 1996, 19:03:11):
~#! rn=Tryfan rt=826750172
~#! tid=826750172
Wenn die beiden grossen sich treffen, ist das kleine kaputt und weit
unter die Wasseroberflaeche gesunken, also wird es kaum hin und herfahren
bis die zwei Schiffe sich treffen, denn die Leutchen wollen ja nicht
sterben.

        Caradhras + Logik = ? :)

-----------------------------------------------------------------------------



Loesung: Entfernung PV <-> HE (Tryfan, 20. Mar 1996, 10:13:00):
Hi, diejenigen, die die Loesung fanden, meinten ja dann auch, dass die
Aufgabe eigentlich viel zu einfach war.
 Wenn die beiden grossen Schiffe sich treffen, hat das schneller von ihnen
3/4 des Abstandes der Ufer zurueckgelegt, da es dreimal so schnell wie das
langsamere war. Da das kleine doppelt so schnell ist, hat es 3/2 = 1.5 mal
die Entfernung der Ufer zurueckgelegt. Die Antwort lautet also: Das kleine
Schiff ist 1.5 mal die Entfernung der Ufer gefahren.
 Wo es hergefahren ist, ist also wirklich belanglos, solange es nur immer
schoen mit der selben Geschwindigkeit fuhr.
 Die Loesung fanden:
     Grimmy, Mars, Dauergast, Spatz und Wendellgee
 knapp daran waren :
     Mika, Durian? und Predator?

PS: Die Aufgabe stammt nicht aus einem Raetselbuch sondern von einem
    Spaziergang mit Zephyr *knuddel* an der Siegmuendung in Bonn. *grins*

-----------------------------------------------------------------------------



Re: Loesung: Entfernung PV <-> HE (Fyt, 20. Mar 1996, 17:46:22):
~#! rn=Tryfan rt=827313180
~#! tid=827313180
Hm, Tryfan, Du hast also mit Zephyr vor 20 Jahren Raetselbuecher verfasst?

Oder war das schon das neue Raetsel?

Fyt, grueblend :)

-----------------------------------------------------------------------------



Re: Loesung: Entfernung PV <-> HE (Tasha, 20. Mar 1996, 20:25:17):
~#! rn=Tryfan rt=827313180
~#! tid=827313180
*staun* Hast Du Zephyr aus Spass ueber die Sieg oder gar den Rhein schwimmen
lassen? Oder seit Ihr um die Wette geschwommen und habt dabei ein
Quietscheentchen zwischen euch hin und her flitzen lassen?

Beeindruckt ueber die Herkunft der Raetsel, Tasha

-----------------------------------------------------------------------------



Re^7: Nochmal Kugeln!! (Predator, 26. Mar 1996, 21:31:29):
~#! rn=Catweazle rt=826212835
~#! tid=826036237
also ich bin nicht ueberzeugt, dass man mit 3 waegungen aus 12 kugeln
diejenige kugel EINDEUTIG identifizieren kann, wenn man nicht weiss, OB sie
schwerer oder leichter ist

bin aber trotzdem mal an der loesung interessiert, also mail an mich

Predator :)

-----------------------------------------------------------------------------



Re^8: Nochmal Kugeln!! (Yendi, 26. Mar 1996, 21:35:26):
~#! rn=Predator rt=827872289
~#! tid=826036237
Doch, kann man.
Das kann man sogar bei 13 Kugeln.
Bei 14 allerdings bezweifle ich, dass es geht... Caaaat*?


-----------------------------------------------------------------------------



Re^9: Nochmal Kugeln!! (Bendeigid, 27. Mar 1996, 14:19:57):
~#! rn=Yendi rt=827872526
~#! tid=826036237
Echt? sogar bei 13? Ich schliess mich da Predators Meinung an. Ich bin fast
sicher, das es OHNE Glucke NICHT eindeutig geht. Ich haette gern den Beweis
per mail, wenn sich das machen laesst.

Z'par Servu,
             Bendeigid, hat Tarko Reub schon.

-----------------------------------------------------------------------------



Re^10: Nochmal Kugeln!! (Paracelsus, 27. Mar 1996, 14:21:10):
~#! rn=Bendeigid rt=827932797
~#! tid=826036237
Jo, das wuerde mich auch mal interressieren.
Para.

-----------------------------------------------------------------------------



Re^10: Nochmal Kugeln!! (Engywuck, 27. Mar 1996, 14:25:31):
~#! rn=Bendeigid rt=827932797
~#! tid=826036237
Also, wenn die Waage nur 2 Zustaende kennen wuerde (links bzw. rechts
schwerer), dann wuerde man meiner Meinung nach nur 2^3=8 Kugeln untersuchen
koennen. Sie kennt jedoch 3 Zustaende (links schwerer, rechts schwerer und
gleich schwer) wie Cat* schon richtig bemerkte, und deshalb bin ich mir nicht
ganz so sicher und glaube, dass man durch sehr geschicktes Waegen genau diese
Zusaetzliche Information ausnutzen kann.
Aber so geschickt muss man halt erstmal sein ;)

Engy

-----------------------------------------------------------------------------



Re^8: Nochmal Kugeln!! (Horschd, 27. Mar 1996, 20:43:46):
~#! rn=Predator rt=827872289
~#! tid=826036237
Hi.

Also, ich weiss definitiv, dass es mit 12 Kugeln geht.
Musste ich mal in ner Analysis-uebung beweisen.
Fuer interessierte Magier versuch ich gern mal, den Beweis wieder
zusammenzubekommen...
Also, wer es wissen will, mail an mich.

Tschau,

Horschd


-----------------------------------------------------------------------------



Re^9: Nochmal Kugeln!! (Terrorist, 28. Mar 1996, 07:26:56):
~#! rn=Horschd rt=827955826
~#! tid=826036237

Ich kann nur sagen ich war auch unglaeubig und zephyr hat mir den Beweis
erbracht.
Fragt sie doch mal ob sie euch die loesung schickt.

Terrorist hat Tarko Reub schon hinter sich.

-----------------------------------------------------------------------------



Re^11: Nochmal Kugeln!! (Highlander, 28. Mar 1996, 09:13:45):
~#! rn=Engywuck rt=827933131
~#! tid=826036237
> koennen. Sie kennt jedoch 3 Zustaende (links schwerer, rechts schwerer und
> gleich schwer)
Schoen und gut, aber wie willst Du "links schwerer" von "rechts leichter"
unterscheiden? Das ist das Problem bei der Sache.
  HrT

-----------------------------------------------------------------------------



Re^12: Nochmal Kugeln!! (Plappermaul, 28. Mar 1996, 15:51:59):
~#! rn=Highlander rt=828000825
~#! tid=826036237
> koennen. Sie kennt jedoch 3 Zustaende (links schwerer, rechts schwerer und
> gleich schwer)
Schoen und gut, aber wie willst Du "links schwerer" von "rechts leichter"
unterscheiden? Das ist das Problem bei der Sache.
Du vergleichst eine Seite mit gleichvielen "Referenzkugeln",
d.h. die Kugeln, die du noch nicht gewogen hast.

Plappermaul

-----------------------------------------------------------------------------



Re^10: Nochmal Kugeln!! (Predator, 28. Mar 1996, 16:23:43):
~#! rn=Terrorist rt=827994416
~#! tid=826036237
Ja, Also das Problem laesst mir keine Ruhe :)

Um aus 3 Kugeln eine rauszufinden, die anders ist (also leichter ODER
schwerer ist),
sind 2 Waegungen noetig. Und um die 12 Kugeln auf 3 zu reduzieren, soll eine
Waegung
ausreichen??? - Kann ich nicht ganz glauben. Naja, irgendwann werd ich mal
Zephyr
anhauen, soll ja eine Loesung haben.


Aber folgendes Problem:
27 Kugeln, eine ist leichter, mit 3 Waegungen herausfinden welche. Ist ganz
easy

Predator, unglaeubig auf Zephyrs Loesung wartend

-----------------------------------------------------------------------------



Re^12: Nochmal Kugeln!! (Catweazle, 29. Mar 1996, 21:15:50):
~#! rn=Highlander rt=828000825
~#! tid=826036237
Moensch Highlander :)
 Du hast doch noch eine DRITTE Waegung frei :)
YTC

-----------------------------------------------------------------------------



Re^11: Nochmal Kugeln!! (Aves,  2. Apr 1996, 16:35:25):
~#! rn=Predator rt=828026623
~#! tid=826036237
Nach einer langweiliegen Zugfahrt....
Und 54 Minuten Gehirnzubreidenkens
hab ich ne loesung gefunden.
Und zwar folgende:
Man nehme *****Arghh***** **** boooom*****
******doing ****** ******zap***** ***banish*****

Aves hat sich grade entschlossen es doch nich hierherzuschreiben....

-----------------------------------------------------------------------------



Re^8: Nochmal Kugeln!! (Cauno, 18. Apr 1996, 10:36:03):
~#! rn=Predator rt=827872289
~#! tid=826036237

Es ist absolut, vollkommen, mit eindeutiger sicherheit moeglich!
Ich habe die Loesung.
				C. No

-----------------------------------------------------------------------------



Re: Nochmal Kugeln! (Jariel, 21. Apr 1996, 03:05:21):
Kugeln, Kugeln, Kugeln!

Also ich grueble nun auch schon eine Weile, kann aber keinen einzigen
Ansatz finden, der mich auf die RICHTIGE Loesung bringt! :(

Da ich nicht weiss, ob diese eine interessante Kugel schwerer oder leichter
ist, beginnen meine Gehirnwindungen schon bei der ersten Auswahl-
entscheidung zu gluehen. Wenn ich diese 12 Kugeln teile in 6 und 6 Stueck,
diese waege und zu dem Ergebnis komme, die einen 6 Kugeln sind schwerer als
die anderen, woher soll ich nun wissen in WELCHEM Kugelhaufen die gesuchte
Kugel steckt....
(und dann nur 3 Versuche)

So denn. Ich gruebel mal noch ein wenig :)
Jariel Tonack.

-----------------------------------------------------------------------------



Re: Re: Nochmal Kugeln! (Fyt, 21. Apr 1996, 17:32:18):
~#! rn=Jariel rt=830048721
~#! tid=830048721

Tja, wo steht geschrieben, dass Du 6:6 teilen musst.
Das Raetsel ist eh schon etwas entschaerft...

Fyt.

-----------------------------------------------------------------------------



Re^3: Nochmal Kugeln! (Yendi, 22. Apr 1996, 13:05:12):
~#! rn=Fyt rt=830100738
~#! tid=830048721

Soll ich mal einen Tip geben?

(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)
(Spielverderberleerzeilen)


Die Waage hat 3 moegliche Stellungen:
  - links schwerer,
  - rechts schwerer  und
  - gleich schwer!

So, das muss reichen. Fiel Fergnuegen!


        YTY


-----------------------------------------------------------------------------



Rauchzeichen (Jariel, 22. Apr 1996, 14:25:57):
Tach.

Ich bin nach laengerer Ueberlegung zu dem Schluss gelangt, dass ich mir noch
eine Woche Zeit gebe um die Loesung zu fingen. Ansonsten.....


gebe ich es auf weiter ueber Kugelnachzudenken. (dummes Terminal) Also ich
habe noch Hoffnung.

Bis in einer Woche dann
Jariel Tonack.

-----------------------------------------------------------------------------



Loesung? (Jariel, 22. Apr 1996, 18:32:34):
Ich glaub ich habe eine fast loesung ;)
Ich bin waehrend meiner Vorlesung drauf gekommen. Das einzigste Problem liegt
nur noch darin, dass In der Aufgabenstellung gesagt wurde, es ist NICHT
bekannt, ob die gesuchte KUGEL leichter ODER schwerer ist. Fuer diesen Fall
brauche ich 4 Waegungen.
Aber nettes Raetzel. *grins*

Gruss
Jariel Tonack.

-----------------------------------------------------------------------------



Re: Loesung? (Fyt, 22. Apr 1996, 20:09:19):
~#! rn=Jariel rt=830190754
~#! tid=830190754
Vier Waegungen sind aber zuviel.

Fyt.

-----------------------------------------------------------------------------



Re: Re: Loesung? (Jariel, 22. Apr 1996, 23:29:00):
~#! rn=Fyt rt=830196559
~#! tid=830190754
Ja klar, aber wenn mir bekannt ist, ob die kugel schwerer oder leichter ist,
dann brauche ich 3 Waegungen. Soweit kein Problem. Aber bei der totalen
Unwissenheit?????? sollen auch 3 reichen? das kann ich mir fast nicht
vorstellen.
Ich denke aber weiter ueber dieses Problem nach. :)

Mit Gruss.
Jariel Tonack.

-----------------------------------------------------------------------------



Re^3: Loesung? (Engywuck, 23. Apr 1996, 10:52:56):
~#! rn=Jariel rt=830208540
~#! tid=830190754
Also ich hab den test gemacht mit jemandem, der es kann.
Ich hab die Waage gespielt und derjenige hat gewogen, und ich hab moeglichst
die Antworten gegeben, die zu den wenigsten Informationen fuehren.
Trotzdem reichen 3 Waegungen aus, man kann dann sogar sagen, ob die Kugel
leichter oder schwerer ist.
Klappt wirklich ;)

Engy

-----------------------------------------------------------------------------



Re^3: Loesung? (Fyt, 23. Apr 1996, 14:22:40):
~#! rn=Jariel rt=830208540
~#! tid=830190754
Mit den drei Waegungen kannst Du in der Groessenordnung 3^3=27 Zustaende
unterscheiden. Du hast 2 (leichter/schwerer) * 12 (Anzahl der Kugeln) = 24
'Moeglichkeiten' die zu unterscheiden sind. Alles allem ein Indiz dafuer,
dass es gehen koennte...

Fyt.

-----------------------------------------------------------------------------



abgruebeln (Jariel, 23. Apr 1996, 15:37:08):
Hi!
Ich bin schon am ueberlegen, ob hier bei mir andere physikalische und
mathematische Grundsaetze eine Rolle spielen, aber es kann auch gut sein, dass
ich mich einfach bisher zu "bloed" angestellt habe ;)

Das grosse Gruebeln geht weiter.....

Mit Gruss
Jariel Tonack.

-----------------------------------------------------------------------------



Re^4: Loesung? (Ulo, 23. Apr 1996, 16:09:03):
~#! rn=Fyt rt=830262160
~#! tid=830190754
Die Abschaetzung mit den Anzahlen der moeglichen Zustaende und der Anzahl
der mit der Waage unterscheidbaren eignet sich uebrigens gut dazu, Sackgassen
zu erkennen. Wer z.B. im ersten Waegegang je 3 Kugeln in beide Schalen legt,
wird im Fall, dass die Waage im Gleichgewicht bleibt, mit 12 Moeglichkeiten
verbleiben (6 Kugeln X 2(leichter/schwerer) ). Das ist aber mehr als die
9 (=3 hoch 2) Moeglichkeiten, die die Waage unterscheiden kann.
---> Sackgasse
Bei konsequentem Vermeiden der Sackgassen laesst sich die Loesung leichter
(schneller) finden.

Ulo.

-----------------------------------------------------------------------------



Re^5: Loesung? (Ulo, 23. Apr 1996, 16:24:13):
~#! rn=Ulo rt=830268543
~#! tid=830190754
Obigen Gedankengang kann man auch darauf anwenden, die Frage mit den 13
Kugeln zu klaeren (selbes Problem, aber 13 Kugeln).
Wenn man im ersten Waegegang 4 Kugeln in beide Schalen legt, so verbleibt man
im Fall, dass die Waage im Gleichgewicht bleibt bei 10 (=5 uebrige x 2)
Moeglichkeiten, was halt >9 ist :(
Andererseits, wenn man im ersten Gang jeweils 5 Kugeln miteinander
vergleicht, bleibt man, falls sich eine der Schalen neigt ebenfalls mit 10
Moeglichkeiten (etweder eine der 5 in der gesenkten schale ist schwerer oder
eine der 5 in der leichteren Schale ist leichter) der Dumme.
--> Ich behaupte, dass es mit 13 Kugeln nicht loesbar ist.

Ulo.

-----------------------------------------------------------------------------



Re^6: Loesung? (Zephyr, 23. Apr 1996, 17:20:37):
~#! rn=Ulo rt=830269453
~#! tid=830190754
Da muss ich aber widersprechen.. auch mit 13 Kugeln kann man die falsche
noch rausfiltern, allerdings laesst sich in 1/13 der Faelle nicht sagen,
ob diese dann leichter oder schwerer ist.

Zephyr, zu jedem diesbezueglichen Test bereit

-----------------------------------------------------------------------------



Re: Re: Nochmal Kugeln! (Cauno, 24. Apr 1996, 11:32:00):
~#! rn=Jariel rt=830048721
~#! tid=830048721

Falscher Ansatz!
Man legt nie ALLE Kugeln auf die Waage.

		C. No (hat die Loesung)

-----------------------------------------------------------------------------



Um ein Ende zu finden ... (Cauno, 24. Apr 1996, 11:37:23):

Nichts gegen die Diskussion, aber ist das noch noetig?
DIe Loesung des Problems habe ich in einem 30 Jahre alten Buch auf meinem
Tisch stehen. Warum soll man dann noch Monate darueber diskutieren, ob es
moeglich ist oder nicht?
Wer allerdings die Loesung lesen moechte, wird sie in der Zeitung wohl
vergeblich suchen.

		Nicht fuer ungut, C. No

-----------------------------------------------------------------------------



Re: Um ein Ende zu finden ... (Jariel, 24. Apr 1996, 16:04:56):
~#! rn=Cauno rt=830338643
~#! tid=830338643
Vieleicht sollte man eine Rubrik Loesungen aufmchen ;)

*kicher*
Jariel Tonack.
(dern noch immer keine Loesung hat)

-----------------------------------------------------------------------------



Re^6: Loesung? (Catweazle, 24. Apr 1996, 21:30:55):
~#! rn=Ulo rt=830269453
~#! tid=830190754
Ich glaube ich wiederhole mich, es geht auch mit 14 :)
YTC

-----------------------------------------------------------------------------



 ?  (Jariel, 24. Apr 1996, 22:04:30):
Also ich habe ja nix dagegen, das es auch mit 13 und 14 gehen soll, aber das
was mich zur Zeit brennend interessiert ist, Wie mache ich es mit 12 ;)

Jariel Tonack. (immernoch am Gruebeln)

-----------------------------------------------------------------------------



Re^7: Loesung? (Fyt, 25. Apr 1996, 02:11:10):
~#! rn=Catweazle rt=830374255
~#! tid=830190754

Nach meiner 'Rechnung'  sollte es eigentlich klar sein, dass es mit
14 nicht gehen *kann*, einziger Streitfall waeren 13, da ist der
Aufwand, nachzuweissen, dass es nicht geht etwas groesser...

Fyt.

-----------------------------------------------------------------------------



Re:  ?  (Morgoth, 25. Apr 1996, 07:12:39):
~#! rn=Jariel rt=830376270
~#! tid=830376270
wie? also mit zweien ist es ja ok, drei auch, aber ZWOELF ???

-----------------------------------------------------------------------------



Re^8: Loesung? (Zephyr, 25. Apr 1996, 12:46:52):
~#! rn=Fyt rt=830391070
~#! tid=830190754
Mit 13 gehts es aber, Fyt ;)
Zephyr, mit Loesung fuer 13 und heut 'was quengelig

-----------------------------------------------------------------------------



Re^9: Loesung? (Ulo, 25. Apr 1996, 12:49:04):
~#! rn=Zephyr rt=830429212
~#! tid=830190754
Nee, eben nicht, Zephyr. Die Loesung verlangt nicht bloss, dass du die
falschgewichtige Kugel identifizierst, sondern auch, dass du immer sagen
kannst, ob sie schwerer oder leichter ist. wenn das in 1/13 der Faelle nicht
moeglich ist, hast du die aufgabe nicht geloest.
Zur begruendung der unloesbarkeit der aufgabe verweise ich nochmals auf
meinen vorherigen artikel.

Ulo.

-----------------------------------------------------------------------------



Re^10: Loesung? (Zephyr, 25. Apr 1996, 12:56:24):
~#! rn=Ulo rt=830429344
~#! tid=830190754
Hmm.. in Tarko Reub musste man aber meines Wissens nur sagen,
welche Kugel die flasche ist, und NICHT, ob sie leichter oder
schwerer ist.. also gehts in diesem Fall auch mit 13
In allen andern Faellen hast Du natuerlich recht :)
Zephyr, heute senfophil

-----------------------------------------------------------------------------



Re^11: Loesung? (Ulo, 25. Apr 1996, 13:04:37):
~#! rn=Zephyr rt=830429784
~#! tid=830190754
Hmm, hab Tarko nie gemacht. Wenns nur darum geht, die falschgewichtige zu
finden, sollte man sogar die 13 noch ueberschreiten koennen. Ich glaube mal,
dass Cat*s 14 sich auch auf die einfacherer Aufgabenstellung beziehen. Wo
liegt eigentlich die Hoechstzahl an Kugeln, bei denen man mit drei Waegungen
die falschgewichtige ermitteln kann?
Eine einfache Abschaetzung nach oben begrenzt die Zahl auf 27, aber vmtl
liegt die Zahl wohl deutlich darunter.

Ulo (setzt ein Glas Knoblauchwasser als Preisgeld aus)

-----------------------------------------------------------------------------



Re^11: Loesung? (Cauno, 25. Apr 1996, 13:06:53):
~#! rn=Zephyr rt=830429784
~#! tid=830190754

Wenn es anders waere, wuerden die Quest nur die Haelfte geschafft haben.
Die Tatsache, dass die letzte Frage weggelassen wurde, erleichtert sie nun
einmal ein wenig.
Aber zu dem klassischen Problem gehoert nun einmal, auch den Rest zu wissen!

	C. No, der die Loesung auch gerne weitergibt

		(sofern man selber schon mal drueber nachgedacht hat).


-----------------------------------------------------------------------------



Re: Re:  ?  (Jariel, 26. Apr 1996, 04:13:45):
~#! rn=Morgoth rt=830409159
~#! tid=830376270
ooooooops.  *erroet*

Jariel Tonack.

-----------------------------------------------------------------------------



