AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kniffel

Ein Thema von MoDHellwalker · begonnen am 21. Jun 2003 · letzter Beitrag vom 21. Jun 2003
Antwort Antwort
MoDHellwalker

Registriert seit: 9. Jun 2003
27 Beiträge
 
#1

Kniffel

  Alt 21. Jun 2003, 18:34
Ich will kniffel programmieren. ich hab auch schon fast alles fertig. außer dei große und die kleine straße. die würfel sind TLabels. wie schauff ich es jetzt dass er erkennt wann es ne kleine straße is??? (ich denk es weiß jeder was ne kleine oder auch große straße bei kniffel is)
thx schon mal
mfg hellwalker
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#2
  Alt 21. Jun 2003, 19:59
Hi,

Weiß es jetz nich ganz auswendig, aber ne kleine Straße sind doch 4 Würfel deren Zahlen immer um 1 größer sind als der vorherige Würfel, oder?
Dann gibts ja drei Möglichkeiten für ne kleine Straße.
1-4, 2-5, 3-6. Oder?
Heißt, dass 3 und 4 schonmal in jeder kleinen Straße vorkommen (aber wie gesagt, bin mir nich mehr ganz sicher).
Musst also (wenn du die Würfelzahlen ausschließlich auf Labels anzeigst) 4 verschiedene If- Abfragen machen.
Einmal musst du abfragen, ob zwei der Labels die Zahlen 3 und 4 anzeigen. Wenn das gegeben ist, müssen entweder noch die Zahlen 1 und 2, 2 und 5, oder 5 und 6 angezeigt werden.
Das müsstest du dann alles mit If- Abfragen machen.
Was anderes außer If- Abfragen würd mir jetz grad auch nich einfallen. Du könntest dir natürlich sonen Typen wie TShiftState machen, den du dann z.B. TZahl nennst und dann strukturell so aufbaust wie Shiftstate.
Dann könntest du Abfragen machen wie

if (sechs in Zahl) and (fuenf in Zahl) then Isn Bissken kürzer als die LabelCaptions abzufragen und miteinander zu vergleichen.
Und mit der großen Straße würds dann ja ganz ähnlich ablaufen.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
MoDHellwalker

Registriert seit: 9. Jun 2003
27 Beiträge
 
#3
  Alt 21. Jun 2003, 21:03
des stimmt schon
aber wie mach ich es dass er praktisch abfragt ob in irgendeinem der 5 label ne 3 oder 4 is? oder muss ich da für jedes label ne neue if abfrage machen??? wie müsste ich es schreiben dass er schaut ob in label1, label2,label3, label4 oder label5 ne 3 oder 4 is? könnte mir einer vielleicht den code für diese zeile schreiben???
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 21. Jun 2003, 21:05
Hallo,

wenn die Labels noch "durchnummeriert" sind, dann kommst Du da mit FindComponent weiter. Ansonsten mit if's und " if StrToint(Label1.Caption) = 3 then ".

Grüsse, Daniel
  Mit Zitat antworten Zitat
MoDHellwalker

Registriert seit: 9. Jun 2003
27 Beiträge
 
#5
  Alt 21. Jun 2003, 21:08
und wie funktioniert findcomponent??? (sry aba ich hab da echt keine ahnung)
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 21. Jun 2003, 21:13
Hallo,

das Du noch nicht weisst wie es geht ist ja nicht schlimm, aber das Du hier fertigen Code erwartest schon! Es gibt hier eine Suche, FindComponent wurde schon sehr fot behandelt. Ausserdem hat Deine Tastatur dir F1-Taste, damit erreicht man die OH von Delphi.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#7
  Alt 21. Jun 2003, 22:33
Moin !

Ich könnte mir vorstellen das das mit sets funktionieren würde !
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#8
  Alt 21. Jun 2003, 23:18
Hi,

Achja, so hieß das.
Wieder am Beispiel von TShiftState (oben erwähnt):

type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble); Das sagt die Delphi- Hilfe dazu. Sowas könntest du dir doch dann auch mit deinen Zahlen machen. Prüfen kannstes dann wie oben beschrieben.
Allerdings... was ist wenn eine Zahl mehrmals da ist?
Dann bräuchte man von jeder Zahl 6 durchnummerierte Elemente in dieser Struktur.
Also z.B. fuenf1, fuenf2, fuenf3, fuenf4, fuenf5 und fuenf6.
Wenn du dann deine Zahlen ermittelt hast machst du diese dann von 1 bis 6 voll.
Also wenn z.B. der dritte und der fünfte Würfel ne Zwei zeigen, dann musst du zwei1 und zwei2 in das set schreiben.
Dementsprechend müsste dann die Prüfung auch etwas abgewandelt werden...
In ein Set schreiben kannst du (wenn ich mich nicht irre) so:

Delphi-Quellcode:
//Am Beispiel der Buttons von Messagedlg
//Erstmal die Deklaration des Sets
type
  TMsgDlgBtn = (mbNone, mbOk, mbCancel, mbYes, mbNo, mbAbort, mbRetry, mbIgnore);
  TMsgDlgButtons = set of TMsgDlgBtn;

//so, jetz das Set "vollmachen"
procedure SchreibZahlenInSet;
var
  sett: TMsgDlgButtons;
begin
  //am Beispiel mit den zwei Zweien oben; und nochn paar andere Zahlen rein
  sett:= [zwei1, zwei2, eins1, drei1, drei2, fuenf1];
  //Gucken ob ne 6 im Set is
  if (sechs1 in sett) then
    showmessage('juhu')
  else
    showmessage('Gerade erst das Set gesetzt und jetz nach ner 6 suchen?! Tses...');
end;
Bin mir nich ganz sicher ob es so richtig ist, aber so hab ichs in Erinnerung.
Und auf diese Weise musst du halt dein Set nach dem Generieren der Zufallszahlen mit Werten füllen, und dann später auf Zahlen abfragen. Das is ja eigentlich nur Schreibarbeit.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz