Facebook
From me, 5 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 225
  1. void changePuzzles(struct Field player_puzzles[PLAYER_PUZZLES_NUMBER], char which_char[PLAYER_PUZZLES_NUMBER], struct Letter game_puzzles[GAME_CHARACTERS_NUMBER]) {
  2.  
  3.         int k; // position of player puzzle to change
  4.         int r; // possition of random puzzle in GAME_PUZZLES
  5.         int which_letter; // possition of returned letter in game_puzzles
  6.        
  7.  
  8.         for (int i = 0; i < PLAYER_PUZZLES_NUMBER; i++) {
  9.                 k = (which_char[i] - 49);
  10.  
  11.  
  12.                 if (k >= 0 && k < 7) {
  13.  
  14.                         //taking returning letter possition
  15.                         if (PLAYER_PUZZLES_CREATED) {
  16.                                 which_letter = int(player_puzzles[k].letter->sign - 65);
  17.                         }
  18.  
  19.                         //draw
  20.                         do {
  21.                                 r = rand() % (GAME_CHARACTERS_NUMBER);
  22.                                 if (game_puzzles[r].number > 0) {
  23.                                         player_puzzles[k].letter = &game_puzzles[r];
  24.                                         player_puzzles[k].color = LIGHTMAGENTA;
  25.         ;                               game_puzzles[r].number -= 1;
  26.                                        
  27.                                         r = -1;
  28.                                 }
  29.  
  30.                         } while (r != -1);
  31.  
  32.                         //returning
  33.                         if (PLAYER_PUZZLES_CREATED) {
  34.                                 game_puzzles[which_letter].number += 1;
  35.                         }
  36.                        
  37.                 }
  38.                
  39.         }
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.                 //                                      ###### changing puzzles #######
  49.  
  50.                 else if (zn == 'w') {
  51.                         for ( int i = 0; i < PLAYER_PUZZLES_NUMBER; i++) {
  52.                                 which_change[i] = NULL;
  53.                         }
  54.                         counter_limit_change = 0;
  55.  
  56.                         do {
  57.  
  58.                                 //LIMIT CHANGE WARNING
  59.                                 if (ALL_PUZZLES_NUMBER < 7) {
  60.                                         sprintf(message, " YOU CAN ONLY CHANGE : ");
  61.                                         gotoxy(PLAYER_PUZZLES_X, PLAYER_PUZZLES_Y + 6);
  62.                                         clreol();
  63.                                         cputs(message);
  64.                                         gotoxy(PLAYER_PUZZLES_X + 25, PLAYER_PUZZLES_Y + 6);
  65.                                         putch(char(ALL_PUZZLES_NUMBER + 48));
  66.                                 }
  67.                                
  68.                                 which_buff = getch();
  69.  
  70.                                 k = int(which_buff - 49);
  71.                                 if (k >= 0 && k < 7) {
  72.                                         if ((Player_Puzzles[k].color == LIGHTMAGENTA) && (which_change[k] == NULL)) {
  73.                                                 counter_limit_change++;
  74.                                                 if ((ALL_PUZZLES_NUMBER - counter_limit_change) != -1) {
  75.                                                         Player_Puzzles[k].color = LIGHTGRAY;
  76.                                                         which_change[k] = which_buff;
  77.                                                 }
  78.                                                 else counter_limit_change--;
  79.                                         }
  80.  
  81.                                         else {
  82.                                                 Player_Puzzles[k].color = LIGHTMAGENTA;
  83.                                                 which_change[k] = NULL;
  84.                                                 counter_limit_change--;
  85.                                         }
  86.  
  87.                                         printPlayerPuzzles(PLAYER_PUZZLES_X, PLAYER_PUZZLES_Y, Player_Puzzles);
  88.                                 }
  89.  
  90.                         } while (which_buff != 'w' && which_buff != 0x0d);
  91.  
  92.                                         changePuzzles(Player_Puzzles, which_change, Game_Puzzles);
  93.                 }