1 Ostatnio edytowany przez Sim_Piko (2008-12-22 17:17:31)

Oryginalnie grę chciałem wysłać na konkurs "Napisze se"
Ze względu na brak czasu nie mogę (na razie) ukończyć gry.

oryginał: http://pl.youtube.com/watch?v=Qps3wXgEabk

Kiedyś przerabiałem tę grę na XP-ka (FreeBASIC), więc na ATARI to była tylko kwestia przekonwertowania kodu na TBXL. Najlepiej działa skopilowany kod.

0 GRAPHICS 2
10 DIM LEV(6,6),MOV$(10),LEWO$(10),PRAWO$(10),A1$(128)
11 LEWO$="":PRAWO$="":MOV$="":QWE=100:POZIOM=0
20 EXEC GENERUJ
30 EXEC WYSWIETL
35 DO
40 EXEC POKAZ_KURSOR
41 EXEC PRZESUN_KURSOR
43 EXEC UKRYJ_KURSOR
45 LOOP
900 --
910 PROC CONVERTER:REM TAJEMNICE ATARI 6-7/92 STR.32
911 A1=LEN(A1$)
912 X1=0
913 FOR I1=1 TO A1
914 D1=ASC(A1$(I1,I1))-48
915 D1=D1-7*(D1>9)
916 X1=P1*X1+D1
917 NEXT I1:I1=128
918 DO
919 I1=I1-1
920 Y1=INT(X1/Q1)
921 D1=X1-Q1*Y1
922 A1$(I1,I1)=CHR$(D1+48+7*(D1>9))
923 X1=Y1
924 IF X1=0 THEN EXIT 
925 loop
926 ENDPROC
998 --
999 END
1000 PROC GENERUJ
1010 LINE_X=1:LINE_Y=1
1015 LINES=0:POZIOM=LINES
1020 FOR I=1 TO 12
1030 X=INT(RAND(6))+1
1040 Y=INT(RAND(6))+1
1050 IF LEV(X,Y)=0
1060 LEV(X,Y)=1
1070 ELSE
1080 DO 
1090 X=INT(RAND(6))+1
1100 Y=INT(RAND(6))+1
1110 IF LEV(X,Y)<>1 THEN LEV(X,Y)=1:EXIT
1125 ENDIF
1120 LOOP
1130 NEXT I
1140 FOR I=1 TO 12
1150 X=INT(RAND(6))+1
1160 Y=INT(RAND(6))+1
1170 IF LEV(X,Y)=0
1180 LEV(X,Y)=2
1190 ELSE
1200 DO
1210 X=INT(RAND(6))+1
1220 Y=INT(RAND(6))+1
1230 IF LEV(X,Y)=0 THEN LEV(X,Y)=2:EXIT
1240 LOOP 
1250 ENDIF
1260 NEXT I
1270 ENDPROC
1280 --
1300 PROC WYSWIETL
1305 POSITION 0,0
1310 for i=1 to 6
1320 for j=1 to 6
1330 IF LEV(J,I)=0 : ? #6;CHR$($20); :ENDIF
1331 IF LEV(J,I)=1 : ? #6;CHR$($4F); :ENDIF
1332 IF LEV(J,I)=2 : ? #6;CHR$($CF); :ENDIF
1333 IF LEV(J,I)=3 : ? #6;CHR$($6F); :ENDIF
1334 IF LEV(J,I)=4 : ? #6;CHR$($EF); :ENDIF
1340 NEXT J :? #6
1350 NEXT I
1360 ENDPROC
1370 --
1400 PROC POKAZ_KURSOR
1410 POSITION 6,LINE_X-1:? #6; CHR$(ASC("#")+FIRE*128)
1420 POSITION LINE_Y-1,6:? #6; CHR$(ASC("#")+FIRE*128)
1421 POSITION 9,0:? #6; "LINII:";LINES
1430 ENDPROC
1440 --
1450 PROC UKRYJ_KURSOR
1460 POSITION 6,OLD_LINE_X-1:? #6; " "
1470 POSITION OLD_LINE_Y-1,6:? #6; " "
1480 ENDPROC
1490 --
1500 PROC PRZESUN_KURSOR
1510 REPEAT :ST=STICK(0):FIRE=STRIG(0):C=PEEK(53279):PAUSE 5:EXEC POKAZ_KURSOR:UNTIL ST<>15 OR FIRE<>1 OR C<>7
1511 LEWO$="":PRAWO$="":a=a^1
1512 DL=0 :REM DL=DLUGOSC LEWO$
1513 DR=0 :REM DR=DLUGOSC PRAWO$
1520 OLD_LINE_X=LINE_X:OLD_LINE_Y=LINE_Y
1530 IF FIRE=0 THEN MOV$="":EXEC PRZESUN_BECZKI:ENDPROC
1540 IF ST=14 THEN LINE_X=LINE_X-1:IF LINE_X<1 THEN LINE_X=6
1550 IF ST=13 THEN LINE_X=LINE_X+1:IF LINE_X>6 THEN LINE_X=1
1560 IF ST=7 THEN LINE_Y=LINE_Y+1:IF LINE_Y>6 THEN LINE_Y=1
1570 IF ST=11 THEN LINE_Y=LINE_Y-1:IF LINE_Y<1 THEN LINE_Y=6
1580 ENDPROC 
1590 --
1600 PROC PRZESUN_BECZKI
1610 ST=STICK(0):FIRE=STRIG(0):C=PEEK(53279)
1620 IF ST=14 and FIRE=0 THEN EXEC W_GORE
1630 IF ST=13 and FIRE=0 THEN EXEC W_DOL
1640 IF ST=7 and FIRE=0 THEN EXEC W_PRAWO
1650 IF ST=11 and FIRE=0 THEN EXEC W_LEWO
1660 EXEC POKAZ_KURSOR
1670 ENDPROC
1680 --
1700 PROC LEWO:ZER=0
1705 for i=1 to 6
1710 if MOV$(I,I)="0" :zer=zer+1 :else :DL=DL+1:LEWO$(DL,DL)=MOV$(I,I) :ENDIF
1715 next I
1720 if zer>0
1725 for i=1 to zer
1730 DL=DL+1:LEWO$(DL,DL)="0"
1735 next I
1740 endif
1745 endPROC
1746 --
1750 PROC PRAWO:ZER=0
1755 for i=1 to 6
1760 if MOV$(I,I)="0" :zer=zer+1 :else :DR=DR+1:PRAWO$(DR,DR)=MOV$(I,I) :ENDIF
1765 next I
1770 if zer>0
1775 for i=1 to zer
1780 DL=DL+1:LEWO$(DL,DL)="0"
1785 next I:LEWO$(DL+1)=PRAWO$:PRAWO$=LEWO$
1790 endif
1795 endPROC
1796 --
1800 PROC W_GORE
1805 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(LINE_Y,I)):NEXT I:EXEC LEWO
1810 FOR I=1 TO 6:LEV(LINE_Y,I)=VAL(LEWO$(I,I)):NEXT I:EXEC WYSWIETL:EXEC SPRAWDZ
1815 ENDPROC
1820 PROC W_DOL
1825 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(LINE_Y,I)):NEXT I:EXEC PRAWO
1830 FOR I=1 TO 6:LEV(LINE_Y,I)=VAL(PRAWO$(I,I)):NEXT I:EXEC WYSWIETL:EXEC SPRAWDZ
1835 ENDPROC
1840 PROC W_LEWO
1845 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(I,LINE_X)):NEXT I:EXEC LEWO
1850 FOR I=1 TO 6:LEV(I,LINE_X)=VAL(LEWO$(I,I)):NEXT I:EXEC WYSWIETL:EXEC SPRAWDZ
1855 ENDPROC
1860 PROC W_PRAWO
1865 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(I,LINE_X)):NEXT I:EXEC PRAWO
1870 FOR I=1 TO 6:LEV(I,LINE_X)=VAL(PRAWO$(I,I)):NEXT I:EXEC WYSWIETL:EXEC SPRAWDZ
1875 ENDPROC
1876 --
1900 PROC SPRAWDZ
1901 POSITION 9,1:? #6;"CHWILA"
1905 REM linie x
1910 za1=0:za2=0:za3=0:za4=0
1915 for i=1 to 6
1920 za1=0:za2=0:za3=0:za4=0
1925 For zn=1 to 6
1930 if lev(zn,i)=1 : za1=za1+1:ELSE
1932 if lev(zn,i)=2 : za2=za2+1:ELSE
1934 if lev(zn,i)=3 : za3=za3+1:ELSE
1936 if lev(zn,i)=4 : za4=za4+1:ENDIF:ENDIF:ENDIF:ENDIF
1940 next ZN
1945 if za1=6 or za2=6 OR za3=6 OR za4=6
1950 P1=10 : lines=lines+1:POZIOM=POZIOM+1:IF POZIOM=32 THEN POZIOM=0
1955 IF POZIOM>=0 AND POZIOM <=8 THEN A1$=str$(int(rnd(1) * 61)+1+64):Q1=2
1960 IF POZIOM>=9 AND POZIOM <=16 THEN A1$=str$(int(rnd(1) * 726)+1+729):Q1=3
1965 IF POZIOM>=17 AND POZIOM <=32 THEN A1$=str$(int(rnd(1) * 4093)+1+4096):Q1=4
1970 EXEC CONVERTER
1975 LEWO$=A1$(I1)
1980 for zn=1 to 6
1985 if asc(LEWO$(zn,zn))<>0 :lev(zn,I)=VAL(LEWO$(zn,zn))+1 :else :lev(zn,I)=0 :endif
1990 next ZN
1995 endif
2000 next I
2005 REM linie y
2010 za1=0:za2=0:za3=0:za4=0
2015 for i=1 to 6
2020 za1=0:za2=0:za3=0:za4=0
2025 for zn=1 to 6
2030 if lev(I,zn)=1 : za1=za1+1:ELSE
2032 if lev(I,zn)=2 : za2=za2+1:ELSE
2034 if lev(I,zn)=3 : za3=za3+1:ELSE
2036 if lev(I,zn)=4 : za4=za4+1:ENDIF:ENDIF:ENDIF:ENDIF
2040 next ZN
2045 if za1=6 or za2=6 OR za3=6 OR za4=6
2050 P1=10 : lines=lines+1:POZIOM=POZIOM+1:IF POZIOM=32 THEN POZIOM=0
2055 IF POZIOM>=0 AND POZIOM <=8 THEN A1$=str$(int(rnd(1) * 61)+1+64):Q1=2
2060 IF POZIOM>=9 AND POZIOM <=16 THEN A1$=str$(int(rnd(1) * 726)+1+729):Q1=3
2065 IF POZIOM>=17 AND POZIOM <=32 THEN A1$=str$(int(rnd(1) * 4093)+1+4096):Q1=4
2070 EXEC CONVERTER
2075 LEWO$=A1$(I1)
2080 for zn=1 to 6
2085 if asc(LEWO$(zn,zn))<>0 :lev(i,zn)=VAL(LEWO$(zn,zn))+1 :else :lev(i,zn)=0 :endif
2090 next ZN
2095 endif
2100 next I:EXEC WYSWIETL
2101 POSITION 9,1:? #6;"      "
2105 endPROC

EDIT: gra ostatecznie poszła na konkurs
więcej info:http://atarionline.pl/v01/index.phtml?subaction=showfull&id=1229384479&archive=&start_from=&ucat=1&ct=nowinki
Download v1.5: post #7 http://atariarea.krap.pl/forum/viewtopi … 496#p89496

2

Gdyby to porządnie wykonać to może być nawet fajna gierka

3

dodane efekty dźwiękowe

0 GRAPHICS 2+16
10 DIM LEV(6,6),MOV$(10),LEWO$(10),PRAWO$(10),A1$(128)
11 LEWO$="":PRAWO$="":MOV$="":QWE=100:POZIOM=0:LN=0
20 EXEC GENERUJ
30 EXEC WYSWIETL
35 DO
40 EXEC POKAZ_KURSOR
41 EXEC PRZESUN_KURSOR
43 EXEC UKRYJ_KURSOR
45 LOOP
900 --
910 PROC CONVERTER:REM TAJEMNICE ATARI 6-7/92 STR.32
911 A1=LEN(A1$)
912 X1=0
913 FOR I1=1 TO A1
914 D1=ASC(A1$(I1,I1))-48
915 D1=D1-7*(D1>9)
916 X1=P1*X1+D1
917 NEXT I1:I1=128
918 DO
919 I1=I1-1
920 Y1=INT(X1/Q1)
921 D1=X1-Q1*Y1
922 A1$(I1,I1)=CHR$(D1+48+7*(D1>9))
923 X1=Y1
924 IF X1=0 THEN EXIT 
925 loop
926 ENDPROC

