[Pascal] gra managerska

0

Siema! Chce napisac gre - manager pilkarki, lecz nie wiem jak mam zrobić tabelę ligową, liste najlepszych strzelców, itd. Prosze o pomoc, jakieś wskazówki, podpowiedzi! Z góry dziękuje! Pozdro

0

To może napisz co WIESZ jak zrobić, albo raczej co masz zrobione i jak te elementy, które wymieniłeś a nie wiesz jak zrobić mają działać. Bo takie info jakie podałeś, to nic nie mówi.

0

Właśnie chodzi o to, że nie mam zrobione nic(jeżeli chodzi o te tabele)! Nie wiiem jak sie do tego zabrać! Każda druzyna ma ileś punktów, i problem polega na tym, aby je posortrować, ale znane mi algorytmy sortujące sortuja tylko liczby i nie wiem jak zrobić aby przy odpowiednich punktach stały nazwy drużyn.

0

ehh jak masz sortwanie np: bąbelkowe to sortujesz według punktów wiec.... albo lepiej to napisze

Type TDruzyna=record
          Nazwa:string;
          Punkty:integer;
       end;
var D:array [1..42] od TDruzyna;
     i,j:integer;
     Tmp:TDruzyna;

begin
  for i:=1 to 42 do
    for j:=1 to 42-i do // to nie wiem, czy do tyle ma byc robione ;]
    if D[j].Punkty<D[j+1].Punkty then
    begin
      Tmp:=D[j];
      D[j]:=D[j+1];
      D[j+1]:=Tmp;
    end;
end.

No i powinno być juz posortowane (jeśli sie nie pomylilem w czyms ale ogólną idee rozwiązania juz masz)

0

A jak masz te tabele zrobione? Może rozważ wykorzystanie jakiejś bazy danych, albo coś. Wtedy ze wszelkimi dziwnymi sortowaniami się nie będziesz musiał bawić. Albo zrób to jakoś z grubsza tak:
Drużyny przedstawione są za pomocą jednowymiarowej tablicy zawierające rekordy typu TDrużyna. Typ TDrużyna może wyglądać tak:

type TDruzyna=record
  Nazwa: String;
  Punkty: Integer;
  {Jakieś tam jeszcze inne potrzebne Ci dane o tej drużynce}
  end;

No i sortujesz to zgrubsza tak:

var Druzyny: Array of TDruzyna; //Zakładam, że przed wywołaniem tej procedury ta tablica będzie miała swój odpowiedni rozmiar i wstawione dane, inaczej może się wykrzaczać.
Procedure Sortuj;
var
  DruzynaTMP: TDruzyna;
  I, J: Integer;
begin
//Zastosuję tu powiedzmy sortowanie bąbelkowe, najprostszy wariant, bo to nie chodzi o super wydajną metodę sortowania tylko o pokazanie idei sortowania całych rekordów.
For I:=Length(Druzyny)-2 downto 0 do begin
  For J:=0 to I do begin
    If Druzyny[J].Punkty<Druzyny[J+1].Punkty then begin //Sortowanie malejące, zamień < na > a będzie rosnące
      DruzynaTMP:=Druzyny[J];
      Druzyny[J]:=Druzyny[J+1];
      Druzyny[J+1]:=DruzynaTMP;
      end;
    end;
  end;
end;

I tyle. Pisane z pamięci, więc jak coś nie działa, to daj znać.

0

Wielkie dzięki LukaStrz [!!!] Dokładnie o to mi chodziło :) Dziękuje za konkretną odpowiedź! [browar]
Pozdro [green]

Dzięki, bardzo mi pomogliście! Fajne z was chłopaki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1