Seite 1 von 2

QBasic, für Blutige Anfänger am besten?

Verfasst: 26.06.2008 00:43
von Conshar
Hallo Leute, da ich noch ein ziemlicher Anfänger bin was Programmieren angeht, möchte ich mal kurz was fragen. :)

Ich habe bereits Purebasic, jedoch ist es in einigen Fällen nicht sehr leicht für Anfänger wie mich, die ganz vonn Null anfangen, das Programmieren zu lernen, wo noch nicht soviele Bücher und ausführliche Tutorials für PureBasic gibt.

Ich möchte hierbei betonen, dass ich PureBasic und den Support(besonders hier im Forum) wirklich Klasse finde und sich einiges auch ohne Tutorials von selbst erklärt. Ich finde, dass PureBasic einen noch viel höheren Bekanntheitsgrad verdient hat(Durch viele Anfängerfreundliche Tutorials bzw. Bücher würden sich viele Anfänger vielleicht auch eher für PureBasic entscheiden als z.B. Visual-Basic etc.)

Nun aber zu meiner eigentlichen Frage <)

In der Bibliothek habe ich mir ein Buch mit dem Namen "HackerBasics - Programmieren lernen" ausgeliehen, lasst euch jedoch nicht von dem Namen Hacker abschrecken, hat nichts mit dem hacken zu tun *gg*

Dort werden einige Basic-Sprachen vorgestellt unter anderem wird dort erwähnt, dass QBasic sehr leicht zu erlernen ist und es scheinbar viele Tutorials hierfür gibt.

Deswegen möchte ich wissen, ob Ihr bereits Erfahrung mit QBasic habt und es zu Empfehlen ist vorher zu lernen um den Einstieg in PureBasic leichter zu haben oder ob es dann eher zu Komplikationen kommen kann, da dort eventuell ganz andere Befehle sind als in PureBasic. Oder vielleicht habt Ihr eine noch viel bessere Lösung? Falls es eine gibt, dann auch nur her damit :)

Bitte um eine Antwort, Vielen Dank! :allright:

Verfasst: 26.06.2008 01:41
von PMV
Viele, oder einige haben mit QBasic angefangen ... mich eingeschlossen
und sind dann zu PB gewechselt. http://www.QBasic.de ist wohl die erste
Anlaufstelle, wenn es um QBasic geht. QBasic ist ziemlich alt und läuft nur
auf DOS. Als schwer kann ichs nicht bezeichnen, aber ich halte PB heut zu
tage für sinnvoller, um damit als Anfänger zu beginnen. Es stimmt zwar,
dass es nicht sooo viel gibt in richtung Ausführliche Tutorials für Anfänger,
aber dafür ist die Hilfe z.b. sehr sehr gut. Und wenn man richtig sucht,
sollte man eigentlich auch zu allem was finden. :D

Robsite.de und PureArea.net sollten viel viel Stoff bieten und das Forum
hier sollte über die Suchfunktion auch noch einiges Ausspucken. Und für
den fall der fälle kann man ja sogar nen Thread erstellen :wink:

Das meine Meinung.

MFG PMV

Re: QBasic, für Blutige Anfänger am besten?

Verfasst: 26.06.2008 02:13
von Kaeru Gaman
Conshar hat geschrieben:In der Bibliothek habe ich mir ein Buch mit dem Namen "HackerBasics - Programmieren lernen" ausgeliehen
Ich schätze mal, dass das Buch dementsprechend alt ist....
damals was QBasic durchaus die erste wahl, weil es eben BASIC war und einfach zu bekommen.
ich weiß ganich, ob es überhaupt noch andere BASICS aufm PC gab,
wenn ja dann schwieriger zu bekommen,
und ansonsten gabs eben andere Programmiersprachen.
insofern musst du diese Aussage wohl im "geschichtlichen" Zusammenhang sehen...

klar gab es für QB viel mehr tuts als es jetzt für PB gibt,
aber um QB zum laufen zu bekommen bräuchtest du ne DOS-Box,
und schicke ergebnisse wirst du dementsprechend auch nicht bekommen,
nix mit sprites und DirectX.

also, das wird sich für dich absolut nicht lohnen jetzt mit QB rumzudaddeln.

es gibt ein paar kleine Tuts auf verschiedenen seiten verteilt, du kannst hier im Forum Fragen stellen...
da hast du mehr davon, als jetzt anfangen zu wollen ein totes Pferd zu reiten.