998 --
999 END
1000 PROC GENERUJ
1010 LINE_X=1:LINE_Y=1
1015 LINES=0:POZIOM=LINES

1020 FOR I=1 TO 12
1030 X=INT(RAND(6))+1
1040 Y=INT(RAND(6))+1
1050 IF LEV(X,Y)=0
1060 LEV(X,Y)=1
1070 ELSE
1080 DO 
1090 X=INT(RAND(6))+1
1100 Y=INT(RAND(6))+1
1110 IF LEV(X,Y)<>1 THEN LEV(X,Y)=1:EXIT
1125 ENDIF
1120 LOOP
1130 NEXT I

1140 FOR I=1 TO 12
1150 X=INT(RAND(6))+1
1160 Y=INT(RAND(6))+1
1170 IF LEV(X,Y)=0
1180 LEV(X,Y)=2
1190 ELSE
1200 DO
1210 X=INT(RAND(6))+1
1220 Y=INT(RAND(6))+1
1230 IF LEV(X,Y)=0 THEN LEV(X,Y)=2:EXIT
1240 LOOP 
1250 ENDIF
1260 NEXT I

1270 ENDPROC
1280 --
1300 PROC WYSWIETL
1305 POSITION 0,0
1310 for i=1 to 6
1320 for j=1 to 6
1330 IF LEV(J,I)=0 : ? #6;CHR$($20); :ENDIF
1331 IF LEV(J,I)=1 : ? #6;CHR$($4F); :ENDIF
1332 IF LEV(J,I)=2 : ? #6;CHR$($CF); :ENDIF
1333 IF LEV(J,I)=3 : ? #6;CHR$($6F); :ENDIF
1334 IF LEV(J,I)=4 : ? #6;CHR$($EF); :ENDIF
1340 NEXT J :? #6
1345 SOUND %0,200,10,(6-I)*LN
1350 NEXT I
1355 SOUND %0,%0,%0,%0
1360 ENDPROC
1370 --
1400 PROC POKAZ_KURSOR
1410 POSITION 6,LINE_X-1:? #6; CHR$(ASC("#")+FIRE*128)
1420 POSITION LINE_Y-1,6:? #6; CHR$(ASC("#")+FIRE*128)
1421 POSITION 9,0:? #6; "LINII:";LINES
1430 ENDPROC
1440 --
1450 PROC UKRYJ_KURSOR
1460 POSITION 6,OLD_LINE_X-1:? #6; " "
1470 POSITION OLD_LINE_Y-1,6:? #6; " "
1480 ENDPROC
1490 --
1500 PROC PRZESUN_KURSOR
1510 REPEAT :ST=STICK(0):FIRE=STRIG(0):C=PEEK(53279):PAUSE 5:EXEC POKAZ_KURSOR:UNTIL ST<>15 OR FIRE<>1 OR C<>7
1511 LEWO$="":PRAWO$="":SOUND %2,100,10,3
1512 DL=0 :REM DL=DLUGOSC LEWO$
1513 DR=0 :REM DR=DLUGOSC PRAWO$
1520 OLD_LINE_X=LINE_X:OLD_LINE_Y=LINE_Y:SOUND %2,%0,%0,%0
1530 IF FIRE=0 THEN MOV$="":EXEC PRZESUN_BECZKI:ENDPROC
1540 IF ST=14 THEN LINE_X=LINE_X-1:IF LINE_X<1 THEN LINE_X=6
1550 IF ST=13 THEN LINE_X=LINE_X+1:IF LINE_X>6 THEN LINE_X=1
1560 IF ST=7 THEN LINE_Y=LINE_Y+1:IF LINE_Y>6 THEN LINE_Y=1
1570 IF ST=11 THEN LINE_Y=LINE_Y-1:IF LINE_Y<1 THEN LINE_Y=6
1580 ENDPROC 
1590 --
1600 PROC PRZESUN_BECZKI
1610 ST=STICK(0):FIRE=STRIG(0):C=PEEK(53279)
1620 IF ST=14 and FIRE=0 THEN EXEC W_GORE
1630 IF ST=13 and FIRE=0 THEN EXEC W_DOL
1640 IF ST=7 and FIRE=0 THEN EXEC W_PRAWO
1650 IF ST=11 and FIRE=0 THEN EXEC W_LEWO
1660 EXEC POKAZ_KURSOR
1670 ENDPROC
1680 --
1700 PROC LEWO:ZER=0
1705 for i=1 to 6
1710 if MOV$(I,I)="0" :zer=zer+1 :else :DL=DL+1:LEWO$(DL,DL)=MOV$(I,I) :ENDIF
1715 next I
1720 if zer>0
1725 for i=1 to zer
1730 DL=DL+1:LEWO$(DL,DL)="0"
1735 next I
1740 endif
1745 endPROC
1746 --
1750 PROC PRAWO:ZER=0
1755 for i=1 to 6
1760 if MOV$(I,I)="0" :zer=zer+1 :else :DR=DR+1:PRAWO$(DR,DR)=MOV$(I,I) :ENDIF
1765 next I
1770 if zer>0
1775 for i=1 to zer
1780 DL=DL+1:LEWO$(DL,DL)="0"
1785 next I:LEWO$(DL+1)=PRAWO$:PRAWO$=LEWO$
1790 endif
1795 endPROC
1796 --
1800 PROC W_GORE
1805 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(LINE_Y,I)):NEXT I:EXEC LEWO:SOUND %1,50,0,3
1810 FOR I=1 TO 6:LEV(LINE_Y,I)=VAL(LEWO$(I,I)):NEXT I:EXEC WYSWIETL:SOUND %1,%0,%0,%0:EXEC SPRAWDZ
1815 ENDPROC
1820 PROC W_DOL
1825 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(LINE_Y,I)):NEXT I:EXEC PRAWO:SOUND %1,50,0,3
1830 FOR I=1 TO 6:LEV(LINE_Y,I)=VAL(PRAWO$(I,I)):NEXT I:EXEC WYSWIETL:SOUND %1,%0,%0,%0:EXEC SPRAWDZ
1835 ENDPROC
1840 PROC W_LEWO
1845 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(I,LINE_X)):NEXT I:EXEC LEWO:SOUND %1,50,0,3
1850 FOR I=1 TO 6:LEV(I,LINE_X)=VAL(LEWO$(I,I)):NEXT I:EXEC WYSWIETL:SOUND %1,%0,%0,%0:EXEC SPRAWDZ
1855 ENDPROC
1860 PROC W_PRAWO
1865 FOR I=1 TO 6:MOV$(I,I)=STR$(LEV(I,LINE_X)):NEXT I:EXEC PRAWO:SOUND %1,50,0,3
1870 FOR I=1 TO 6:LEV(I,LINE_X)=VAL(PRAWO$(I,I)):NEXT I:EXEC WYSWIETL:SOUND %1,%0,%0,%0:EXEC SPRAWDZ
1875 ENDPROC
1876 --
1900 PROC SPRAWDZ
1901 POSITION 9,1:? #6;"CHWILA"
1905 REM linie x
1910 za1=0:za2=0:za3=0:za4=0
1915 for i=1 to 6
1920 za1=0:za2=0:za3=0:za4=0
1925 For zn=1 to 6
1930 if lev(zn,i)=1 : za1=za1+1:ELSE
1932 if lev(zn,i)=2 : za2=za2+1:ELSE
1934 if lev(zn,i)=3 : za3=za3+1:ELSE
1936 if lev(zn,i)=4 : za4=za4+1:ENDIF:ENDIF:ENDIF:ENDIF
1940 next ZN
1945 if za1=6 or za2=6 OR za3=6 OR za4=6
1950 LN=1:P1=10 : lines=lines+1:POZIOM=POZIOM+1:IF POZIOM=32 THEN POZIOM=0
1955 IF POZIOM>=0 AND POZIOM <=8 THEN A1$=str$(int(rnd(1) * 61)+1+64):Q1=2
1960 IF POZIOM>=9 AND POZIOM <=16 THEN A1$=str$(int(rnd(1) * 726)+1+729):Q1=3
1965 IF POZIOM>=17 AND POZIOM <=32 THEN A1$=str$(int(rnd(1) * 4093)+1+4096):Q1=4
1970 EXEC CONVERTER
1975 LEWO$=A1$(I1)
1980 for zn=1 to 6
1985 if asc(LEWO$(zn,zn))<>0 :lev(zn,I)=VAL(LEWO$(zn,zn))+1 :else :lev(zn,I)=0 :endif
1990 next ZN
1995 endif
2000 next I
2005 REM linie y
2010 za1=0:za2=0:za3=0:za4=0
2015 for i=1 to 6
2020 za1=0:za2=0:za3=0:za4=0
2025 for zn=1 to 6
2030 if lev(I,zn)=1 : za1=za1+1:ELSE
2032 if lev(I,zn)=2 : za2=za2+1:ELSE
2034 if lev(I,zn)=3 : za3=za3+1:ELSE
2036 if lev(I,zn)=4 : za4=za4+1:ENDIF:ENDIF:ENDIF:ENDIF
2040 next ZN
2045 if za1=6 or za2=6 OR za3=6 OR za4=6
2050 LN=1:P1=10 : lines=lines+1:POZIOM=POZIOM+1:IF POZIOM=32 THEN POZIOM=0
2055 IF POZIOM>=0 AND POZIOM <=8 THEN A1$=str$(int(rnd(1) * 61)+1+64):Q1=2
2060 IF POZIOM>=9 AND POZIOM <=16 THEN A1$=str$(int(rnd(1) * 726)+1+729):Q1=3
2065 IF POZIOM>=17 AND POZIOM <=32 THEN A1$=str$(int(rnd(1) * 4093)+1+4096):Q1=4
2070 EXEC CONVERTER
2075 LEWO$=A1$(I1)
2080 for zn=1 to 6
2085 if asc(LEWO$(zn,zn))<>0 :lev(i,zn)=VAL(LEWO$(zn,zn))+1 :else :lev(i,zn)=0 :endif
2086 
2090 next ZN
2095 endif
2100 next I
2101 EXEC WYSWIETL:LN=0
2102 POSITION 9,1:? #6;"      ":SOUND %1,%0,%0,%0
2105 endPROC

4 Ostatnio edytowany przez Sim_Piko (2008-12-18 17:38:43)

Barrel.7z
Wersja PC. grywalnością uboższa.

EDIT : sterowanie WSAD i Shift

5 Ostatnio edytowany przez Sim_Piko (2008-12-22 12:48:55)

wersja 1.5
http://simpiko.neostrada.pl/barrel1.5.atr

W przygotowaniu jest nowsza wersja :)

6

Sim, wywal przecinek z nazwy pliku albo spakuj, bo traktuje teraz atra jak plik tekstowy.

___
Press play on tape...

7 Ostatnio edytowany przez Sim_Piko (2008-12-22 12:53:42)

Teraz powinno działać
EDIT raczej nie
Edit 2: http://wyslijto.pl/plik/zf5huxaco0
http://simpiko.neostrada.pl/barrel1.5.zip

8

całkiem fajnie :-)

Moja sugestia:użyj duszków do zaznaczania linii i kolumny, a strzałki pokazuj dopiero po naciśnięciu fajera. Zatwierdzaj dopiero po puszczeniu fajera, a nie po "wrzuceniu" kierunku - będzie trochę więcej czasu do namysłu - czyli: naciskam fire, pokazują się "szare" strzałki, wybieram kierunek - ze strony, z której zadziała zsuwanie, pokazuje się "jasna" strzałka, rezygnuję z wybranego kierunku (centruję joya) - strzałka gaśnie, mogę puścić fire bez dodatkowych konsekwencji (tzn. niechcianego przesunięcia beczek) lub zmienić kierunek - gdy puszczę w tej pozycji fire, to mi wybór zatwierdzi przesuwając beczki.

