C64Power Forum
Ogólne => Forum Ogólnodyskusyjne => Wątek zaczęty przez: kabel w 18 Maja 2010, 21:24
-
Mam kilka pytań dot. programowania:
1.Jak zrobić, by nie wypisywać kilkadziesiąt razy tego samego, tylko raz, a komputer resztę zrobi?Tak, jak np. w BB8
2.Jak zrobić aby postawić kursor nie cały czas pod spodem,tylko w różnych miejscach np. u góry.Chodzi mi o to, żeby pisać na tekście powyżej.
3.Jak zmienić kolor tekstu?
4.Jak wpisywać parametry IF, tak, żeby nie wyskakiwał błąd?
-
ad.1 Jaśniej
ad.2 używaj klawiszy kursora z SHIFT, wtedy ruch jest w przeciwnym kierunku
ad.3 przytrzymaj control lub C=, a wtedy klawisze od 1 do 8
ad.4 a jak wpisujesz?
-
Proponuję zacząć przygodę od:
\'Instrukcji obsługi C64\' http://www.filety.net/arty/literatura/offline/instrukcja-c64.rar
\'Commodore 64\' Bohdana Frelka. http://retroreaders.makii.pl/dload.php?action=file&id=268
-
@skull:
Nie chodzi mi o to, o czym piszesz, tylko , o programowanie, czyli np:
1 ?\' witam\'
2 input\' co u was\'; a$
Rozumiesz o co mi chodzi?
-
A, zapomniałem:
Z if koniec problemu.
-
Radze przejrzeć te dwie pozycje ksiązkowe, bo tam są wszystkie odpowiedzi na Twoje pytania.
Niestety nie ma instrukcji typu: PRINT AT .. gdzie wpisujesz pozycję x i y na ekranie,
ale w trybie cudzysłowu (jak wpiszesz pierwszy raz zaraz po print/?) obowiązują te same zasady co przy obsłudze z klawiatury. Czyli jak nacisniesz shift+crsr to np. wcale się nie cofniesz/w dół/w górę, tylko pojawią Ci się dziwne znaczki - nie panikuj, to są właśnie znaczniki ruchu kursora. Przy wykonaniu instrukcji nie będzie ich widać, za to kursor przemiści się do miejsca jaki utworzyłeś z takiej \'ścieżki\'. To samodo tyczy kolorów. Tryb cudzysłowu kończy się po następnym znaku cudzysłowu(drugi po print).
-
powtarzanie \'robi się\' za pomocą instrukcji pętli, np.
for i=1 to 10
print \'dupa\'
next i
-
A i jeszcze jedna pozycja: Roman Poznański \'Przygody z komputerem i bez komputera\'.
Autor książki napisał dla \'Bajtka\' wiele fajnych artykułów dla młodszych czytelników o programowaniu. Wszystko co początkujący powinien wiedzieć, jest dokładnie napisane, choć sama książka opisuje Basic wspólny dla Atari, Amstrada, Commodore i Spectrum.
Do pobrania z Filetów: http://www.filety.net/arty/literatura/offline/przygody-z-komputerem.rar
-
... a jak znasz angielski, to na serwerze: bombjack masz dopiero \'używanie\'! Możesz sobie ściągnąć co chcesz na temat C64 za free. Samych książek o C64 - kilkadziesiąt o programowaniu (basic, asembler) tworzeniu grafiki, muzyki itp. itd.
http://www.bombjack.org/commodore/
-
ja zacząłem przygodę z bajtkiem i artykułem jak zrobić mikroprocesor gdzie autor pokazywał mechaniczną logikę z kulkami.. pamięta to ktoś?
-
Jak tworzyć muzykę, bo w tej książce jest niejasno opisane, pozatym wyskakuje ?illegal quantity error.
-
Acha, i jak zrobić, aby funkcje rnd, int itp znalazły się w np. a$?
-
zmienne liczbowe w tekstowe można zmienić dzięki funkcji STR$(), np.
10 I=RND(1)
20 A$=STR$(I)
30 PRINT A$
Odwrotnie działa funkcja VAL(), np.
10 A$=\'1234.56\'
20 I = VAL(A$)
30 PRINT I
Co do muzyki - sprawdź, czy na pewno nie popełniłeś błędu przy przepisywaniu. Poza tym muszę cię zmartwić - bardzo ciężko jest napisać w miarę dobry program do odtwarzania muzyki w BASIC-u (poza kilkoma prostymi melodyjkami).
-
No dobra, zrobiłem, jest dobrze, poza jednym wyjątkiem- wszystkie liczby wylosowane są takie same.
-
Przed pierwszym użyciem funkcji RND() wpisz gdzieś w programu linię:
10 ZMIENNA=RND(-TI)
O ile dobrze pamiętam, RND(-TI) powoduje to inicjacje generatora liczb pseudolosowych.
-
Przepraszam, że jeden post pod drugim, ale tamten wyszedł nie całkiem po polsku.
Przed pierwszym użyciem funkcji RND() wpisz:
10 ZMIENNA=RND(-TI)
O ile dobrze pamiętam, RND(-TI) powoduje inicjację generatora liczb pseudolosowych.
-
nie działa- wyskakuje ?type mismath error in 1600
-
Niestety, wróżka, którą na co dzień zatrudniam, ma tydzień wolnego, więc nie odpowiem ci, dlaczego ci coś takiego wyskoczyło.
Jeśli chcesz wyręczyć moją wróżkę, to wklep LIST 1600 i przepisz na forum tą linię.
-
1600 z$=rnd(-ti)
-
jeśli nazwa zmiennej jest zakończona znakiem dolara ($), to oznacza tekst. A funkcja RND() zwraca liczbę. Jeśli chcesz zamienić liczbę na tekst, musisz użyć funkcji opisanej przeze mnie kilka postów wyżej - STR$
STR$ i VAL masz opisane w książce B. Frelka na stronie 42, w oryginalnej instrukcji obsługi na stronie 154 (w wersji internetowej na 78). O stosowaniu zmiennych dużo jest też w książce R. Poznańskiego (Przygoda trzynasta LET i piętnasta INPUT)
-
Coś nie zrozumiałem,
ale może wkleje fragment programu, w którym występuje błąd:
1600 z=rnd(-ti)
1610 print
1620 print\' wylosowane liczby to:\'
1630 z=int(rnd(1)*45)+1
1640 z=str$(i)
1700 for i=1 to 5
1800 print z;
1900 nexti
2000 if a$=z$ then goto 3000
2100 if a$<z$then goto2500
2200 if a$>z$ then goto 2500
-
a jak wygrasz w lotto to podziałkujesz się brachu?
-
Hehe
zgadłeś Kisiel, zgadłeś, robie gre lotto, tyle, że nie będzie się opierała na prawdziwych zasadach, tylko fikcyjnech.
-
W tym programie musisz zastosować tablice zmiennych.
Najpierw deklarujesz taką tablicę za pomocą DIM, np:
DIM T(5)
Wtedy każda z sześciu zmiennych (sześciu bo liczy się od zera do pięciu) ma tę samą nazwę (w tym przypadku T), ale inny indeks.
Jak to wykorzystać? Na przykład w ten sposób:
10 dim t(3)
20 for q=1 to 3
30 print \'podaj\';q;\'liczbe\';: input t(q)
40 next
50 for q=1 to 3
60 s = s + t(q)
70 next
80 print \'suma podanych liczb to\';s
Podpowiem ci, że losowanie liczby powinno być w pętli, między \'for i=1 to 5 a \'next i\'.
-
... Chyba zrobie `Twój szczęśliwy numerek`
-
Przepraszam , że post pod postem , ale skonczyłem.teraz kolejne pytanie:jak zrobić, aby odwołać` rozkaz ? chr$(14)
-
undo
-
syntax error..
-
a jaką masz wersje visual basica?
-
przecierz to commodore basic v2!
-
\'teraz kolejne pytanie:jak zrobić, aby odwołać rozkaz? chr$(14)\'
Niestety nie wiem, co to znaczy odwołać rozkaz. Jeśli chodzi ci o likwidację danej linii, to...
20 print \'do usunięcia\'
żeby zlikwidować powyższą linię piszemy tylko
20
zatwierdzając klawiszem Return.
-
Nie chodziło mi o to.Ale się z tym uporałem.Jednak o co chodzi z tymi tablicami? Jak je zaprogramować?Jak ja taką zaprogramuje, to ona ma tylko jeden wymiar...
-
Tablice wielowymiarowe tworzysz za pomocą tej samej komendy, co jednowymiarowe, podając kolejne \'wymiary\'.
Czyli np tak:
DIM A(3,3) - tworzy tablice dwuwymiarową 4x4 pola
DIM B(2,5,2) - tablica 3wymiarowa 3x6x3 pol
przy odwoływaniu się do określonego pola tablicy wielowymiarowej, są takie same zasady jak przy zwykłej tablicy.
np żeby przypisać w tablicy A(3,3) każdemu polu drugiego rzędu wartość 10 robimy tak:
10 DIM A(3,3)
20 FOR Y=0TO3
30 A(Y,1)=10
40 NEXT Y
żeby wyświetlić wszystkie pola tej tablicy:
50 FOR I=0TO3
60 FOR J=0TO3
70 PRINT\'A(\';:PRINTI;:PRINT\',\';:PRINTJ; :PRINT\')=\';:PRINT(I,J)
80 NEXT I
90 NEXT J
a tak w ogóle, to zajrzyj do tych poleconych książek… przecież to nie boli :P
-
jest błąd w linii 70
miało być:
70 PRINT\'A(\';:PRINTI;:PRINT\',\';:PRINTJ; :PRINT\')=\';:PRINTA(I,J)
-
A co do tej książki Mikrokomputery, to jak ją ściągnąć z tego serwisu?
-
@kabel, trochę więcej inwencji!
Na początek zacznij od tego:
http://filety.net/arty/literatura/offline/frelek-c64-cz1i2.rar
... jak rozpakować to chyba wiesz?
Przeczytaj ze zrozumieniem
i dopiero zacznij zadawać pytania.
Inne pozycje dla Ciebie do ściągnięcia z netu:
Radosław Zieliński \'C64 Programować może każdy\'
Kladiusz Dybowski \'Basic C-64, C-128\'
... były na elysium dzięki wegi`emu wrzucone przez Reitera, tutaj linki:
http://forum.c64power.com/index.php?id=1901&fid=1
ale teraz elysium coś nie ten teges (rejestrować się trzeba, czy jak??)
W każdym bądź razie mam te pozycje i jak będziesz chciał to je udostępnię na moment do zerżnięcia.
-
@Suchy, wystarczy wpisać w pola magiczne słowo \'elysium\' :)
-
@uka, dzięki, fakt - nie doczytałem do końca, to co trzeba!
-
dokładnie to dzięki reiterowi i filetom jest mirror elysium. Polecam więc i filety.
-
Wszystko działa, Suchy, trzeba się tylko wlogować, login i hasło takie samo, czyli \'elysium\'.
Sorry, ale musieliśmy tak zrobić, bo się spam boty bardzo interesowały tą stroną.
-
A, jeszcze jedno pytanie:
Gdzie podziały się artykuły z c64 power, które nazywały się \'Kurs BASICa cz., i odpowiednio 1,2,3,4\'?Bo tam jest tylko jeden artykuł, w którym nic ciekawego nie pisze.
-
wszystkie czesci kursu basica sa w artykuly/programowanie na 3 podstronie... moze sortowanie ustawiles i masz na roznych podstronach...
tutaj masz link: http://c64power.com/index.php?option=com_content&view=category&id=40%3Aprogramowanie&Itemid=2&layout=default&limitstart=40
-
teraz to nawet można poszukać i tu:
http://exbee.pl/emu64/menu.php?plik=news.php
-
No,dobra,narazie wiem wiele, tylko zadam jedno pytanie, nie związane z tematem- Dlaczego, po uruchomieniu gry, programu, na ekranie pojawiają się jakieś znaczki, ramka miga itp.?
-
Żeby było wiadomo że komputer coś robi :)
Program depakujący ładuje różne wartości np. do komórki $d020 (odpowiedzialnej za kolor ramki) i to jest to co widzisz.
W niektórych pakerach masz możliwość wyboru \'efektów\' przy depacku.
-
W przypadku loaderów LK Avalon, to migająca ramka była jedynym objawem potwierdzającym, że komputer się nie zawiesił. Bo na załadowanie gry czekało się, oj czekało...
Znaczki pojawiają się też dlatego, że (o ile się nie mylę) - pamięć ekranu (zwykle #1024-#2043) była wykorzystywana przy dekompresji.
-
... a dlatego ekranu, że komcio tak w ogóle nie ma tej pamięci za wiele!
-
... i gdzieś te procedury, dekompresji i loaderów trzeba umieścić
-
a,to już rozumiem...