home *** CD-ROM | disk | FTP | other *** search
/ CD Direkt 1995 #1 / Image.iso / cdd / direkt / quiz / quiz.lst < prev   
File List  |  1994-06-22  |  11KB  |  408 lines

  1. SCREEN 17
  2. auf%=2
  3. einstellung
  4. ladebild
  5. erstbild
  6. DO
  7.   bild(1)
  8.   PRINT AT(28,10);"1 - Fragen einladen"
  9.   PRINT AT(28,11);"2 - Fragen Mischen"
  10.   PRINT AT(28,12);"3 - Abfragen"
  11.   PRINT AT(28,13);"4 - Neue Fragen eingeben"
  12.   PRINT AT(28,14);"5 - Fragen erweitern"
  13.   PRINT AT(28,15);"6 - Spiel beenden"
  14.   PRINT AT(33,21);"Was wollen Sie ?"'
  15.   INPUT "",a$
  16.   IF a$=CHR$(226)
  17.     help
  18.   ELSE IF a$=CHR$(225)
  19.     GOSUB ende
  20.   ELSE
  21.     IF a$="1" THEN GOSUB laden
  22.     IF a$="2" THEN GOSUB mischen
  23.     IF a$="3" THEN GOSUB abfragen
  24.     IF a$="4" THEN GOSUB eingeben
  25.     IF a$="5" THEN GOSUB erweitern
  26.     IF a$="6" THEN GOSUB ende
  27.   ENDIF
  28. LOOP
  29. PROCEDURE bild(ein%)
  30.   PUT 0,0,bild$
  31.   IF ein%=1
  32.     DEFFILL 8
  33.     PBOX 190,60*auf%,470,145*auf%
  34.     DEFFILL 0
  35.     PBOX 180,55*auf%,460,140*auf%
  36.     BOX 180,55*auf%,460,140*auf%
  37.     DEFFILL 8
  38.     PBOX 210,163*auf%,450,175*auf%
  39.     DEFFILL 0
  40.     PBOX 200,158*auf%,440,170*auf%
  41.     BOX 200,158*auf%,440,170*auf%
  42.   ELSE IF ein%=2
  43.     DEFFILL 8
  44.     PBOX 10,50*auf%,640,70*auf%
  45.     DEFFILL 0
  46.     PBOX 0,45*auf%,640,65*auf%
  47.     BOX 0,45*auf%,640,65*auf%
  48.     DEFFILL 8
  49.     PBOX 40,80*auf%,620,155*auf%
  50.     DEFFILL 0
  51.     PBOX 30,75*auf%,610,150*auf%
  52.     BOX 30,75*auf%,610,150*auf%
  53.   ENDIF
  54. RETURN
  55. PROCEDURE laden
  56.   FILESELECT "\*.DAT",name$,name$
  57.   IF EXIST(name$)
  58.     OPEN "I",#1,name$
  59.     DEFMOUSE 2
  60.     INPUT #1;dummy$
  61.     INPUT #1;z%
  62.     FOR zaehler%=1 TO z%
  63.       INPUT #1;frag$(zaehler%)
  64.       INPUT #1;pos%
  65.       INPUT #1;richtig%(zaehler%)
  66.       FOR i%=1 TO pos%
  67.         INPUT #1;ant$(i%,zaehler%)
  68.       NEXT i%
  69.     NEXT zaehler%
  70.     DEFMOUSE 0
  71.     CLOSE #1
  72.   ENDIF
  73. RETURN
  74. PROCEDURE mischen
  75.   IF zaehler%>1
  76.     DEFFILL 8
  77.     PBOX 120,95*auf%,200,115*auf%
  78.     DEFFILL 0
  79.     PBOX 100,90*auf%,190,110*auf%
  80.     BOX 100,90*auf%,190,110*auf%
  81.     PRINT AT(15,13);"Moment !"
  82.     PAUSE 50
  83.     DIM frag2$(zaehler%+1),ant2$(9,zaehler%+1),richtig2%(zaehler%+1),treffer%(zaehler%)
  84.     FOR i%=0 TO zaehler%
  85.       frag2$(i%)=frag$(i%)
  86.       FOR ii%=0 TO 9
  87.         ant2$(ii%,i%)=ant$(ii%,i%)
  88.       NEXT ii%
  89.       richtig2%(i%)=richtig%(i%)
  90.     NEXT i%
  91.     treffer%=0
  92.     DO
  93.       EXIT IF treffer%=zaehler%
  94.       i%=RANDOM(zaehler%)+1
  95.       IF treffer%(i%)=0
  96.         treffer%(i%)=1
  97.         INC treffer%
  98.         frag$(treffer%)=frag2$(i%)
  99.         richtig%(treffer%)=richtig2%(i%)
  100.         FOR ii%=0 TO 9
  101.           ant$(ii%,treffer%)=ant2$(ii%,i%)
  102.         NEXT ii%
  103.       ENDIF
  104.     LOOP
  105.     ERASE frag2$(),ant2$(),richtig2%(),treffer%()
  106.   ENDIF
  107. RETURN
  108. PROCEDURE abfragen
  109.   LOCAL pos%,r%
  110.   raus%=0
  111.   quote%=0
  112.   zaehler%=1
  113.   DO
  114.     EXIT IF frag$(zaehler%)="" OR raus%=1
  115.     IF raus%=0
  116.       bild(2)
  117.       DEFFILL 8
  118.       PBOX 15,180*auf%,80,199*auf%
  119.       DEFFILL 0
  120.       PBOX 5,175*auf%,70,194*auf%
  121.       BOX 5,175*auf%,70,194*auf%
  122.       DEFTEXT 1,0,0,4
  123.       TEXT 20,178*auf%,"Nummer"
  124.       led$=STR$(zaehler%)
  125.       DEFTEXT 1,16,0,10*auf%
  126.       TEXT 20,190*auf%,led$
  127.       PRINT AT(56,18);"0 - Abfrage beenden"
  128.       PRINT AT(3,7);frag$(zaehler%)
  129.       pos%=0
  130.       DO
  131.         INC pos%
  132.         EXIT IF ant$(pos%,zaehler%)=""
  133.         PRINT AT(8,10+pos%);pos%'"-"'ant$(pos%,zaehler%)
  134.       LOOP
  135.       DO
  136.         DEFFILL 8
  137.         PBOX 120,170*auf%,300,185*auf%
  138.         DEFFILL 0
  139.         PBOX 110,165*auf%,290,180*auf%
  140.         BOX 110,165*auf%,290,180*auf%
  141.         PRINT AT(15,22);
  142.         INPUT "   Ihre Antwort ?",r%
  143.         EXIT IF r%<pos%
  144.       LOOP
  145.       IF r%=richtig%(zaehler%)
  146.         PRINT AT(15,22);"    RICHTIG !!    "
  147.         INC quote%
  148.         PAUSE 50
  149.       ELSE
  150.         IF r%>0
  151.           DEFFILL 8
  152.           PBOX 120,170*auf%,620,195*auf%
  153.           DEFFILL 0
  154.           PBOX 110,165*auf%,610,190*auf%
  155.           BOX 110,165*auf%,610,190*auf%
  156.           PRINT AT(15,22);" FALSCH !!  Richtig wäre :"
  157.           PRINT AT(15,23);" >"'ant$(richtig%(zaehler%),zaehler%)'"<."
  158.           PAUSE 150
  159.           PBOX 110,165*auf%,610,190*auf%
  160.           BOX 110,165*auf%,610,190*auf%
  161.         ELSE
  162.           raus%=1
  163.         ENDIF
  164.       ENDIF
  165.       INC zaehler%
  166.     ENDIF
  167.   LOOP
  168.   IF zaehler%>1
  169.     DEFMOUSE 2
  170.     PAUSE 100
  171.     DEC zaehler%
  172.     prozent=INT(quote%/(zaehler%/100)+1)
  173.     IF prozent>99
  174.       prozent=100
  175.     ELSE IF prozent<1
  176.       prozent=0
  177.     ENDIF
  178.     DEFMOUSE 0
  179.     PUT 0,0,bild$
  180.     DEFFILL 8
  181.     PBOX 60,55*auf%,600,195*auf%
  182.     DEFFILL 0
  183.     PBOX 50,50*auf%,590,190*auf%
  184.     BOX 50,50*auf%,590,190*auf%
  185.     BOX 120,70*auf%,520,100*auf%
  186.     DEFFILL 2
  187.     PBOX 120,70*auf%,120+(prozent*4),100*auf%
  188.     PRINT AT(20,15);"Sie haben"'prozent'"% der Fragen beantwortet."
  189.     IF prozent<5
  190.       PRINT AT(9,17);"Sie sind eine Niete. Ihnen ist nicht zu helfen."
  191.       PRINT AT(9,18);"Das beste ist Sie löschen dieses Spiel sofort."
  192.     ELSE IF prozent>=5 AND prozent<25
  193.       PRINT AT(9,17);"Sehr schlecht !! Aber nicht hoffnungslos."
  194.       PRINT AT(9,18);"Versuchen Sie es bei gelegenheit nocheinmal."
  195.     ELSE IF prozent>=25 AND prozent<50
  196.       PRINT AT(9,17);"Mieserabel !"
  197.       PRINT AT(9,18);"Am besten Sie versuchen es gleich nocheinmal"
  198.     ELSE IF prozent>=50 AND prozent<75
  199.       PRINT AT(9,17);"Schon nicht schlecht."
  200.       PRINT AT(9,18);"Mit ein bischen Üben schaffen Sie den Rest auch noch."
  201.     ELSE IF prozent>=75 AND prozent<90
  202.       PRINT AT(9,17);" GUT !!  Das kann sich sehen lassen."
  203.     ELSE IF prozent>=90 AND prozent<=99
  204.       PRINT AT(9,17);"Sehr gut !!!!!!!!"
  205.       PRINT AT(9,18);"Sie sind schon fast so gut wie ich."
  206.       PRINT AT(9,19);"Aber noch nicht perfekt !"
  207.     ELSE IF prozent>99 AND prozent<=100
  208.       PRINT AT(9,17);"Fabelhaft ! Phantastisch ! Super ! Oberaffengeil !!"
  209.       PRINT AT(9,18);"Sie sind genauso gut wie ich selbst ..."
  210.       PRINT AT(9,19);" ... Sie Computerhirn."
  211.     ENDIF
  212.     PRINT AT(60,23);"Taste drücken!"
  213.     KEYGET a
  214.   ENDIF
  215. RETURN
  216. PROCEDURE eingeben
  217.   ERASE a$(),frag$(),ant$(),richtig%()
  218.   DIM a$(10),frag$(1000),ant$(9,1000),richtig%(1000)
  219.   zaehler%=0
  220.   erweitern
  221. RETURN
  222. PROCEDURE erweitern
  223.   LOCAL pos%,r%
  224.   raus%=0
  225.   DO
  226.     bild(2)
  227.     INC zaehler%
  228.     DEFFILL 8
  229.     PBOX 15,180*auf%,80,199*auf%
  230.     DEFFILL 0
  231.     PBOX 5,175*auf%,70,194*auf%
  232.     BOX 5,175*auf%,70,194*auf%
  233.     DEFTEXT 1,0,0,4
  234.     TEXT 20,178*auf%,"Nummer"
  235.     led$=STR$(zaehler%)
  236.     DEFTEXT 1,16,0,10*auf%
  237.     TEXT 20,190*auf%,led$
  238.     PRINT AT(3,7);
  239.     INPUT "  >",frage$
  240.     EXIT IF frage$="" OR frage$=" " OR frage$=CHR$(27)
  241.     pos%=0
  242.     DO
  243.       INC pos%
  244.       PRINT AT(8,10+pos%);pos%'
  245.       INPUT ">",a$(pos%)
  246.       EXIT IF a$(pos%)=""
  247.       EXIT IF pos%=8
  248.     LOOP
  249.     DO
  250.       DEFFILL 8
  251.       PBOX 120,170*auf%,500,185*auf%
  252.       DEFFILL 0
  253.       PBOX 110,165*auf%,490,180*auf%
  254.       BOX 110,165*auf%,490,180*auf%
  255.       PRINT AT(15,22);
  256.       INPUT "   Welche Antwort ist richtig ?",r%
  257.       EXIT IF r%<pos%+1 AND r%>-1
  258.     LOOP
  259.     PBOX 110,165*auf%,490,180*auf%
  260.     BOX 110,165*auf%,490,180*auf%
  261.     PRINT AT(15,22);
  262.     INPUT "   Ist alles richtig ?",key$
  263.     IF key$="J" OR key$="" OR key$="j"
  264.       frag$(zaehler%)=frage$
  265.       FOR i%=1 TO pos%
  266.         ant$(i%,zaehler%)=a$(i%)
  267.       NEXT i%
  268.       richtig%(zaehler%)=r%
  269.       raus%=0
  270.     ELSE
  271.       DEC zaehler%
  272.     ENDIF
  273.     IF zaehler%<999
  274.       PBOX 110,165*auf%,490,180*auf%
  275.       BOX 110,165*auf%,490,180*auf%
  276.       PRINT AT(15,22);
  277.       INPUT "   Wollen Sie noch eine Frage eingeben ?",key$
  278.       IF key$="J" OR key$="j" OR key$=""
  279.         raus%=0
  280.       ELSE
  281.         raus%=1
  282.       ENDIF
  283.     ELSE
  284.       raus%=1
  285.     ENDIF
  286.     EXIT IF raus%=1
  287.   LOOP
  288.   a$="Fragen abspeichern ?"
  289.   IF frage$="" OR frage$=" " OR frage$=CHR$(27) AND zaehler%=1
  290.   ELSE
  291.     ALERT 2,a$,1,"Ja|Nein",key%
  292.   ENDIF
  293.   IF key%=1
  294.     FILESELECT "C:\*.*",name$,name$
  295.     IF name$=""
  296.       ALERT 3,"Daten wurden nicht abgespeichert.|Da auf Abbruch Button gedrückt wurde.",1,"Gelesen",d%
  297.     ENDIF
  298.     IF NOT (name$="")
  299.       OPEN "O",#1,name$
  300.       DEFMOUSE 2
  301.       PRINT #1;"Fragenkatalog zu Sigi's historischem Quiz:"
  302.       PRINT #1;zaehler%
  303.       FOR ii%=1 TO zaehler%
  304.         PRINT #1;frag$(ii%)
  305.