Cài này còn tùy. Thường thì biến dạng Location sẽ là biến dùng tạm thời nên đa phần ko dùng array. Chỉ tùy 1 số trường hợp như mình muốn giữ cái Casting Point từ lúc bắt đầu cast và kéo dài suốt quá trình hoạt động của spell thì mới dùng array cho Location đó thôi.
Về cái Integer B + 1 hay -1 các kiểu kia thì có thể xem giải thích của a Tom:
Hoặc mọi người có thể dùng cách này, cơ chế như để dùng random Hero vậy.
Trên là cách của Tom, mọi người có thể hình dung là 1 chồng đĩa CD để đứng, nếu ta rút 1 cái ra thì những đĩa CD ở trên sẽ đè lắp lên tiếp khoảng trống đó và số lượng giảm đi 1.
Vậy giờ là cách khác, hình dung ta cũng rút 1 cái ra, khi đó sẽ có 1 khoảng trống, ta lấy đĩa ở trên cùng lắp vào khoảng trống đó.
Minh họa :
Cách của Tom
Mã:
1 2 3 4 5 6 7 với index là 7
Slide thứ 4 hoàn thành xong, tiến hành đẩy lùi dữ liệu
Mã:
1 2 3 5 6 7 [B][SIZE=4][COLOR="#008000"]7[/COLOR][/SIZE][/B] với index là 6
Cách Swap
Mã:
1 2 3 4 5 6 7 với index là 7
Slide thứ 4 hoàn thành xong, tiến hành swap (hoán đổi) dữ liệu
Mã:
1 2 3 [B][COLOR="#008000"][SIZE=4]7[/SIZE][/COLOR][/B] 5 6 [B][COLOR="#008000"][SIZE=4]4[/SIZE][/COLOR][/B] với index là 6
Ưu điểm :
Giảm chi phí xử lí cho CPU của bạn

Thực tế thì không đáng là bao nhưng lí thuyết thì bạn cứ hình dung giả sử có 8000 slide, và slide 1 hoàn thành, vậy sẽ tốn 7999 xử lí để thực hiện việc đẩy lùi dữ liệu...rồi slide 2 hoàn thành, lại phải tốn thêm 7xxx xử lí để thực hiện tiếp công việc đẩy lùi dữ liệu.
Vậy ta dùng cách Swap thì sao ?
Ta thấy rõ bất kể sao đi nữa thì chỉ 1 thao tác xử lí Swap là mọi chuyện xong
Hi vọng bài post này sẽ có ích cho các bạn :-*