Ejemplo n.º 1
0
 static string Rule4(CircularList <string> elves, int rightMoves)
 {
     //Alltid fjern den siste stolen i listen.
     while (elves.Count > 1)
     {
         elves.MoveRight(rightMoves);
         elves.DeleteLast();
     }
     return(elves.Head.data);
 }
Ejemplo n.º 2
0
        static string Rule2(CircularList <string> elves, int rightMoves)
        {
            //Begynn med å fjerne stolen på plass 0, deretter på plass 1, og oppover,
            //frem til man når antall stoler(som fortsatt er i spill), deretter begynner man på første stol igjen.
            int toRemove = 0;

            while (elves.Count > 1)
            {
                elves.MoveRight(rightMoves);
                elves.DeleteAt(toRemove);
                toRemove = (++toRemove % elves.Count);
            }
            return(elves.Head.data);
        }
Ejemplo n.º 3
0
 static string Rule3(CircularList <string> elves, int rightMoves)
 {
     //Fjern den midterste stolen. Dersom antall stoler er partall, fjernes de to stolene
     //som er i midten, frem til det er 2 stoler igjen, da fjernes den første stolen.
     while (elves.Count > 2)
     {
         elves.MoveRight(rightMoves);
         var toRemove = elves.Count / 2;
         elves.DeleteAt(toRemove);
         if ((elves.Count % 2) == 1)
         {
             elves.DeleteAt(toRemove);
         }
     }
     elves.MoveRight(rightMoves);
     return(elves.Head.next.data);
 }