Avatar billede poull Nybegynder
04. februar 2002 - 12:35 Der er 3 kommentarer og
1 løsning

Optimering af function

Jeg har denne funktion som virker, men jeg har på fornemmelsen at den kan laves på en smart måde: Noget med xor eller sådan noget og fylder kun en linie men hvordan

function SkiftPind(FraPind, TilPind: Byte): Byte;
begin
  if (FraPind  = 1) and (TilPind = 2) then
    Result := 3;
  if (FraPind  = 1) and (TilPind = 3) then
    Result := 2;
  if (FraPind  = 2) and (TilPind = 1) then
    Result := 3;
  if (FraPind  = 2) and (TilPind = 3) then
    Result := 1;
  if (FraPind  = 3) and (TilPind = 1) then
    Result := 2;
  if (FraPind  = 3) and (TilPind = 2) then
    Result := 1;
end;
Avatar billede erikjacobsen Ekspert
04. februar 2002 - 12:43 #1
Result:=6-FraPind-TilPind;
Avatar billede poull Nybegynder
04. februar 2002 - 13:08 #2
Nu føler jeg mig lidt dum når det var så simpelt, men tak alligevel (hvordan kom du på den løsning ? )
Avatar billede erikjacobsen Ekspert
04. februar 2002 - 14:22 #3
Mange års erfaring i programmering af og undervisning i
Hanois tårne. Men ellers kan man jo se det i dit program:
alle 3 tal i hver af dine if-er summerer jo til 6.
Avatar billede poull Nybegynder
04. februar 2002 - 14:35 #4
Det er netop til hanois tårn :) og det virker faktisk. Det er overraskende simpelt at lave. Tja det med at alle mine if-er summer til 6 havde jeg ikke lige tænkt, men sådan er der sikkert nole huller når man er autodidakt (eller hvordan det nu staves)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester