Newsgroup: it.comp.lang.visual-basic
Titolo: Topo

Avrei un programmino in Basic, e dovrei traslarlo in Visual Basic, qualcuno
puo darmi una mano?
grazie.
Antonio Arezzo
antonio...@libero.it
10 REM "26.12.95"
100 GOTO 1050
200 FOR T = 2 TO 9 STEP 2: LINE (CX + T / 10, CY + .1)-STEP(0, .8), CC:
NEXT: RETURN
500 R0 = R0 - 1: R1 = R1 - 1: RETURN
510 R1 = R1 - 1: RETURN
520 R0 = R0 + 1: R1 = R1 - 1: RETURN
530 R0 = R0 + 1: RETURN
540 R0 = R0 + 1: R1 = R1 + 1: RETURN
550 R1 = R1 + 1: RETURN
560 R0 = R0 - 1: R1 = R1 + 1: RETURN
570 R0 = R0 - 1: RETURN
1050 CLEAR : W = WINDOW (0, 0, 10, 6)
1070 PRINT : PRINT : PRINT TAB(8); "IL GIOCO DEL TOPO E DEL DRAGO :"
1080 PRINT : PRINT : PRINT "vuoi la spiegazione del gioco ? (s/n) --)  ";
1090 R$ = "": WHILE R$ = "": R$ = INKEY$: N = (N + 1) MOD 1000: WEND
1100 RANDOMIZE N: IF R$ <> "s" THEN 1800
1110 CLS : PRINT TAB(8); "IL GIOCO DEL TOPO E DEL DRAGO :"
1140 GOSUB 10100: PRINT : PRINT
1180 PRINT "questo S un gioco di caccia con un topo, un drago e una
quantit."
1185 GOSUB 10100
1190 PRINT "illimitata di formaggio, "
1195 GOSUB 10100: PRINT
1200 GOSUB 10100: PRINT "tu controlli il topo con i tasti della tastiera
numerica."
1210 GOSUB 10100: PRINT
1220 GOSUB 10100: PRINT "il drago S alla tua caccia."
1230 GOSUB 10100: PRINT
1240 GOSUB 10100: PRINT "il tuo obbiettivo S di mangiare quanto pi-
formaggio puoi"
1250 GOSUB 10100: PRINT "cercando di sfuggire al drago."
1260 GOSUB 10100: PRINT
1270 GOSUB 10100: PRINT "Hai 180 secondi per mangiare quanto formaggio
puoi.": PRINT
1280 GOSUB 10100: PRINT "attenzione, per.. Via via che procedi, il formaggio
puoi.": PRINT
1290 GOSUB 10100: PRINT "a muoversi per lo schermo e il drago si fa pi-
scaltro !"
1300 GOSUB 10100: PRINT : PRINT "quando vuoi iniziare premi un tasto
qualsiasi."
1310 WHILE INKEY$ = "": WEND
1800 DEFINT
A-Z:MO=20:MV=MO*246*1.25/512:TM=180:W=WINDOW(1,245):COLOR=0,4,1,5
1810 DN = 4
1820 DIM DX(DN), DY(DN)
1830 HS = 0
1840 REM NUOVO GIRO
1900 REM INIZIALIZZAZIONE
1910 CLS : R0 = INT(RND * MO): R1 = INT(RND * MV)
1930 TG = TM: TR$ = TIME$
1940 TK = 3
1950 WINDOW%2:CURSOR(25,1)     :'ERA ATTESO SCREEN O FINE ISTRUZIONE
1960 PRINT "TEMPO:"; TG;
1980 SC = 0
1990 CURSOR(45,1) ' ERA ATTESO UN =
2010 ?"PUNTI:"SC"    ";:WINDOW%1
2020 REM SFONDO
2050 GOSUB 10200
2060 REM TOPO
2080 LINE (R0 + .3, R1 + .3)-STEP(.5, .5), , BF
2090 RX = R0: RY = R1
2160 REM FORMAGGIO
2170 CX = FIX(RND * MO): CY = FIX(RND * MV)
2180 CC = 3: GOSUB 200: REM LINE(CX+.1,CY+.1)-STEP(.8,.8),3,B
2220 REM DRAGO
2230 DC = 1: D = 6
2240 DH = 0: DT = 0
2260 DX(DH) = FIX(MO / 2) * RND + M0 / 4
2270 DY(DH) = FIX(MV / 2) * RND + MV / 4
2275 DR = 10
2280 REM CLICK
2290 PRINT CHR$(7);
2300 REM LOOP PRINCIPALE
2310 REM FORMAGGIO
2315 RANDOMIZE RX
2320 IF SC < 12 THEN 2470
2330 IF SC < 20 AND TK <> 3 THEN 2470
2340 CC = 0: GOSUB 200
2350 MC = SGN(CX - RX): IF MC = 0 AND SC > 12 THEN MC = SGN(MO \ 2 - CX)
2360 CX = CX + MC
2370 IF CX < 0 THEN CX = 0
2380 IF CX = MO THEN CX = CX - 1
2390 MC = SGN(CY - RY): IF MC = 0 AND SC > 12 THEN MC = SGN(MV \ 2 - CY)
2400 CY = CY + MC
2410 IF CY < 0 THEN CY = 0
2420 IF CY = MV THEN CY = CY - 1
2440 CC = 3: GOSUB 200
2470 REM TOPO
2480 R$ = INKEY$: IF LEN(R$) THEN ON INTR("12369874", R$) GOSUB 500, 510,
520, 530, 540, 550, 560, 570
2490 IF R0 < 0 THEN R0 = 0 ELSE IF R0 > MO - 1 THEN R0 = MO - 1
2500 IF R1 < 0 THEN R1 = 0 ELSE IF R1 > MV - 1 THEN R1 = MV - 1
2505 IF R0 = RX AND R1 = RY THEN 2590
2510 LINE(RX+.3, RY+.3)-STEP(.5,.5),,BF,PRESET 'ATTESA ESPRESSIONE
2520 LINE (R0 + .3, R1 + .3)-STEP(.5, .5), , BF
2570 RX = R0: RY = R1
2590 IF RX <> CX OR RY <> CY THEN 2690
2600 SC = SC + 1
2610 WINDOW%2:CURSOR(53,1):? SC;:WINDOW%1
2615 CC = 0: GOSUB 200: REM LINE(CX+.1,CY+.1)-STEP(.8,.8),,B,PRESET
2640 CX = FIX(RND * MO): CY = FIX(RND * MV)
2660 PRINT CHR$(7)
2670 CC = 3: GOSUB 200: REM LINE(CX+.1,CY+.1)-STEP(.8,.8),.3
2690 REM DRAGO
2700 IF SC < 4 THEN 2970
2705 N = N + 1: IF N < D THEN 2945 ELSE N = 0
2710 D0 = RX: D1 = RY
2730 IF SC < 8 THEN 2760
2735 IF SC > 15 THEN DR = 5: D = 3 ELSE IF SC > 20 THEN D = 0
2740 IF ABS(D0 - CX) > DR THEN D0 = CX + SGN(D0 - CX) * DR
2750 IF ABS(D1 - CY) > DR THEN D1 = CY + SGN(D1 - CY) * DR
2760 DK = DH + 1
2780 IF DK > DN THEN DK = 0
2790 AF = DK = DT
2800 NP = DX(DH) <> D0 OR DY(DH) <> D1
2810 OC = DH = DT
2820 IF (NP OR OC) AND NOT AF THEN 2890
2830 REM TAGLIA LA CODA
2860 LINE (DX(DT) + .1, DY(DT) + .1)-STEP(.8, .8), , BF,PRESET
2865 IF DX(DT) = CX AND DY(DT) = CY THEN CC = 3: GOSUB 200: REM
LINE(CX+.1,CY+.1)+STEP(.8,.8),3,B
2870 DT = DT + 1
2880 IF DT > DN THEN DT = 0
2890 REM MUOVE LA TESTA
2900 D2 = DX(DH)
2910 D3 = DY(DH)
2920 DH = DK
2930 DX(DH) = D2 + SGN(D0 - D2)
2940 DY(DH) = D3 + SGN(D1 - D3)
2945 IF DX(DH) = RX AND DY(DH) = RY THEN 3100
2950 LINE (DX(DH) + .1, DY(DH) + .1)-STEP(.8, .8), 2, BF
2965 GOTO 2975
2970 REM FOR T=0 TO 50:NEXT T
2975 REM TEMPO
2980 TK = TK - 1
2990 IF TK > 0 THEN 2300
3000 REM ? CHR$(7);
3010 IF TR$ <> TIME$ THEN TG = TG - 1: TR$ = TIME$
3020 WINDOW%2:CURSOR(32,1):? TG;:WINDOW%1
3030 TK = 3
3040 IF TG > 0 THEN 2300
3050 REM FINE
3060 CLS
3070 PRINT "TEMPO TRASCORSO"
3090 GOTO 3140
3100 REM IL DRAGO MANGIA
3110  CLS
3120 PRINT "IL DRAGO TI HA MANGIATO IN"; TM - TG; "SECONDI"
3140 PRINT "PUNTEGGIO:  "; SC: GOTO 3180
3170 IF HS < SC THEN HS = SC
3180 R$ = "": WHILE R$ <> CHR$(13): R$ = INKEY$: WEND: GOTO 1840
9000 END
10100 FOR T = 0 TO 1000: NEXT T: RETURN
10200 REM RETICOLO
10210 SCALE 0, MO, 0, MV
10220 FOR I = 0 TO MO
10230 LINE (I, 0)-STEP(0, MO)
10240 NEXT: FOR I = 0 TO MV
10250 LINE (0, I)-STEP(MO, 0)
10260 NEXT: RETURN

un newsgroup non è un posto dove lavorano persone gratuitamente a servizio
della gente
in un newsgroup ci si scambiano informazioni, idee, esperienze e se si ha
qualche problema lo sichiede
non puoi andare su it.comp.grafica e chiedere "mi togliete la retinatura da
questa foto?"
leggendo il post mi hai dato la chiara idea che non ti interessa niente di
risolvere questo problema, ma se arriva qualche "coglione" che lo fa è tutto
guadagnato (chiedo scusa se qualcuno gli ha già risposto, non voglio
offendere nessuno)
se ti fossi minimamente sforzato di iniziare a farla TU questa cosa, il tuo
post sarebbe stato qualcosa del tipo "linee in vb - come traccio una linea
su un form di VB?"
se non sai proprio niente di vb, tra le firme degli altri ci sono molti link
a siti ben fatti (tra i quali anche ikl sito comune) dove potrai imparare VB
facilmente (specialmente se provieni dal BASIC)
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano così bene che nella culla mi
 misero un orsacchiotto vero"

 questa foto?"
---8<---8<---8<---8<---8<---
se sono stato/sembrato troppo aggressivo chiedo scusa per lo sfogo
buon lavoro a tutti


 1050 CLEAR : W = WINDOW (0, 0, 10, 6)
 Che è W = WINDOW (0, 0, 10, 6) ???
Mi manca questa funzione.
Che basic usavi?
--
Diego Mazzaro
"L'importante non è conoscere tante cose ma sapere dove trovarle" A.
Einstein
http://space.tin.it/computer/btqmaz/diego