AGB  ·  Datenschutz  ·  Impressum  







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

< und > deklarieren oder sowas

Ein Thema von hille · begonnen am 19. Jun 2006 · letzter Beitrag vom 19. Jun 2006
Antwort Antwort
hille

Registriert seit: 19. Mär 2006
100 Beiträge
 
#1

< und > deklarieren oder sowas

  Alt 19. Jun 2006, 17:46
Hi,
also der Titel sagt ja erstmal nicht viel, denn das Problem war das ich nicht wusste wie ich es nennen kann. Aber Egal.

Mein Problem:
ich möchte Karten in ihrer Wertigkeit geordnet haben. Also Schell 7 größer als grün Unter. Für die kartenbeschreibung hätte ich gedacht Schell 7 = S7 ,
Grün Unter = GU. Aber wie kann ich dies nun der größe nach ordnen bzw. angeben?

Geht: S<H<G<K (schell<herz<grün<kreuz)?

Hille

PS: Bin noch nicht alzulange beim programmieren, aber es kann auch etwas komplizierter sein.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 17:49
Erstelle dir einen Aufzählungstyp...

Delphi-Quellcode:
type
  TKarten = (schell, herz, gruen, kreuz);

const Karten:array[TKarten] of string = ('schell', 'herz', 'grün', 'kreuz');
MfG
Thorsten
  Mit Zitat antworten Zitat
hille

Registriert seit: 19. Mär 2006
100 Beiträge
 
#3

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 17:53
Und wie kann ich dann schell < herz machen?

PS: Soweit war ich im lernen noch nicht. Kannst du mir das genauer erklären?

Hille
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 17:59
Delphi-Quellcode:
type
  TFarbe = (schell, herz, gruen, kreuz);
  TWert = (6,7,8,9,10,U,O,K,Sau);
  TKarte = record
    farbe: TFarbe;
    Wert: TWert;
  end;
jetzt sollte es schon möglich sein zu sagen

Delphi-Quellcode:
var karte1,karte2: TKarte;

if (karte1.farbe < karte2.farbe) or ((karte1.farbe = karte2.farbe) and (karte1.wert < karte2.wert)) then
  Showmessage('Karte1 weniger wert als Karte2!');
Wenn aber
Ansonsten musst du dase alles nach integer casten, also Delphi sagen, es soll die variable wie eine zahl behandeln:

if (Integer(karte1.farbe) < Integer(karte2.farbe)) ...... //usw. usf.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
hille

Registriert seit: 19. Mär 2006
100 Beiträge
 
#5

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 18:02
Danke,
aber das wird bestimmt richtig viel, bei 32 verschiedenen Karten!

Und record, was heißt das?

Hille
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 18:04
Also, ich weiss ja nicht was du genau vorhast...

Die Elemente eines Aufzählungstyp haben eine Wertigkeit. (So wie die Reihenfolge in der Deklaration)
Aufzählungstypen sind nur für die innere Verarbeitung da. Sie machen deinen Quellcode übersichtlicher. Ausgeben kann man sie nicht, deshalb das konstante Array. Mit Karten[herz] kommt man nun an den Text für das Element herz. Wenn du jetzt mit Mengen arbeiten würdest, dann könntest du mit einer FOR-Schleife die Menge überprüfen. Ist das zu testende Element in der Menge, wird es ausgegeben. Durch die innere Reihenfolge des Typs, wird immer alles genau in dieser Reihenfolge ausgegeben. Beim zusammenstellen der Menge brauchst du dir dann keine Gedanken mehr über die Reihenfolge zumachen. Doppelte Elemente werden dann auch gleich ausgeschlossen bzw. kommen nur einmal vor.

Beispiel...

Delphi-Quellcode:
type TKartenmenge = set of TKarten;
var Karte:TKarten;
begin
  Kartenmenge:=[herz];
  for Karte:=low(TKarten) to high(TKarten) do
    if Karte in Kartenmenge then
      Ausgabe von Karten[Karte]
end;
@DGL-luke:
nix casten! Da nimmt man die Ordinalzahl (Ord-Funktion)
Und ausserdem haben Elemente von Aufzählungstypen schon von sich aus eine Reihenfolge und können über diese miteinander verglichen werden.

MfG
Thorsten
  Mit Zitat antworten Zitat
hille

Registriert seit: 19. Mär 2006
100 Beiträge
 
#7

Re: < und > deklarieren oder sowas

  Alt 19. Jun 2006, 18:06
Danke, damit kann ich schon was anfangen. Ich werde mal ausprobieren ob es so
klappt wie ich es mir vorgestellt habe.

Hille
  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 05: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