___
Press play on tape...

9

Może być ciężko. Chyba bym musiał cały silnik od nowa napisać, a że gra poszła na konkurs "Napisze se" to mam za mało czasu na to(do 27 grudnia). ale kto wie, może po konkursie...

http://atarionline.pl/v01/index.phtml?s … ct=nowinki

10

pewnie, nie ma co przeginać przed świętami - niech wersja konkursowa żyje swoim życiem, a potem można myśleć o jakiejś modyfikacji nie trzymającej się ściśle przepisów konkursu ;-)

___
Press play on tape...

11

już po konkursie, 9 miejsce, nagrody rozdane...

12

a satysfakcja z wzięcia udziału w konkursie ?

___
Press play on tape...

13

JESTEM W PIERWSZEJ DZIESIĄTCE!!!!!!!!!!!!!!! \o/
... znaczy się, jest (satysfakcja ^^'  )

14 Ostatnio edytowany przez Sim_Piko (2010-10-24 13:38:49)

http://www.kongregate.com/games/Sim_Piko/barrels
nieco nowsza wersja

edit: ech... chyba tę instrukcję z opisu muszę wkleić do gry, bo widzę, że chyba nikt takich rzeczy nie czyta -_-

15

hint dla nieumiejacych tego wlaczyc:
Z

przechodze na tumiwisizm

16

Gratulacje! Udana produkcja - aż się prosi, by wykonać sequel "Barrels 2010" w którym by można używać myszki i dowolnej definicji klawiszy ;-)

___
Press play on tape...

17 Ostatnio edytowany przez Sim_Piko (2021-03-21 22:11:27)

sorka za odkop (oby nie odkop roku, te to Kaz robi na forum obok) i za długawy post, ale ostatnimi dniami tak mi się nudziło, że spróbowałem co nieco pogrzebać w starym kodzie.
Po drodze trafiłem też na FastBasic (twór potrafiący skompilować basica do formy .xex'a zarówno na Windowsie, jak i na Atarce ze zintegrowanym IDE), także tego...
FastBasic to ciekawy kompilator/cross-compilator/interpreter(?), zastanawiam się czy nie spróbować przepisać/przekonwertować czyjeś gry na tego kompilatora, np. 'Timewarp', czy 'T.G.I.F.'... ale to temat na inny wątek

Zmiany od ostatniej wersji (bodajże v1.5):

  • zarówno plansza jak i bufory do przesuwu beczek przeniesiony z tablicy/stringa na 6 stronę (1536 i te sprawy, obsługa stringów w FastBasicu jest nieco inna niż w TurboBasicXLu, więc żeby nie walczyć z stringami, przeniosłem się na peeki i poki)

  • poprawiony kod generujący planszę (teraz zawsze powinno być dokładnie 12 beczek jednego koloru i 12 drugiego)

  • wymieniony kod generujący nową linię na zbliżony oryginałowi z GBA
       - było: losowa liczba 2-, 3- lub 4 bitowa, w zależności od zrobionych linii
       - jest: przetasowane pule '111222', '112233' lub '1234+rand(4)+rand(4)', w zależności od zrobionych linii

  • zaimplementowano sugestie z postu #8:
       - kursor wymienony z tekstowego na sprite'owy (1 na pionowy, 3 na poziomy, FastBasic ma parę komend do obsługi sprite'ów, same się prosiły o użycie :) )
       - wymienono sposób sterowania: przesuw beczek następuje dopiero fire z trzymanym kierunkiem, puszczenie fire bez kierunku powinno nic nie robić (tyle co testowałem czasami jednak beczki się przesuwały, ale niezbyt wiem czemu)
       - dodano strzałki na brzegach planszy pojawiające się po naciśnięciu fire'a, podświetlające się podczas trzymania kierunku

  • START generuje nową planszę oraz resetuje wynik

  • OPTION kończy grę i ... wychodzi do DOSa? Nie jestem pewien czy to działa poprawnie

  • i chyba najmniej znacząca zmiana - zaktualizowano rok w rogu ekranu z 2008 na 2021(raju, szmat czasu, nie?)

Kolory beczek i kursora są raczej do wymiany, ale raczej nie mam pomysłów na co je zmienić. Troszku się gryzą u mnie na telewizorze. Strzałki biorą kolory z tej samej puli co beczki, więc tu też nie ma zbyt wielkiego pola manewru.
Do sterowania nie jestem zbyt przekonany... znaczy się, działa dość wygodnie na dzojstiku, ale pod emulcem na klawiaturze jakoś mi poprzednie bardziej pasuje. :/

Tak czy siak, w załącznikach dodałem: wykonywalny .XEX z grą, kod źródłowy w .BAS (plik tekstowy z windowsowymi enterami) oraz fonta użytego w grze(kompletnie nie pamiętam czemu ją tak nazwałem ;v )

Post's attachments

barrel_v1_6.bas 8.75 kb, liczba pobrań: 2 (od 2021-03-21) 

barrel_v1_6.xex 5.32 kb, liczba pobrań: 8 (od 2021-03-21) 

FREE2.FNT 1 kb, liczba pobrań: 1 (od 2021-03-21) 

Tylko zalogowani mogą pobierać załączniki.

18

Sim_Piko napisał/a:

oraz czcionkę użytą w grze

Dużo ołowiu użyłeś? CZCIONKA to pojedynczy znak drukarski, chodzi oczywiście o FONT, czyli zestaw znaków w formie elektronicznej, odpowiadający GARNITUROWI ZNAKÓW z czcionek zecerskich.
Przepraszam,. ale pewne brakoróbstwo tłumacza windowsa pokutuje do dziś. A co do produkcji - gratuluję, słyszałem, że Fast Basic jest fajny jako taki. Pewnie sobie na gierkę spojrzę.

Sikor umarł...

19

Sikor napisał/a:

(...)CZCIONKA to pojedynczy znak drukarski, chodzi oczywiście o FONT, czyli zestaw znaków w formie elektroniczne(...)

no już poprawiłem, angielska jezyk trudna jezyk ;l

zasady właściwie się zmieniły od ostatniej wersji: nadal trzeba układać 'beczki' w linie jednego koloru

20

Zboczenie zawodowe, ale nadużywane przez innych. Muszę się przyzwyczaić do sterowania.
Btw: jak wrażenia użytkowe z Fast Basica, bo jeszcze nie próbowałem. I czy to tam nie ma USR-a? Metoda na obejście ewentualnie istnieje (poza assemblerem), czy póki co nie? Bo trochę mnie korci, ale to w wakacje najwcześniej będę miał czas...

Sikor umarł...

21 Ostatnio edytowany przez Sim_Piko (2021-03-21 22:13:51)

USR jako taki podobno jest, tu masz manuala w wersji githubowej w razie co.
Wersję w PDF mają chyba tutaj obok samego kompilatora.

A FastBasica to raczej korzystam jako crosscompiler, troszkę wyraźniejsze błędy kompilacji wywala niż wersja atarowa.

22

hehh, przymierzam się to tego FastBasica już któryś raz no i nie wiem sam .. Zastanawiałem się nawet by przeportować stare swoje projekty pod to, ale zderzenie z brakiem GO# było nad wyraz trudne ;)

Kontakt: pin@usdk.pl