Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. private boolean checkWinDiagonalLeftToRight(int row, int col) {
  2.  
  3. // giá trị hàng bắt đầu xét
  4. int rowStart = row - 4;
  5. // giá trị cột cuối cùng xét
  6. int rowEnd = row + 4;
  7. // giá trị cột bắt đầu xét
  8. int colStart = col - 4;
  9. // giá trị cột cuối cùng xét
  10. int colEnd = col + 4;
  11. // lấy giá trị của ô vừa đánh trong ma trận
  12. int value = this.MatrixPlay[row][col];
  13. // tạo biến đếm để đếm số giá trị liên tiếp giống nhau
  14. int count = 0;
  15. // lặp khi cột và hàng vẫn nằm trong ma trận
  16. while (rowStart <= rowEnd && rowStart < sizeRow && colStart <= colEnd && colStart < sizeCol) {
  17. // kiểm tra giá trị hàng và cột nằm trong bàn cờ
  18. if (rowStart >= 0 && colStart >= 0) {
  19. //kiểm tra trùng với giá trị của ô truyền vào.
  20. if (this.MatrixPlay[rowStart][colStart] == value) {
  21. //Tăng biến đếm lên 1.
  22. count++;
  23. } else {
  24. // không trùng set biến đếm về 0
  25. count = 0;
  26. }
  27. }
  28. // kiểm tra 5 quân liên tiếp giống nhau
  29. if (count == 5) {
  30. System.out.println("thắng chéo phải trái");
  31. // trả về giá trị true.
  32. return true;
  33. }
  34. // tăng hàng lên 1
  35. rowStart++;
  36. // giảm cột đi 1
  37. colStart++;
  38. }
  39. return false;
  40. }
  41. /**
  42. * Hàm kiểm tra 5 nước đi theo chiều chéo từ phải sang trái
  43. * @param row giá trị hàng của ô vừa đánh trong ma trận đánh
  44. * @param col giá trị cột của ô vừa đánh trong ma trận đánh
  45. * @return giá trị boolean kết quả
  46. */
  47. private boolean checkWinDiagonalRightToLeft(int row, int col) {
  48.  
  49. // giá trị hàng bắt đầu xét
  50. int rowStart = row - 4;
  51. // giá trị cột cuối cùng xét
  52. int rowEnd = row + 4;
  53. // giá trị cột bắt đầu xét
  54. int colStart = col + 4;
  55. // giá trị cột cuối cùng xét
  56. int colEnd = col - 4;
  57. // lấy giá trị của ô vừa đánh trong ma trận
  58. int value = this.MatrixPlay[row][col];
  59. // tạo biến đếm để đếm số giá trị liên tiếp giống nhau
  60. int count = 0;
  61. // lặp khi cột và hàng vẫn nằm trong ma trận
  62. while (rowStart <= rowEnd && colStart >= colEnd) {
  63. // kiểm tra giá trị hàng và cột nằm trong bàn cờ
  64. if (rowStart >= 0 && colEnd >= 0 && colStart < sizeCol && rowEnd < sizeRow) {
  65. //kiểm tra trùng với giá trị của ô truyền vào.
  66. if (this.MatrixPlay[rowStart][colStart] == value) {
  67. //Tăng biến đếm lên 1.
  68. count++;
  69. } else {
  70. // không trùng set biến đếm về 0
  71. count = 0;
  72. }
  73. }
  74. // kiểm tra 5 quân liên tiếp giống nhau
  75. if (count == 5) {
  76. System.out.println("thắng chéo phải trái");
  77. // trả về giá trị true.
  78. return true;
  79. }
  80. // tăng hàng lên 1
  81. rowStart++;
  82. // giảm cột đi 1
  83. colStart--;
  84. }
  85. // trả về giá trị false
  86. return false;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement