Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by EternallyCurious. 04/18/24 10:45
StartWeek not working as it should
by Zheka. 04/18/24 10:11
folder management functions
by VoroneTZ. 04/17/24 06:52
lookback setting performance issue
by 7th_zorro. 04/16/24 03:08
zorro 64bit command line support
by 7th_zorro. 04/15/24 09:36
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:48
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:46
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (SBGuy), 712 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
EternallyCurious, howardR, 11honza11, ccorrea, sakolin
19047 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
A Variable index for a simple array #467799
09/01/17 16:06
09/01/17 16:06
Joined: Sep 2017
Posts: 4
V
Vittel Offline OP
Guest
Vittel  Offline OP
Guest
V

Joined: Sep 2017
Posts: 4
Hi together.

I'm very new here and i have a question:

I would like to create an var array (in lite-c gamestudio a8) that looks like this:
var agent[5] = (1,2,3,4,5)

But i would lineto exchange the [5] with a var like rat.
Not
var agent[5]
But
var agent[rat]

Rat should be changeble douring the programm run with a button or else.


Please help me, im searching for days now

Re: A Variable index for a simple array [Re: Vittel] #467800
09/01/17 16:43
09/01/17 16:43
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
You can use malloc (sys_malloc) to do that.
Dont forget to free the memory

Re: A Variable index for a simple array [Re: Ch40zzC0d3r] #467802
09/01/17 18:38
09/01/17 18:38
Joined: Sep 2017
Posts: 4
V
Vittel Offline OP
Guest
Vittel  Offline OP
Guest
V

Joined: Sep 2017
Posts: 4
Thank you for the fast answer.

Can you maybe write an example. I tried it , but i cant figure out how it works.

Re: A Variable index for a simple array [Re: Vittel] #467804
09/01/17 19:34
09/01/17 19:34
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
Code:
int *agent = (int*)sys_malloc(rat * sizeof(int));

for(int i = 0; i < agent; i++)
    agent[i] = 25 + i;

sys_free(agent);


Last edited by Ch40zzC0d3r; 09/01/17 19:35.
Re: A Variable index for a simple array [Re: Ch40zzC0d3r] #467810
09/02/17 08:45
09/02/17 08:45
Joined: Sep 2017
Posts: 4
V
Vittel Offline OP
Guest
Vittel  Offline OP
Guest
V

Joined: Sep 2017
Posts: 4
Also da mir Englisch nicht so liegt schreibe ich kurz auf Deutsch weiter.
Vielen Dank Ch40zzC0d3r für deine Hilfe. Leider habe ich weitere Probleme. Einerseits kommt wenn ich dein Script eingebe ein Syntax-Fehler den ich weder beheben noch verstehen kann.

Andererseits ist mein Verständnis für das Programmieren noch sehr gering. Ich verstehe wie ich ein array schreibe und wie die Positionierung funktioniert.
also:
var rat; // mein zukünftiger Stellvertreter für die Arrayauswahl
var agent[5] = (1,2,3,4,5); //das ist mein array
agent[3] //damit rufe ich den vierten Wert ab, also den Wert 4

doch jedesmal wenn ich einen versuch starte dieses agent[3] durch agent[rat] zu ersetzen, so wird immer der Wert agent[0] abgerufen. ich verstehe nicht wie ich dem programm beibringen kann dass dieses rat eine variabel ist und nicht bloss eine Wert den das programm auf 0 setzen soll.



andererseits sehe ich immer wieder den begriff initialisieren des arrays. warum benötige ich das und welchen Einfluss hat dies auf das spätere Abrufen der Array-Werte?






Vielleicht sind die Fragen simpelste Einsteigerfragen, doch ich finde im Internet leider keine Antwort darauf, wie ich das in LITE-C lösen kann.
Ich bitte darum um ein wenig Verständniss und hoffe auf weitere Hilfe.

Vielen Dank

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 Offline
Senior Expert
Superku  Offline
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?

Originally Posted By: Vittel
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:
Code:
///////////////////////////////
#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
V
Vittel Offline OP
Guest
Vittel  Offline OP
Guest
V

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 Offline
User
Ayumi  Offline
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:

Code:
rat = 2;
var value = agent[rat];



Oder du weist der Variable "rat" einen Wert aus dem Array zu:

Code:
rat = agent[2];




EDIT:
Ich erweitere mal mit dem Code von oben:

Code:
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.

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1