After JHV-Party - Programmierübungen
von Sleepy » So 27. Okt 2013, 20:06Hi,
wir haben uns diesmal am Sonntag nach der JHV im Foobar getroffen. Danke nocheinmal an Cas für das Organisieren des Raumes und die Leitung des Kurses.
Auf dem Plan stand die Programmierung und anschließende Optimierung eines kleinen Spieles.
Die Rahmenbedingungen:
- Graphics 7
- Ein Schläger der durch ein "I" repräsentiert wird
- ein 24 Pixel breites Tor am Bildschirmrand
- Ein durch einen Kreis (CTRL-T) repräsentierter Ball
- Er fliegt diagonal und wird bei Berührung des Bildschirmrand oder des Schlägers um 90° abgelenkt
- Man muß den Ball in das Tor lenken
- erst mal "ganz einfach" programmieren; ohne Optimierungen. Die sollen später durchgeführt werden um die Auswirkungen besser sehen zu können.
Die Programmiersprache war frei wählbar.Die anschließend geplante Optimierung des Codes war aus zeitgründen leider nicht mehr möglich.
Hier meine erste Lösung in Turbo Basic.
Sleeπ
wir haben uns diesmal am Sonntag nach der JHV im Foobar getroffen. Danke nocheinmal an Cas für das Organisieren des Raumes und die Leitung des Kurses.
Auf dem Plan stand die Programmierung und anschließende Optimierung eines kleinen Spieles.
Die Rahmenbedingungen:
- Graphics 7
- Ein Schläger der durch ein "I" repräsentiert wird
- ein 24 Pixel breites Tor am Bildschirmrand
- Ein durch einen Kreis (CTRL-T) repräsentierter Ball
- Er fliegt diagonal und wird bei Berührung des Bildschirmrand oder des Schlägers um 90° abgelenkt
- Man muß den Ball in das Tor lenken
- erst mal "ganz einfach" programmieren; ohne Optimierungen. Die sollen später durchgeführt werden um die Auswirkungen besser sehen zu können.
Die Programmiersprache war frei wählbar.Die anschließend geplante Optimierung des Codes war aus zeitgründen leider nicht mehr möglich.
Hier meine erste Lösung in Turbo Basic.
Sleeπ
- Code: Alles auswählen
100 ------------------------------
110 REM
120 REM JHV 2013
130 REM
140 REM kleine Ballerei
150 REM
160 REM in TURBO BASIC
170 REM
180 ------------------------------
190 EXEC SPIELFELD
200 EXEC INIT
210 DO
220 EXEC BEWEGE_SCHLAEGER
230 IF DB
240 EXEC BEWEGE_BALL
250 ENDIF
260 DB=NOT DB
270 IF (ABS(XB-XP)<4) AND (ABS(YB-YP)<4) THEN DXB=-DXB:EXEC BEWEGE_BALL
280 IF XB<2 AND (YB>36) AND (YB<60) THEN EXEC TOR
290 COLOR 3
300 TEXT 79,1,TOR
310 COLOR 1
320 IF TOR=5 THEN EXIT
330 LOOP
340 EXEC FERTIG
350 END
360 ------------------------------
370 PROC INIT
380 XP=100:YP=44
390 XB=RAND(100)+50
400 YB=RAND(70)+10
410 DXB=1-RAND(2)*2
420 DYB=1-RAND(2)*2
430 DB=1
440 ENDPROC
450 ------------------------------
460 PROC SPIELFELD
470 GRAPHICS 7+16
480 COLOR 1
490 PLOT 0,0
500 DRAWTO 159,0
510 DRAWTO 159,95
520 DRAWTO 0,95
530 DRAWTO 0,0
540 COLOR 3
550 PLOT 0,36
560 DRAWTO 0,60
570 ENDPROC
580 ------------------------------
590 PROC BEWEGE_SCHLAEGER
600 ST=STICK(0)
610 IF ST>8 AND ST<12 THEN XP=XP-1
620 IF ST>4 AND ST<8 THEN XP=XP+1
630 IF ST=14 OR ST=10 OR ST=6 THEN YP=YP-1
640 IF ST=13 OR ST=9 OR ST=5 THEN YP=YP+1
650 IF XP<9 THEN XP=9
660 IF XP>151 THEN XP=151
670 IF YP<1 THEN YP=1
680 IF YP>87 THEN YP=87
690 TEXT XP,YP,"I"
700 ENDPROC
710 ------------------------------
720 PROC BEWEGE_BALL
730 XB=XB+DXB
740 YB=YB+DYB
750 IF XB>150 THEN DXB=-DXB
760 IF XB<2 THEN DXB=-DXB
770 IF YB>86 THEN DYB=-DYB
780 IF YB<2 THEN DYB=-DYB
790 COLOR 3
800 TEXT XB,YB,"O"
810 ENDPROC
820 ------------------------------
830 PROC TOR
840 TOR=TOR+%1
850 FOR LS=15 TO 0 STEP -0.5
860 SOUND 0,200,10,LS
870 NEXT LS
880 TEXT XB,YB," "
890 TEXT XP,YP," "
900 EXEC INIT
910 ENDPROC
920 ------------------------------
930 PROC FERTIG
940 COLOR 2
950 TEXT 40,16,"HERZLICHEN"
960 TEXT 40,32,"GLUEKWUNSCH"
970 PAUSE 100
980 ENDPROC
990 ------------------------------