Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. void ranking(int alternativa, jogador *atual, int pontos){
  2.  
  3. FILE *fp;
  4. int nbytes, nplayers, cont;
  5. jogador *rank;
  6.  
  7. atual.pontuacao=pontos;
  8.  
  9. switch(alternativa){
  10. case 1:
  11. fp = fopen("rankrock.bin","wb+");
  12. if(fp == NULL) {
  13. printf("\nRanking vazio\n\n");
  14. assert(1);
  15. }
  16. nbytes=ftell(fp);
  17. if(nbytes == 0){
  18. fwrite(atual.id, sizeof(char)*21, 1, fp);
  19. fwrite(&pontos, sizeof(int), 1, fp);
  20. }
  21. else
  22. nplayers = nbytes/sizeof(jogador);
  23. rank=(jogador *)malloc((nplayers+1)*(sizeof(jogador)));
  24.  
  25. if(rank==NULL){
  26. printf("Erro, falta de memoria\n");
  27. assert(1);
  28. }
  29. rank[0]=atual;
  30. for(cont=1;cont<(nplayers+1);cont++){
  31. fread(rank[cont].id,sizeof(char)*21, 1, fp);
  32. fread(&rank[cont].pontuacao,sizeof(int),1,fp);
  33. }
  34. bubblesort(rank);
  35. for(cont=0;cont<10;cont++){
  36. fwrite(rank[cont].id, sizeof(char)*21, 1, fp);
  37. fwrite(&rank[cont].pontuacao, sizeof(int), 1, fp);
  38. }
  39. fclose(fp);
  40. free(rank);
  41. break;
  42. case 2:
  43. fp = fopen("rankfunk.bin","wb+");
  44. if(fp == NULL) {
  45. printf("\nRanking vazio\n\n");
  46. assert(1);
  47. }
  48. nbytes=ftell(fp);
  49. if(nbytes == 0){
  50. fwrite(atual.id, sizeof(char)*21, 1, fp);
  51. fwrite(&pontos, sizeof(int), 1, fp);
  52. }
  53. else
  54. nplayers = nbytes/sizeof(jogador);
  55. rank=(jogador *)malloc((nplayers+1)*(sizeof(jogador)));
  56.  
  57. if(rank==NULL){
  58. printf("Erro, falta de memoria\n");
  59. assert(1);
  60. }
  61. rank[0]=atual;
  62. for(cont=1;cont<(nplayers+1);cont++){
  63. fread(rank[cont].id,sizeof(char)*21, 1, fp);
  64. fread(&rank[cont].pontuacao,sizeof(int),1,fp);
  65. }
  66. bubblesort(rank);
  67. for(cont=0;cont<10;cont++){
  68. fwrite(rank[cont].id, sizeof(char)*21, 1, fp);
  69. fwrite(&rank[cont].pontuacao, sizeof(int), 1, fp);
  70. }
  71. fclose(fp);
  72. free(rank);
  73. break;
  74. case 3:
  75. fp = fopen("rankMPB.bin","wb+");
  76. if(fp == NULL) {
  77. printf("\nRanking vazio\n\n");
  78. assert(1);
  79. }
  80. nbytes=ftell(fp);
  81. if(nbytes == 0){
  82. fwrite(atual.id, sizeof(char)*21, 1, fp);
  83. fwrite(&pontos, sizeof(int), 1, fp);
  84. }
  85. else
  86. nplayers = nbytes/sizeof(jogador);
  87. rank=(jogador *)malloc((nplayers+1)*(sizeof(jogador)));
  88.  
  89. if(rank==NULL){
  90. printf("Erro, falta de memoria\n");
  91. assert(1);
  92. }
  93. rank[0]=atual;
  94. for(cont=1;cont<(nplayers+1);cont++){
  95. fread(rank[cont].id,sizeof(char)*21, 1, fp);
  96. fread(&rank[cont].pontuacao,sizeof(int),1,fp);
  97. }
  98. bubblesort(rank);
  99. for(cont=0;cont<10;cont++){
  100. fwrite(rank[cont].id, sizeof(char)*21, 1, fp);
  101. fwrite(&rank[cont].pontuacao, sizeof(int), 1, fp);
  102. }
  103. fclose(fp);
  104. free(rank);
  105. break;
  106. case 4:
  107. fp = fopen("rankPOP.bin","wb+");
  108. if(fp == NULL) {
  109. printf("\nRanking vazio\n\n");
  110. assert(1);
  111. }
  112. nbytes=ftell(fp);
  113. if(nbytes == 0){
  114. fwrite(atual.id, sizeof(char)*21, 1, fp);
  115. fwrite(&pontos, sizeof(int), 1, fp);
  116. }
  117. else
  118. nplayers = nbytes/sizeof(jogador);
  119. rank=(jogador *)malloc((nplayers+1)*(sizeof(jogador)));
  120.  
  121. if(rank==NULL){
  122. printf("Erro, falta de memoria\n");
  123. assert(1);
  124. }
  125. rank[0]=atual;
  126. for(cont=1;cont<(nplayers+1);cont++){
  127. fread(rank[cont].id,sizeof(char)*21, 1, fp);
  128. fread(&rank[cont].pontuacao,sizeof(int),1,fp);
  129. }
  130. bubblesort(rank);
  131. for(cont=0;cont<10;cont++){
  132. fwrite(rank[cont].id, sizeof(char)*21, 1, fp);
  133. fwrite(&rank[cont].pontuacao, sizeof(int), 1, fp);
  134. }
  135. fclose(fp);
  136. free(rank);
  137. break;
  138. }
  139. fp = fopen("rankgeral.bin","wb+");
  140. if(fp == NULL) {
  141. printf("\nRanking vazio\n\n");
  142. assert(1);
  143. }
  144. nbytes=ftell(fp);
  145. if(nbytes == 0){
  146. fwrite(atual.id, sizeof(char)*21, 1, fp);
  147. fwrite(&pontos, sizeof(int), 1, fp);
  148. }
  149. else
  150. nplayers = nbytes/sizeof(jogador);
  151. rank=(jogador *)malloc((nplayers+1)*(sizeof(jogador)));
  152.  
  153. if(rank==NULL){
  154. printf("Erro, falta de memoria\n");
  155. assert(1);
  156. }
  157. rank[0]=atual;
  158. for(cont=1;cont<(nplayers+1);cont++){
  159. fread(rank[cont].id,sizeof(char)*21, 1, fp);
  160. fread(&rank[cont].pontuacao,sizeof(int),1,fp);
  161. }
  162. bubblesort(rank);
  163. for(cont=0;cont<10;cont++){
  164. fwrite(rank[cont].id, sizeof(char)*21, 1, fp);
  165. fwrite(&rank[cont].pontuacao, sizeof(int), 1, fp);
  166. }
  167. fclose(fp);
  168. free(rank);
  169.  
  170. limpatela();
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement