Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 17.06.03 17:40 
Hallo,
wie kann ich am besten eine funktion schreiben, die folgens macht:
ich habe 3 verschieden karten + ein dekblatt.
Nun will ich meine 2d arry füllen, und zwar alle 3 verschiedne kartentypen müssen drin vorkommen aber dürfen maximal nur 2 mal drinen vorkommen, so wie es halt in memoy üblich ist.

wie geht das ?
jemmad eine idee ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
PheliX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 59



BeitragVerfasst: Di 17.06.03 18:12 
Hmm... Ich bin ein ziemlicher NewBe und hab deine Frage vielleicht nit richtig verstanden aber wenn ich sie richtig verstanden hab dann hab ich ne Idee :idea: :

SAg dem Programm doch einfach, dass es sich merken soll, welche Bilder er schon benutzt hat und streich das Bild von deiner Liste, wenn es zweimla benutzt wurde... nur mal so ne idee...
warscheinlich kannst du damit nichts anfangen, aber ich habs versucht :D
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 17.06.03 19:51 
doch du hast die frage richtig verstaden
so wollte ich es auch machen.

das problem ist folgendes:
1. ich brauche eine liste mit zahlen an unterschiedlichen positionen im 2d array aber jede zahl muss 2 mal vorkommen.
mein array sieht so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  type 
    map = record
      tex,tex2,typ:Integer;
    end;

  var
     map = array of array of TMap;

und nun kommt es auf tex2 an.
da sollen die werte drinen stehen, weil tex ist das deblatt.
könnte mir da jemmand weiter helfen ?
ich will es mit random machen, aber ich weiß nicht wie das geht :(

_________________
MFG
Michael Springwald, "kann kein englisch...."
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Do 19.06.03 18:02 
:mahn: Aber denk dran, dass der Begriff Memory eine eingetragene Marke der Ravensburger AG ist. Die haben in der letzten Zeit schon einige Leute abgemahnt, weil die Ihr Spiel Memory genannt haben...


Aktuelles Urteil:
Zitat:
21.05.2003 "Memory" LG-München Az.: 33 O 3824/03
.
Die Antragstellerin, eine bekannte Herstellerin von Spielen, ist Inhaberin der deutschen Wortmarke "Memory".
Die Antragsgegnerin, die Herausgeberin eines bekannten internationalen Frauenmagazins, bot im Februar 2003 im Internet unter der Bezeichnung "Fashion Memory" bzw. "Memory" ein virtuelles Legekartengewinnspiel an, bei dem virtuelle Karten mit paarweise vorhandenen Darstellungen von Modeartikeln verdeckt aufliegen und durch Aufklicken zweier Karten die zusammengehörigen Motive gefunden werden sollten. Als Gewinn wurde Designerschmuck im Wert von 230,-- Euro verlost.
Über den Antrag, der Antragsgegnerin die Verwendung der Bezeichnung "Memory" im Weg der einstweiligen Verfügung zu untersagen, hat die für den gewerblichen Rechtsschutz zuständige 33. Zivilkammer nach Durchführung einer mündlichen Verhandlung durch Urteil entschieden.
Das Gericht kam zu dem Schluss, dass entgegen der Ansicht der Antragsgegnerin das Wort "Memory" sich nicht zu einer beschreibenden Gattungsbezeichnung , wie z.B. "Puzzle", entwickelt hat.
Die Bezeichnung "Memory" weise eine gewisse Originalität auf; durch intensive und jahrelange Benutzung sei die Kennzeichnungskraft des seit 1959 vertriebenen Legekartenspiels gestärkt worden. Legespiele anderer Hersteller werden mit anderen Bezeichnungen wie z.B. "Memo-Spiel" gehandelt. Da die Antragstellerin auch belegen konnte, dass sie den Markt beobachtet und Kennzeichenverletzungen regelmäßig rügt, wurde ihrem Antrag stattgegeben.

(Quelle: www.justiz.bayern.de )

Moderiert von user profile iconTino: Quote-Tags hinzugefügt.

_________________
Michael
(principal certified lotus professional - developer)


Zuletzt bearbeitet von FriFra am Do 19.06.03 18:09, insgesamt 2-mal bearbeitet
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 19.06.03 18:08 
dann ändere ich den namen einfach und fertig schreiben ihn z.b. mit i oder so:
der name ist mir ersteinmal egal, das problem geht davon auch nicht weg :( :(

_________________
MFG
Michael Springwald, "kann kein englisch...."
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.06.03 10:07 
Hi Mimi

ich mach das jetzt mal freifliegend:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
type  
    map = record 
      tex,tex2,typ:Integer; 
    end
    TMapArray = array of array of TMap;

  var 
     map : TMapArray;

function TForm1.FillArray(var MA:TMapArray):integer;
var
  IntArr:array of integer;
  i,M,Ind,J:integer;
begin
   SetLength(IntArr,Length(Ma)*Length(MA[1]));
   for i:=0 to High(IntArr) do
   begin
     IntArr[i]:=i div 2;
   end;
   Randomize;
   for i:=0 to High(IntArr) do begin
     Ind:=Random(Length(IntArr));
     M:=IntArr[i];
     IntArr[i]:=IntArr[Ind];
     IntArr[Ind]:=M;
   end;
   ind:=0;
   for i:=0 to High(Ma) do
     for j:=0 to High(MA[1]) do
     begin
       MA[i,j].tex2:=IntArr[Ind];
       inc(ind);
     end;
end;


Ich habe jetzt keinerlei prüfung auf Fehler rein gemacht. Kannst du aber noch tun und den Rückgabewert dafür verwenden.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 11:22 
Danke werde ich in ca. 3-4 stunden testen:)

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 14:23 
fehler im procedure kopf.
da ist nur ein 1d array aber es muss ein 2D array sein.

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 14:29 
es funktioniert nicht :(
Zitat:

4
6
4
0
0
0
0
0

das steht im array drin

edit:
werde jetzt ein 1D array verwenden. und fertig, dann kann ich auch deine funktion verwenden:)

_________________
MFG
Michael Springwald, "kann kein englisch...."
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.06.03 14:41 
Hi Mimi

keine Ahnung was da nicht passt, denn bei mir funktioniert es.

@Array im Funktions-Kopf
Der TypTMapArray ist zweidimmensional!!

Mein kommpletter Code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
type
  Tmap = record
    tex,tex2,typ:Integer;
  end;
  TMapArray = array of array of TMap;

....

var
  Form1: TForm1;
  map : TMapArray;

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
  SetLength(map,4);
  for i:=0 to 3 do
    SetLength(map[i],5);
  FillArray(map);
  for i:=0 to 3 do
    for j:=0 to 4 do
      StringGrid1.Cells[i,j]:=IntToStr(map[i,j].tex2);
end;

function TForm1.FillArray(var MA:TMapArray):integer;
var
  IntArr:array of integer;
  i,M,Ind,J:integer;
begin
   SetLength(IntArr,Length(Ma)*Length(MA[1]));
   for i:=0 to High(IntArr) do
   begin
     IntArr[i]:=i div 2;
   end;
   Randomize;
   for i:=0 to High(IntArr) do begin
     Ind:=Random(Length(IntArr));
     M:=IntArr[i];
     IntArr[i]:=IntArr[Ind];
     IntArr[Ind]:=M;
   end;
   ind:=0;
   for i:=0 to High(Ma) do
     for j:=0 to High(MA[1]) do
     begin
       MA[i,j].tex2:=IntArr[Ind];
       inc(ind);
     end;
end;


Das StringGrig dieht der Anzeige

EDIT: Kannst hier saugen:www.simonjoker.de/Trans/DemoForMimi.rar
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 15:35 
teste ich gleich nocheinmal aus. glaube aber nicht das ich es so hinbekommen.
ich denke für ein memory spiel sollte ein 1D array reichen oder ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Fr 20.06.03 18:34 
mimi hat folgendes geschrieben:
ich denke für ein memory spiel sollte ein 1D array reichen oder ?


Wenn du die Karten in einer Teihe anordnen willst, dann schon ;)

[¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯][¯]

Aber eigentlich gehört es ja so:

[¯][¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯][¯]

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 19:39 
schon, aber die karten sind 150 mal 150 pixel breit und der 2D array ist genauso breit, fält dir ne besserelösung ein ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Fr 20.06.03 19:41 
Hmm ich dachte eigentlich das du ein Array[x,y] meinst, d.h. zur bestimmung der Karten. Hab ich wohl falsch verstanden

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 19:53 
ausblenden Delphi-Quelltext
1:
Hmm ich dachte eigentlich das du ein Array[x,y] meinst, d.h. zur bestimmung der Karten. Hab ich wohl falsch verstanden					

nein du hast es schon richtig verstanden:)
nur ich verwende z.z. ein 2D array von der größe: 150 mal 150 Pixel, und das ist wohl etwas zu groß da muss ich wohl ein 1D array nehmen, oder ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Fr 20.06.03 20:11 
150 x 150 Stück???

ich meine z.B. für das brauchst du 5 x 5 2D Array:

[¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯]
[¯][¯][¯][¯][¯]

und das jeweils ein record mit den Infos über die Karte

Und da du von Pixels sprichst, meine ich du sprichst über das Bitmap der Memory-Karte?

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 20.06.03 20:52 
nein so groß ist eine grafik ich habe nur 4 stück unten und oben

_________________
MFG
Michael Springwald, "kann kein englisch...."
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mi 25.06.03 14:50 
@Mimi: Wenn du magst, kann ich dir mal den Quellcode zu meinem Memory schicken. Ist entwickelt mit meinem I-Lehrer und funktioniert. Schickst mir einfach eine PN..

_________________
Hasta La Victoria Siempre
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 02.07.03 14:17 
habe den fehler gefunden:)
deine procendure funktionierte einbandfrei....
danke für deine hilfe.....

_________________
MFG
Michael Springwald, "kann kein englisch...."
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mi 02.07.03 17:27 
Wessen Prozedur? Hast du den Quellcode eigentlich bekommen, sprich, wurde die Mail korrekt verschickt?

_________________
Hasta La Victoria Siempre