"nachrutschen" der nachbarn
Übersicht BlitzBasic Beginners-Corner
ViddeBetreff: "nachrutschen" der nachbarn |
Di, Feb 24, 2009 16:52 Antworten mit Zitat |
|
---|---|---|
in meinem spiel stehen mehrere häuser nebeneinander. wenn ein haus abbrennt (wert des hauses sinkt auf 0) sollen alle anderen daneben stehenden häuser nachrücken um die lücke zu schließen. ich überleg schon seit tagen, aber ich find keinen programmieransatz. kann mir jemand einen denkanstoß verpassen oder gab es schon ein solches oder ähnliches problem in einem anderen traed? | ||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
XeresModerator |
Di, Feb 24, 2009 16:56 Antworten mit Zitat |
|
---|---|---|
Nebeneinander in welcher Dimension? Eine Linie (Links-Rechts), ein Feld 2D? Von jeder Seite gleichmäßig nachrücken, eine von beiden Seiten? | ||
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) |
Vidde |
Di, Feb 24, 2009 17:03 Antworten mit Zitat |
|
---|---|---|
ganz simpel halt - eine linie. ich machs mal mit zahlen deutlich:
H1(wert 789) H2(wert 456) H3(wert 123) H4(wert 258) H5(wert 369) in der folgenden runde brennt H3 komplet ab und hat den wert 0. nun sollen die rechten häuser diese lücke mit auffüllen und es sollte so aussehen. H1(wert 789) H2(wert 456) H3(wert 258) H4(wert 369) die werte sollen also mitrutschen und ein spieler am ende wegfallen. |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
Goodjee |
Di, Feb 24, 2009 17:05 Antworten mit Zitat |
|
---|---|---|
nimm types und lösch mit delete einfach einen raus | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Vidde |
Di, Feb 24, 2009 17:13 Antworten mit Zitat |
|
---|---|---|
ich arbeite in diesem projekt mit Dim... | ||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
SpionAtom |
Di, Feb 24, 2009 17:17 Antworten mit Zitat |
|
---|---|---|
https://www.blitzforum.de/foru...hp?t=30806
Das Problem ist dasselbe. Versuch mal alleine es auf dein Spiel zu übertragen. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Vidde |
Di, Feb 24, 2009 17:31 Antworten mit Zitat |
|
---|---|---|
danke SpionAtom und auch danke an alle anderen.
also dieses beispiel überfordert mich maßlos aber ich wills trotzdem ernsthaft versuchen - werde dann wohl nächste woche dieses thema neu ansprechen da der erfolg sicher ausbleibt... |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
da_poller |
Di, Feb 24, 2009 17:53 Antworten mit Zitat |
|
---|---|---|
wie die erste antwort schon sagte:
nimm Types da du objekte zwischendrin rauslöschen willst die nachrücken und es sich offensichtlcih nur um eine reihe(zeile) handelt sind Arrays(Dim) die schlechtere wahl. |
||
pile |
Mi, Feb 25, 2009 21:31 Antworten mit Zitat |
|
---|---|---|
Oder fang einfach an den Code auf dein Beispiel zu übertragen und wenn du nicht weiterkommst poste den Code hier mal bis dahin wo du gerade bist. | ||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
TimBo |
Do, Feb 26, 2009 15:13 Antworten mit Zitat |
|
---|---|---|
Hi,
wenn es nur um das darstellen geht, mach das: Code: [AUSKLAPPEN] For i=0 to anzahl_haus
if haus(wert)<>0 then d=d+1 drawimage hausimg,0+d*20,0 endif next ich hoffe, ich habe das problem so richtig verstanden. TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Vidde |
Do, Feb 26, 2009 15:42 Antworten mit Zitat |
|
---|---|---|
danke TimBo - so in die richtung dachte ich auch schon mehrfach.
wie ich aber aus den anderen antworten herauslese, ist das mit Dim wohl sehr schwer bis nahezu unmöglich. habe auch schon in types geschuppert, aber die überfordern mich noch restlos. bin froh dass das programm so erst mal mit Dim läuft und versuche mich dort nochmal an einer lösung... |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
TimBo |
Do, Feb 26, 2009 15:44 Antworten mit Zitat |
|
---|---|---|
meine Lösung ist doch für Dims?
Jetzt bin ich wohl total verpeilt. Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
da_poller |
Do, Feb 26, 2009 15:57 Antworten mit Zitat |
|
---|---|---|
es geht um das nachrücken denke ich.. (und evtl resizen des arrays weil der rest sonst leer(0) ist..)
für types findest du per forensuche ein sehr gutes und verständlcihes tutorial("type tut für dummies") glaub nach sowas musste mal suchen hier.. hat mir damals auch geholfen. |
||
Vidde |
Do, Feb 26, 2009 16:01 Antworten mit Zitat |
|
---|---|---|
ja schon - aber so funzt es noch nicht.
ich erkläre das problem nochmal bildlich anders (2D): ein hochhaus hat 10, oder 15 oder 20 etagen. jede etage hat noch mehere eigenschaften. nun soll eine etage verschwinden - sagen wir etage 3. nun sollen alle anderen etage (mit all ihren werten) um 1 nach unten rutschen um die 3. zu ersetzen. danach ist also die vorher 4. etage plötzlich die 3.; die vorher 5. ist nun die 4. and so on... und dem haus fehlt am ende ingesamt nur die letzte etage (haus hat dann nur noch 9 oder 14 oder 19 etagen. @ da_poller: genau das ist mein problem - die etage bleibt sonst leer. oder ich ich entsorge nur die letzte etage. ist aber unfair, denn die kann nix dafür, dass die 3. etage so doof war |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
- Zuletzt bearbeitet von Vidde am Do, Feb 26, 2009 16:04, insgesamt einmal bearbeitet
da_poller |
Do, Feb 26, 2009 16:04 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] type etage field eigenschaft1 field eigenschaft2 ... end type h.etage=new etage h\eigenschaft1=bla h\... usw... so würde ich das in etwa lösen.. (pseudo code nciht lauffähig) |
||
SpionAtom |
Do, Feb 26, 2009 16:04 Antworten mit Zitat |
|
---|---|---|
Weißt du denn schon wie man mit mehrdimensionalen Arrays umgeht? Die könnten die Etagen recht gut abbilden. Auch wenn Types zu bevorzugen sind, so ist es mit Arrays nicht unmöglich, ja sogar nicht schwierig. | ||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Vidde |
Do, Feb 26, 2009 16:08 Antworten mit Zitat |
|
---|---|---|
vidde sitzt kopfschüttelnd vor dem rechner - kein ahnung, noch lange zeit nicht...
ich knobel noch etwas an der Dim-lösung (hab grad bock drauf). ansonsten muss ich mich auf den anderen gebieten wohl mal schlauer machen. |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
BladeRunnerModerator |
Do, Feb 26, 2009 16:10 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] Dim array(10)
For i = 0 To 9 array(i) =i Next Print "vorher:" For i = 0 To 9 Print array(i) Next entferne(4) Print "nachher:" For i = 0 To 9 Print array(i) Next WaitKey() Function entferne(x) If x <9 Then For i = x To 9 array(i)=array(i+1) Next array(9)=0 Else array(9)=0 EndIf End Function Funzt, ist allerdings sehr ineffizient. Ich kan dir wirklich nur raten dich intensiv mit Types zu beschäftigen, die hier tausendfach besser geeignet sind. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
XeresModerator |
Do, Feb 26, 2009 16:23 Antworten mit Zitat |
|
---|---|---|
Types ftw!
Code: [AUSKLAPPEN] Graphics(800, 600, 0, 2)
SetBuffer BackBuffer() Local timer = CreateTimer(60) Global mx, my, mh1, mh2 ;*** Für das Beispiel sind die Stockwerke nur Bunte Klötze... Type TStockwerk Field r, g, b End Type For i = 0 To 5 Add_Stockwerk(Rand(0,255), Rand(0,255), Rand(0,255)) Next Repeat mx = MouseX() my = MouseY() mh1 = MouseHit(1) mh2 = MouseHit(2) ;*** Rechte Maustaste fügt ein Stockwerk hinzu: If mh2=True Then Add_Stockwerk(Rand(0,255), Rand(0,255), Rand(0,255)) Update_Stockwerke() Flip(0) WaitTimer(timer) Cls Until KeyHit(1) Function Add_Stockwerk(r, g, b) ;*** Ein neues Stockwerk wird hinzugefügt Local s.TStockwerk = New TStockwerk ;* Und alle benötigten Werte gesetzt s\r = r s\g = g s\b = b End Function Function Update_Stockwerke() Local s.TStockwerk, i=500 For s = Each TStockwerk ;*** Wir zeichnen von unten nach oben. Neue Stockweke erscheinen Obenauf Color(s\r, s\g, s\b) Rect(380, i, 40, 40) ;*** Wenn die Maus sich im Rechteck des Stockwerks befindet, und geklickt wurde, ;*** wird das Sockwerk entfernt If mouseInRect(380, i, 40, 40) And mh1=True Then Delete s EndIf i = i - 40 Next End Function Function mouseInRect(x, y, w, h) If mx <= x Then Return False If my <= y Then Return False If mx >= x + w Then Return False If my >= y + h Then Return False Return True End Function |
||
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) |
Vidde |
Do, Feb 26, 2009 16:35 Antworten mit Zitat |
|
---|---|---|
unfassbar Xeres - tausend und einen dank! muss das nur noch irgendwie auf mein programm übertragen.
einfach MEGAKLASSE diese community - danke an alle helfer |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group