Seite 1 von 1

Algorithmus für Inteligente wiedergabe ;)

Verfasst: 15.07.2014 21:03
von True29
Hi ,
ich suche einen Algo für meinen wiedergabe im player ;)
Es gibt eine Liste in welcher jeder song eine bewertung/Likes von 0 - unendlich (wird vielleicht begrenzt) haben kann.
nun soll der Player mit dem Song anfangen welcher die beste bewertung/likes hat und dann den nächsten nehmen später soll hier auch eine zufallsfunktion sein.

Hier mal ein anfang / grundgedanke von mir.

Code: Alles auswählen

  Protected.i HighestLikeValue,NewValueFound,SongID
  Repeat 
      
      ;Get highest likevalue not played
      ForEach Music()     
        
        NewValueFound = #False
        If music()\Likes > HighestLikeValue And Music()\Played = #False
          HighestLikeValue = music()\Likes
          NewValueFound = #True
          SongID = ListIndex(music())
        EndIf     
        
      Next

   Until NewValueFound = #False
Der Code würde nun die liste durchgehen , falls höherer eintrag neu starten , falls nicht beenden.
und den höchsten eintrag speichern.

Bin für Ideen offen ;)
Grüße

Re: Algorithmus für Inteligente wiedergabe ;)

Verfasst: 15.07.2014 21:52
von NicTheQuick
Dafür nimmt man einen PriorityHeap oder eher bekannt als Min-Max-Heap. Siehe Wikipedia. :-)

Re: Algorithmus für Inteligente wiedergabe ;)

Verfasst: 15.07.2014 23:42
von True29
danke ich schau mal ;)

Re: Algorithmus für Inteligente wiedergabe ;)

Verfasst: 15.07.2014 23:54
von STARGÅTE
Reicht da nicht ein einfaches SortStructureList nach den Likes ?

Re: Algorithmus für Inteligente wiedergabe ;)

Verfasst: 16.07.2014 00:02
von NicTheQuick
Doch klar. Das geht auch. In dem Fall sicherlich ausreichend, da ja nicht sekündlich oder häufiger neue Lieder mit neues Likes in die Liste kommen. Mit einem Min-Max-Heap hat man eben immer die Sortierung, auch wenn man mal ein neues Lied einfügt.