Type zugriff für Spiel
Übersicht

![]() |
jokerman29Betreff: Type zugriff für Spiel |
![]() Antworten mit Zitat ![]() |
---|---|---|
guten abend bb-coder,
mein bruder und ich wollen monopoly progen, mein bruder kennt nur mathematische programme (matlab). Für das Erstellen der Spieleigenschaften, wie z.b. welches Feld gerade Abgefragt werden soll hätte er normalerweise eine Matrix benutz: (Position) 1 2 3 4 5 6 7 .. (x- Koordinaten des 1 2 3 4 5 6 7 ... Spieler aufdem Brett) 1 2 3 ... (y-Koordinten) 1 2 3 ... (Kosten) 1 2 3... (Häuser) 1... (wem gehört was ) 1... dem entsprechend würde beim Würfen eine Integer (Spieler1) immer einen wert von 1 bis 40 haben die seine Position angibt. Nun würde entprechend der Position sofort die Matrix die restlichen werte angeben. WIE KANN ICHS NUN MACHEN, DASS DER TYPE ABGEFRAGT WIRD, AUF DEM DIE FIGUR IST UND ER ALLES IM TYPE ABFRAGT (KOSTEN USW...)??? mfg jokerman29 |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieviel Ahnung habt ihr denn vom Basic-Programmieren?
Wieviel Ahnung habt ihr denn von DIM oder TYPE? Wieviel Zeit habt Ihr für das Projekt? |
||
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. mein bruder versteht die logik vom programmieren aber nichts von basic ![]() ![]() 2. wir verstehen wieder die logik dahinter (zu types haben wir auch dein tut durchgenommen ![]() 3. also wir haben viel zeit, es sollte sich aber nicht zu lang ziehen wir haben auch schon darüber viel geredet und auch ein spielfeld erstellt... |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
gut, dann also mit TYPES:
Schritt 1: Zunächst erstellt ihr einen Type, der alle nötigen Parameter (als Variablen) einer einzelnen Spielfeldposition enthält und postet ihn hier So geht es: BlitzBasic: [AUSKLAPPEN] Type SpielFeldTyp jeder Parameter ist ein Field-Eintrag, verwendet bitte sinnvolle Variablennamen (nicht a%, oder sowas) ich warte hier drauf und sag dann, was ich davon halte... |
||
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja soweit sind wir auch ![]() das war ja auch in deinem tut, nur wie können wir darauf zugreifen?? weil wir müssen ja für jedes feld (40) ein type erstellen mit all diesen eigenschaften, nur wie machen wir es, dass wir genau auf den type zugreifen können, auf dem auch grad der spieler ist? |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gaaanz einfach, lass ne Variable im Type als Counter mitlaufen, so kannst du flexibel vergleichen!
Beispiel: entweder ein Type-Feld als ID oder ne globale Variable... Typename\PlatzID (die Platznummern von 1-40) bei jedem neu erstellten Type um eins erhöhen lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
- Zuletzt bearbeitet von Jamagin am Mi, Jan 06, 2010 23:34, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
würde ich nicht machen!
die Spielfelder sind fix, keines wird deleted kein neues kommt dazu. Ich rate zu DIM Das hier ist ein Beispiel, das zeigt, wie man die Felder erstellt und gleich mit den Anfangswerten füllt. (Hier im Beispiel mit Zufallsquatsch.) BlitzBasic: [AUSKLAPPEN] Type SpielFeldTyp Wie wollt ihr die Anfangsdaten eingeben. Datei oder DATA-Zeilen? |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde es schon komplett mit Types machen, da man in diesen einfach und schnell wie in einem Buch blättern kann. Jede Buchseite ist ein neuer Eintrag und die Zeilen auf der Seite sind die Fields.
Nach Midimasters Beispiel: Code: [AUSKLAPPEN] Type SpielfeldTyp
Field Nummer Field Miete% Field Straßenname$ .... End Type ;sft.SpielfeldTyp soll die Bezeichnung der Einträge sein ("sft") Dieses Feld "Nummer" kannst du z.b. auch ID oder Counter nennen. Ist egal. Angefangen von der Startposition nummeriert man diese nun durch wenn man die einzelnen Types erstellt. Abrufen kannst du sie indem du sie wieder rufst. Man blättert so in der Typliste bis man den Eintrag gefunden hat. Das Programm bleibt dann solange auf diesem Eintrag/Buchseite stehen bis man mit next/after/first/last weiterblättert. Also sucht ihr erst in den Typeinträgen nach dieser bestimmten Feldnummer: Code: [AUSKLAPPEN] sft.SpielfeldTyp = first SpielfeldTyp
while sft\Nummer<>Gesuchte_Nummer sft = after sft ;blättert eine "Seite" weiter (nächster Type-eintrag) wend Nun verbleibt das Programm auf diesem Type-eintrag und ihr könnt genau diesen modifizieren. Zum Beispiel den Besitzer wechseln durch ein anderes Type, was die Spieler vertritt. Code: [AUSKLAPPEN] sft\Besitzer=sp\Spieler_ID_Nummer_der_auf_diesem_Feld_steht
|
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei aller liebe....FOR/EACH/NEXT-Schleifen sind wirklich nur nötig, wenn die Elemente dynamisch sind. Warum sollte ich nach dem 40. Eintrag suchen, wenn er doch immer an der 40.Stelle liegt.
ich frag mich manchmal, warum Mark wohl überhaupt ARRAYs programmiert hat, wenn sie so unsinnig wären, wie viele hier behaupten. Dies ist nun wirklich ein klassischer Fall für ARRAYS! ![]() Der Spieler steht gerade auf Feld(3) und würfelt die 8, danach steht er auf Feld(3+8) Er stand auf Feld(3)\StrassenName jetzt steht er auf Feld(3+8)\StrassenName genau genommen auf BlitzMax: [AUSKLAPPEN] NeuFeld=(AltFeld+Wuerfel) Mod 40 |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er könnte natürlich auch nach dem 10. Eintrag so suchen:
Code: [AUSKLAPPEN] gesucht=10
sft.SpielfeldTyp = First SpielfeldTyp for i=1 to (gesucht-1) sft = after sft next De Fakto ist es in diesem Fall egal was er benutzt. Schaden tut nichts von beidem. Früher oder später muss er Types benutzen, auch wenn das erst im nächsten Projekt kommen wird, und genau das wäre eine tolle Übung für ihn sie sofort einzusetzen. Komplizierter sind sie meiner Meinung nach (kann ja jeder anders empfinden ![]() |
||
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist nicht wahr !
es ist überhaupt nicht egal was er hier benutzt... types sind absolut nicht hierfür gedacht und deutlich langsamer. ok es handelt sich um 40 felder - es wäre also für einen menschen ein nicht merklicher unterschied... aber es geht ums prinzip.... wer hier types verwendet schreibt irgendwann programme die in 1000 jahren nicht terminieren... es ist absolut unsinnig nach dem 10. element zu "suchen", wenn man bei arrays einfach direkt weiß wo sie sind -.- sorry night, aber das war kein qualifizierter beitrag.. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach Kinder...
BlitzBasic: [AUSKLAPPEN] Local Felder.TSpielfeld[40] ...und gut ist ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Xeres
Danke für deine Zustimmung. Arrays reichen hier. [EDIT #1] Danke für Deinen Hinweis. Ich wusste nicht dass beides geht: BlitzBasic: [AUSKLAPPEN]
und BlitzBasic: [AUSKLAPPEN]
Danke auch an Valnar! |
||
- Zuletzt bearbeitet von Midimaster am Do, Jan 07, 2010 11:40, insgesamt 2-mal bearbeitet
![]() |
Valnar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es kann auch so sein wie es Xeres geschrieben hat, das sind dann Blitzarrays. | ||
[url][/url] |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wäre vielleicht mal an der Zeit, den ganzen Blitzlingen zu erklären, dass Types und Arrays sich prinzipiell nicht konkurrieren. Die beiden Dinge vertragen sich sogar sehr gut und können problemlos kombiniert werden. Verwirrung stiftet wohl einfach die Tatsache, dass Types in BB automatisch mit Listen ausgestattet sind. Und ja, Listen und Arrays sind dann die zwei verschiedenen Paar Schuhe, die so oft hier angesprochen werden und manchmal müssen Types als Argument herhalten, obwohl Listen gemeint sind.
Also: Es ist absolut sinnvoll, solche Datenstrukturen in ein Type zu packen und die Daten dann in einem Array zu speichern. Danke an Xeres und Midimaster =) ohne eure Intervention würde hier wahrscheinlich ein mehrdimensonale Arrays vs dynamische Type (Listen) -Krieg ausbrechen. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Valnar
das ist ja toll, dann lassen sich ja auch Arrays in Types integrieren: BlitzBasic: [AUSKLAPPEN] Type SpielFeldTyp schon hat sich der Tag gelohnt.... ![]() |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo aber leider nur Statisch. Wer das nicht will kann bei Int,Float und anderen Fixen längen auf Banks umsteigen... strings wären da relativ schwer.. | ||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr habt Recht. Es ist nicht nötig Types zu verwenden.
Das war nur meine Intention: NightPhoenix hat Folgendes geschrieben: Früher oder später muss er Types benutzen, auch wenn das erst im nächsten Projekt kommen wird, und genau das wäre eine tolle Übung für ihn sie sofort einzusetzen.
Ein zeitlicher Unterschied zwischen Types und Arrays wäre in diesem Beispiel ohnehin nicht in ms messbar. So kann er sich schon mal mit den Types vertraut machen. Ihr kennt doch sicherlich die Probleme der meisten Anfänger mit Types ![]() Im übrigen hat Midimaster in seinem Vorschlag ebenso ein Type deklariert in Kombination mit einem Array, also hätte der Anfänger gleich 2 Probleme mit dem er sich beschäftigen und was er verstehen muss. Midimaster hat Folgendes geschrieben: Und nichts spricht dagegen für ein Spielfeld ein Array aus Types zu benutzen:
|
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
jokerman29 hat Folgendes geschrieben: ich hätt jetzt einfach mal ein paar fragen zu arrays:
Ich poste mal hier, da die Fragestellung hierzu gehört... nicht zu Arrays im allgemeinen;
ich hab ein array definiert z.b. feld(40,4) (40 weils 40 spielfelder sind und die 4 steht für z.b. miete, position des spielers usw.) wie kann ich jetzt die einzelnen werte in den array eintragen z.b. miete, position usw.?? und wie kann ich dann eine bestimmte spalte abfragen?? bitte mit beispielen Very Happy ich bin noch nciht so vertraut mit arrays Mach dich selber vertraut mit Arrays indem du dir (!) Beispiele schreibst. Arrays sind nicht derart kompliziert. Schau in die Online Hilfe. Such im Forum. So lernst du effektiv wie etwas funktioniert. Und/Oder mach dir eine Zeichnung auf Papier (oder eine Tabelle in Excel) damit du siehst wo welche Werte drin stehen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, nun habt ihr euch für einen Weg aus NUR Arrays entschieden.
Das bekommt man so auch hin, hat aber einige Haken. Meine Lösung wäre gewesen TYPES und ARRAYS zu kombinieren und ich biete euch an, euch dabei zu begleiten. Zu den "Haken" gleich mal zwei Fragen: Jede Straße hat ja einen Straßennnamen, der im Spiel angezeigt werden sollte. Wie löst Ihr das mit ARRAY? Jede Straße kannt 6 verschiedene Mietsummen, davon eine immer aktiv. Wie habt ihr das gelöst? Und dann hatte ich schon gestern mal diese Frage gestellt, wil ich euch viel Arbeit ersparen wollte: Wie bekommt ihr die Daten ins Spiel? Da gibt es nämlich superschöne Lösungen mit wenig Arbeitsaufwand! Vielleicht meldet ihr euch ja mal.... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group