01/10/2018, 10:16

Bài toán mã chạy nhông

Chào anh em, tên bài toán này là do mình đặt ra. Mình có làm một file gồm 1 bàn cờ và một con mã kèm theo phương thức di chuyển. Muốn con mã đến ô này chỉ cần set $scope.vitri.i và vị trí $scope.vitri.j như trong link đính kèm.

horse run random

Nhờ các anh chị cao thủ cho xin chút code để cho con mã nó chạy tí. Đầu tiên mình muốn cho nó chạy liên tu bất tận trên bàn cờ có được không các bạn?
Cám ơn nhiều.
Mong hồi âm

Thuc Nguyen Tan viết 12:32 ngày 01/10/2018

Đầu tiên mình muốn con mã chạy qua chạy lại theo horizontal direction được không các bạn?

Thuc Nguyen Tan viết 12:16 ngày 01/10/2018
  1. Mình muốn con mã chạy đúng luật của nó
    3.Mình muốn con mã chạy tới ô mình chọn không cần biết bao nhiêu nước đi
    4.Mình muốn con mã tìm cách chạy tới ô mình chọn với nước đi ngắn nhất.

hix, muốn nhiều quá phải không các bạn?

Có lẽ chạy qua chạy lại là dễ nhất.!!! làm sao đây???

Dark.Hades viết 12:24 ngày 01/10/2018

tính đường ngắn nhất theo bài này sẽ cho nó đi theo hình chữ L
tính 2 điểm xy tại chỗ góc vuông quẹo là được

*grab popcorn* viết 12:18 ngày 01/10/2018
  1. Tìm đường ngắn nhất dùng giải thuật A* (Hoặc Dijkstra cũng được )
  2. Cho nó chạy lung tung là cho 4 cái hàm vào mảng var move = [up, left, right, down];
    Sau đó cho 1 vòng while vô tận, mỗi lần lặp sẽ random 1 số từ 0 -> 3 rồi gọi move[random]();
    Mã giã
movement = [up, left, right, down];
while(1) {
 index = parseInt(Math.random() * 4);
 movement[index]();
}

3. Cho nó chạy tới ô của mình thì như (2) nhưng nếu nó gặp ô của mfinh thì dừng vòng while lại :3

Thuc Nguyen Tan viết 12:22 ngày 01/10/2018

Có khi nào nó nhảy ra khỏi bàn cờ không nhỉ?

*grab popcorn* viết 12:24 ngày 01/10/2018

Cái đó mình thấy bạn check trong 4 hàm kia rồi nên ko có đâu :>

Thuc Nguyen Tan viết 12:29 ngày 01/10/2018

okay, làm cái
function valid(i,j){
}
khi tăng giảm là ok, để mình code thử rồi bạn xem thành quả nhé:
Mình có đến 1 loạt cái muốn lận

  1. horse_run_random_not_rule (Cái này của bạn)

Xem thử thôi nhé, chưa xong, mới demo cai timer, xem cũng có duyên lém
horse run random not rule

     	$interval(function(){
		if($scope.vitri.i<8){
			$scope.vitri.i++;
		}else{
			$scope.vitri.i=1;
		}
	}, 1000); 

1.1 Chạy vòng theo đường biên bàn cờ.
2. horse_run_random_in_rule (Tức là chạy theo ô chữ nhật 1x2)
3. horse_run_to_my_point_no_need_optimized
4. horse_run_to_my_point_in_short_way.

Thuc Nguyen Tan viết 12:25 ngày 01/10/2018

hix, cuối cùng thì bài toán con mã chạy nhông cũng hoàn thành, beautyfull, I lik it…

pls see the link

horse run random in rule

thank your idea, grab popcorn
thks to html, jQuery and angular make me describe the passion!!!

any discustion???

có ai xen tay áo làm cái dijtra thử? my file is easy inject your code, function move and mouse is implemetation , make it run every where…

Bài liên quan
0