Verfasst: 26.06.2008 07:06
von edel
FreeBasic ist um einiges umfangreicher als PureBasic und
somit mehr als eine Alternative. Deine Tutorials kannst du
mit FreeBasic auch durchgehen, da FreeBasic kompatibel
zu QBasic ist.

Verfasst: 26.06.2008 07:13
von DrShrek
Und FreeBasic gibt es für lau.
Was für einen Anfänger wiederum von Vorteil ist (Wer weiss wie lange er zum programmieren Lust hat...)

Verfasst: 26.06.2008 13:09
von Conshar
Ok, werde dann lieber von QBasic die Finger weglassen und mir stattdessen erstmal FreeBasic anschauen, danke für die Tipps Leute! <)

Verfasst: 26.06.2008 13:36
von Xaby
Vor 12 Jahren habe ich auch mal was mit QBasic gemacht.

Die Frage, die du stellen solltest ist nicht, ob QBasic besser ist für Anfänger, sondern eher wie du anfangen sollst :)

Das QBasic nicht mehr auf dem Stand der Zeit ist, darüber sind wir uns sicherlich alle einig.

Nun stelle ich eine Frage an dich: Was stellst du dir unter Programmierung vor? Was möchtest du gern programmieren? Weißt du, was Schleifen, Variablen und Bedingungen sind?

Diese Fragen werde ich dir gern beantworten, doch ohne dieses Wissen wird dir der Einstieg in fast jede Programmiersprache fallen.

Willst du einen einfachen Text mit PureBasic ausgeben kannst du das allein schon mehr mehreren Möglichkeiten machen:

Code: Alles auswählen

Debug "Hallo"
oder

Code: Alles auswählen

OpenConsole()
Print("Hallo")
Input()
CloseConsole()
oder

Code: Alles auswählen

MessageRequester("Text","Hallo")
Kannst es auch auf einen Fenstertitel ausgeben, oder im Grafikmodus. Mit DrawText()

Was willste machen?

:allright:

Verfasst: 26.06.2008 14:26
von Conshar
In dem Fall würde ich nehmen:

Code: Alles auswählen

MessageRequester("Text","Hallo")
da Debug nur für den PB-Compiler gedacht ist und openconsole(...) ist eher für DOS.

Also paar Tutorials hatte ich zu Schleifen, Variablen und Bedingungen auch gelesen.

Schleifen, können den Code öfters bis unendlich wiederholen lassen z.B.
Repeat : Until, Repeat : Forever, While : Wend etc.

Variablen sind das Gegenteil von Konstanten, deren Inhalt kann frei verändert werden z.b.
jetzt b.l = 1
später b.l = 2 (l ist eigentlich nicht notwendig ein zweites mal bei b zu schreiben, jedoch zur übersicht besser?!)

Unter Bedinungen stelle ich mir z.B. den IF-Befehl vor,
also z.B.
IF(Wenn) Katze im Sack <-- Bedingung
(Dann) Öffne Sack
ENDIF(Ende der IF-Abfrage)

Ich möchte mich erstmal auf die Spiele-Programmierung unter Windows einschränken, jedoch ist es nicht so leicht wie ich es mir am Anfang vorgestellt habe z.B. eine Highscore erstellen, ich hatte zwar einige Beispiele gefunden, und auch versucht mich reinzuversetzen bzw. durch ändern der Codes rauszufinden wie es funktioniert, nur am Ende war ich nur noch verwirrter als am Anfang :freak:

Ich werde einfach das Gefühl nicht los, dass ich etwas nicht mitbekommen bzw. überlesen habe irgendetwas fehlt(???)

Und da es keine guten Tutorials für Spiele-Programmieren(nur kleine einzelne, viele auch gleich) in PB gibt(meistens nur für C++), bin ich ziemlich Ratlos. Die Beispiele auf PureArea finde ich zwar gut, aber finde, dass diese eher für fortgeschrittene gedacht sind?

Verfasst: 26.06.2008 14:34
von Kaeru Gaman
zu spieleprogrammierung gibt es ein ganz grundlegendes tutorial auf purebasic.de
http://purebasic.de/tutorium.shtml
grottenhaftes Layout, aber der Inhalt ist empfehlenswert.

irgendwo gabs noch ein tut "starscrollshooter" oder so, war aber glaubich in englisch....

zu ner Highscore wirst du mehr über Online-Highscores finden,
weil ne simple ingame-highscore nicht so das problem ist...
bereitet dir das schwierigkeiten? ist eigentlich fix erklärt...

Verfasst: 26.06.2008 14:50
von Conshar
Danke, werde mal dort vorbeischauen :)

Ich hatte hier im Forum folgenden Code gefunden:
(Auf PureArea habe ich kein Beispiel gefunden, entweder übersehen oder es ist nicht da)

Code: Alles auswählen

; HighScore
;
; Original von STARGATE (aus dem deutschen Forum)
; modifiziert und erweitert von michel51 im Juni 2007
;
; erstellt mit Mac PB V.4.00 Beta 1
; getested unter Mac OS X und Windows XP
; Linux nicht getestet, sollte aber gehen, da nur PB-eigene Commands verwendet
;
;

Procedure ShowHighScore(Datei.s)
   If OpenWindow(10, 0, 0, 260, 300, "Highscore", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
      If CreateGadgetList(WindowID(10))
         ListIconGadget(0, 10, 10, 240, 240, "Pos", 50, #PB_ListIcon_GridLines)
         AddGadgetColumn(0, 1, "Name", 100)
         AddGadgetColumn(0, 2, "Punkte", 60)
         If ReadFile(1, Datei)
; ------- Hier gewünschte Schleife aktivieren -----------------         
;             While Eof(1) = 0      ; es wird alles angezeigt
            For I = 1 To 10         ; es werden nur die ersten 10 angezeigt
               String.s = ReadString(1)
               Name.s = Left(String, 10)
               Punkte.s = Mid(String, 11, 5)
               pos+1
               AddGadgetItem(0, -1, Str(pos)+Chr(10)+Name + Chr(10) + Punkte)
            Next                    ; es werden nur die ersten 10 angezeigt
;             Wend                  ; es wird alles angezeigt
; -------------------------------------------------------------
         EndIf
         CloseFile(1)
      EndIf
   EndIf
EndProcedure

Procedure HighScore(Datei.s, Name.s, Punkte.l)
   If OpenFile(1, Datei)    ; Datei wird geöffnet oder neu angelegt.
      If CreateFile(2, "_"+Datei)   ; Hilfsdatei erzeugen
; ------- Hier gewünschte Schleife aktivieren -----------------
;       Repeat             ; Alle werden gespeichert
      For i = 1 To 10      ; nur die ersten 10 - 11 Besten
         String.s = ReadString(1)
         HS_Punkte = Val(Trim(Mid(String, 11, 10)))
         
         If HS_Punkte < Punkte And Eingetragen = 0:    ; vergleichen und richtig einsortieren
            WriteStringN(2, LSet(name, 10, " ")+" "+Str(Punkte))
            Eingetragen = 1
         EndIf
         WriteStringN(2, String)
      Next                 ; Nur die ersten 10 - 11 Besten
;       Until String = ""  ; Alle werden gespeichert
; -------------------------------------------------------------
      CloseFile(2)
      EndIf
      CloseFile(1)
   EndIf
   CopyFile("_"+Datei, Datei)
   DeleteFile("_"+Datei)      ; fertig, Highscoreliste ist gespeichert

EndProcedure
;
HSFile.s = "HScore.score"
; der Datei-Name sollte nach eigenem Geschmack angepasst werden
;
; Beispielaufrufe

HighScore(HSFile, "Test 1", 23)
HighScore(HSFile, "martin", 4)
HighScore(HSFile, "Stargate", 124)
HighScore(HSFile, "LOL", 1)
HighScore(HSFile, "baum", 2341)
HighScore(HSFile, "Namesehrlang", 55)   ; überlanger Name
HighScore(HSFile, "Klaus", 198)

ShowHighScore(HSFile)     ; ... und mal anzeigen
   
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End
Nun aber habe ich drei Probleme, dieses Beispiel ist eher für OpenWindow und ich will für Openscreen

Das zweite Problem ist, dass es nicht vollkommen richtig zu sein scheint. Beim ersten Compilieren ist es richtig, beim zweiten mal werden die Daten nicht einfach überschrieben sondern einfach hinzugefügt.

Das dritte(das Hauptproblem), irgendwie verwirrt mich dieser Code, wobei die meisten Begriffe mir Bekannt sind :shock: