|
Re: A Variable index for a simple array
[Re: Vittel]
#467838
09/04/17 06:59
09/04/17 06:59
|
Joined: Sep 2003
Posts: 6,861 Kiel (Germany)
Superku
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
|
Was genau ist deine Frage, wie du entweder 1) ein Array dynamisch (bei Laufzeit des Programms) und beliebiger Länge erstellen kannst, oder 2) beliebige Einträge über eine Variable als Index auslesen kannst? doch jedesmal wenn ich einen versuch starte dieses agent[3] durch agent[rat] zu ersetzen, so wird immer der Wert agent[0] abgerufen.
Setzt du "rat" denn vorher überhaupt auf einen anderen Wert (0,..,4)? Bspw. wie folgt:
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
var rat; // mein zukünftiger Stellvertreter für die Arrayauswahl
var agent[5] = { 1,2,3,4,5 }; //das ist mein array
void main()
{
fps_max = 60;
while(1)
{
rat = total_secs%5;
DEBUG_VAR(agent[rat],20);
wait(1);
}
}
"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual Check out my new game: Pogostuck: Rage With Your Friends
|
|
|
Re: A Variable index for a simple array
[Re: Superku]
#467914
09/07/17 16:54
09/07/17 16:54
|
Joined: Sep 2017
Posts: 4
Vittel
OP
Guest
|
OP
Guest
Joined: Sep 2017
Posts: 4
|
Also es sollte folgendermassen aussehen:
Das array wird vor der Aktivierung des Programms erstellt und die Länge und Einträge bleiben immer gleich. Nur möchte ich während der Laufzeit des Prgramms die var (rat) verändern können und damit die Einträge des arrays (agent) abrufen.
also: var rat; // mein zukünftiger Stellvertreter für die Arrayauswahl var agent[5] = { 1,2,3,4,5 }; //das ist mein array
function blabla () { //die Funktion zur veränderung der var (rat) rat +=1; }
PANEL* anzeige = { //Anzeige der Daten digits (310, 225, 5, "Arial#24bi", 1, agent); //hier soll an der stelle wo agent steht der Wert angezeigt werden, der durch die var (rat) aus dem array (agent) ausgelesen wurde }
heisst: ich aktiviere die function und erhöhe damit den wert der var (rat). Dabei möchte ich dass das array (agent) auf den Wert hinter der var (rat) "reagiert", also erkennt: "ich muss jetzt eine andere Position meines arrays auslesen als zuvor".
Ich vermute dass ich noch zu wenig Erfahrung mit der Programmiersprache habe um mich verständlicher auszudrücken.
Trotzdem schon vielen Dank für eure Hilfe, ich denke ich habe auch schon einiges anderes durch diese Forum hier gelernt und bin froh um ein solches Füllhorn an Wissen, das mir damit zur Verfügung steht.
|
|
|
Re: A Variable index for a simple array
[Re: Vittel]
#467922
09/07/17 22:08
09/07/17 22:08
|
Joined: Oct 2008
Posts: 681 Germany
Ayumi
User
|
User
Joined: Oct 2008
Posts: 681
Germany
|
Du verdrehst hier was. Entweder du erhöhst "rat" um einen Wert und nutzt ihn als Indizierung für dein Array:
rat = 2;
var value = agent[rat];
Oder du weist der Variable "rat" einen Wert aus dem Array zu: EDIT: Ich erweitere mal mit dem Code von oben:
var value = 0;
var rat; // mein zukünftiger Stellvertreter für die Arrayauswahl
var agent[5] = { 1,2,3,4,5 }; //das ist mein array
PANEL* anzeige =
{
digits (310, 225, 5, "Arial#24bi", 1, value);
}
void main()
{
fps_max = 60;
while(1)
{
rat = total_secs%5;
DEBUG_VAR(agent[rat],20);
value = agent[rat];
wait(1);
}
}
Last edited by Ayumi; 09/07/17 22:16.
|
|
|
|