java - Explain this part of code, poker deck class -


i trying learn how make poker game, searched around websites poker projects.

this deck class found.

this part of code make no sense me.

   int index_1, index_2;       (int = 0; < 100; i++) {          index_1 = generator.nextint(cards.size() - 1);          index_2 = generator.nextint(cards.size() - 1);            temp = cards.get(index_2);          cards.set(index_2, cards.get(index_1));          cards.set(index_1, temp);      }  } 

looks random shuffle of deck, picks 2 card positions @ random. nextint(cards.size() - 1) generate random index in [0,cards.size() - 1) range:

index_1 = generator.nextint(cards.size() - 1); index_2 = generator.nextint(cards.size() - 1); 

swap 2 cards, since have replace 1 of cards first , don't want lose object, code uses temp hold first card replaced, cards.get(index_2) obtain first card object.

temp = cards.get(index_2); 

the first set replace object in index_2 object index_1 , second set replace object in index_1 temporary object stored earlier:

cards.set(index_2, cards.get(index_1)); cards.set(index_1, temp); 

it procedure 100 times:

for (int = 0; < 100; i++) 

if assume cards.size() - 1 index of last card in deck, nextint call skip last card though, hard know if intentional without more context.


Comments