asmodeus94

tworzenieGrup

Jan 6th, 2013
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.39 KB | None | 0 0
  1. program los;
  2. uses crt,dos;
  3. type
  4. rekordziki = record
  5. nazwa : string;
  6. zKim : char;
  7. end;
  8. type
  9. rekordziki2 = record
  10. nazwa : string;
  11. grupa : char;
  12. ileGra : byte;
  13. end;
  14. var
  15. t : text;
  16. linia,abcW,abc : string;
  17. ilUcz,losG,i,jestP,ileMaByc,bylo,jest,ileJest,grOst,skNa,x1,x2 : byte;
  18. gr : char;
  19. gracz : array [1..100] of rekordziki;
  20. graczG : array [1..100] of rekordziki2;
  21. begin clrscr;
  22. if fSearch('gracze.txt','') = '' then begin
  23.    assign(t,'gracze.txt');
  24.    rewrite(t);
  25.    close(t);
  26.    writeln('Wklej do pliku gracze.txt liste graczy (jeden nick na jedna linijke)');readkey;
  27. end;
  28. assign(t,'gracze.txt');
  29. reset(t);
  30. ilUcz:=0;
  31. REPEAT
  32. readln(t,linia);
  33. if linia<>'' then begin ilUcz:=ilUcz+1;gracz[ilUcz].nazwa:=linia;end;
  34. UNTIL eof(t);
  35. close(t);
  36. write('Ile osob maja miec grupy? Wpisz: ');REPEAT readln(ileMaByc);UNTIL ileMaByc mod 2=0;
  37. if ilUcz<ileMaByc then begin
  38.    write('Liczba graczy nie pozwala na stworzenie ani jednej druzyny!');delay(2000);halt;
  39. end;
  40. abcW:='ABCDEFGHIJKLMNOPRSTUVWXYZabcedfghijklmnoprstuvwxyz';
  41. for i:=1 to ilUcz do begin abc[i]:=abcW[i];gracz[i].zKim:='!';end;
  42. randomize;
  43. jestP:=0;i:=1;
  44. assign(t,'pods.txt');
  45. rewrite(t);
  46. jestP:=0;
  47. ileJest:=0;
  48. REPEAT
  49. bylo:=0;jestP:=jestP+1;
  50. gr:=abc[jestP];
  51. if jestP>1 then writeln(t,'###################');
  52. writeln(t,'GRUPA ',gr);
  53.    REPEAT
  54.    jest:=0;
  55.          REPEAT
  56.                losG:=random(ilUcz)+1;
  57.                if gracz[losG].zKim='!' then begin
  58.                   gracz[losG].zKim:=gr;jest:=1;bylo:=bylo+1;ileJest:=ileJest+1;
  59.                   graczG[ileJest].nazwa:=gracz[losG].nazwa;
  60.                   graczG[ileJest].grupa:=gracz[losG].zKim;
  61.                   writeln(t,graczG[ileJest].nazwa);
  62.                end;
  63.          UNTIL jest=1;
  64.    UNTIL bylo=ileMaByc;
  65. UNTIL jestP = ilUcz div ileMaByc;
  66. grOst:=0;
  67. if ilUcz mod ileMaByc <>0 then begin
  68. writeln(t,'###################');
  69. writeln(t,'GRUPA ',abc[(ilUcz div ileMaByc)+1]);
  70.    for i:=1 to ilUcz do begin
  71.        if gracz[i].zKim='!' then begin
  72.           ileJest:=ileJest+1;grOst:=grOst+1;skNa:=ileJest-grOst+1;graczG[ileJest].nazwa:=gracz[i].nazwa;graczG[ileJest].grupa:=gracz[i].zKim;
  73.           writeln(t,graczG[ileJest].nazwa);
  74.        end;
  75.    end;
  76.    writeln(t,'@@@@@@@@@@@@@@@@@@');
  77.    close(t);
  78. end;
  79. i:=0;
  80. append(t);
  81. writeln(t,'Losowania meczy:');
  82. REPEAT
  83. if i>0 then writeln(t,'###################');
  84. writeln(t,'GRUPA ',abc[i+1]);
  85.       for x1:=1+i*ileMabyc to ileMaByc*i+ileMaByc do begin
  86.           for x2:=1+i*ileMabyc to ileMaByc*i+ileMaByc do begin
  87.               if (x1<>x2)AND(graczG[x1].ileGra<ileMaByc-1)AND(graczG[x2].ileGra<ileMaByc-1) then begin
  88.                  graczG[x1].ileGra:=graczG[x1].ileGra+1;
  89.                  graczG[x2].ileGra:=graczG[x2].ileGra+1;
  90.                  writeln(t,graczG[x1].nazwa,' VS ',graczG[x2].nazwa);
  91.               end;
  92.           end;
  93.       end;
  94. i:=i+1;
  95. UNTIL i = ilUcz div ileMaByc;
  96. close(t);
  97. if ilUcz mod ileMaByc <>0 then begin
  98. append(t);
  99. writeln(t,'GRUPA ',abc[i+1]);
  100.       for x1:=skNa to skNa+grOst do begin
  101.           for x2:=skNa to skNa+grOst do begin
  102.               if (x1<>x2)AND(graczG[x1].ileGra<grOst-1)AND(graczG[x2].ileGra<grOst-1) then begin
  103.                  graczG[x1].ileGra:=graczG[x1].ileGra+1;
  104.                  graczG[x2].ileGra:=graczG[x2].ileGra+1;
  105.                  writeln(t,graczG[x1].nazwa,' VS ',graczG[x2].nazwa);
  106.               end;
  107.           end;
  108.       end;
  109. close(t);
  110. end;
  111. end.
Advertisement
Add Comment
Please, Sign In to add comment