Luyện cờ tướng bằng Excel VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

dohuuthuc

Thành viên thường trực
Tham gia
18/8/08
Bài viết
201
Được thích
524
Trên bàn cờ , em tự đi quân cho 2 bên ví dụ được 42 nước , tới giờ đi làm , tạm ngưng lại , lưu file với tên ván 1.xls chẳng hạn để mai chơi tiếp . ngày hôm sau vào lại từ đầu ván , chỉ cần nhấn 1 nút ,thì tự động tái hiện lại từ nước đi thứ nhất cho đến nước thứ 42.
Vậy nhờ các bạn viết giúp cho đoạn code sẽ tái hiện lại những nước đi như trên.


P/s : Mỗi ván cờ sẽ là những nước đi hoàn toàn khác nhau , thiên biến vạn hoá y như quy luật của cờ tướng.

Sao file chỉ có 32kb gởi lên bị báo lỗi upload erro
 
- Ghi lại mỗi nước đi (nhấn Ctrl + T, kể cả động tác ăn quân), không muốn ghi thì thôi.
Đoạn này có thể dùng timer để cập nhật được không bác. Có lẽ cũng sẽ hơi chiếm tài nguyên một tí nhưng em thấy Ctrl + T thì hơi bất tiện.
 
Upvote 0
Đoạn này có thể dùng timer để cập nhật được không bác
Vấn đề là gán vô sự kiện nào, vì các sự kiện trong worksheet không có cái nào bắt được sự thay đổi của shapes.
Còn nếu dùng 1 button, thì không phải hơi chiếm tài nguyên một tí , mà là nhiều vô số tí, vì code sẽ phải chạy liên tục trong suốt ván cờ. Mà 1 ván cờ ít nhất là 1/2 giờ!!!
 
Upvote 0
Các bạn ơi ! nút chọn chỉ tạo sau khi đoạn code tái hiện xong , em ví dụ ván cờ hai bên đi được 100 nước ( thật ra thì cỡ 60,70 nước là đã phân bại thắng thua rồi : biên bản nằm ở sheet khác) , lúc này công dụng của các nút chọn tới, lui là chỉ tái hiện trong khoảng 100 nước đã qua mà thôi , hổng lẽ cứ mỗi lần lại bấm CTR+T .
Cái chiếm đất của bác Bình , chính là chỗ sau này khi đăng nhập 2 bên xong ,em và bác cùng giao hữu với nhau online ấy , chứ còn mục tiêu của em là chỉ đạt ở mức độ lưu ván cờ và tái hiện trên máy nhà mà thôi
 
Upvote 0
Cái chiếm đất của bác Bình , chính là chỗ sau này khi đăng nhập 2 bên xong ,em và bác cùng giao hữu với nhau online ấy , chứ còn mục tiêu của em là chỉ đạt ở mức độ lưu ván cờ và tái hiện trên máy nhà mà thôi
1. Không biết bạn Thực đã thử trên file của tôi chưa? Dù rằng nó chưa tôt, vì VBA của tôi kém, nhưng đã đạt yêu cầu trên rồi:
- chơi cờ
- lưu ván cờ,
- tái hiện ván cờ từng nước một. (Mục này Không có Ctrl + T)

2. Cái Ctrl +T là để lưu từng nước đi, là biện pháp duy nhất vì theo tôi biết thì nếu không cài đặt thêm những class module ngoài Excel, tôi chưa thấy biện pháp nào có thể lưu vị trí trước và sau khi dịch chuyển quân cờ. Cái nút reverse là càng không thể. Còn cái chiếm dụng tài nguyên của Bình, chắc bạn chưa hiểu, nếu không phải là máy mạnh thì sẽ bị treo máy.

3. Còn như bạn muốn chơi cờ online? Xin mời bạn, dùng chính file hạng ruồi đó, tôi và bạn cùng đấu ngay bây giờ, nếu bạn có cài đặt teamviewer!

Liên hệ YM thanhmy_pham@yahoo.com hoặc skype: ptm0412, hoặc ĐT 0919 77 21 42
 
Lần chỉnh sửa cuối:
Upvote 0
Xin bản bày trận của cờ thế.

Tôi đang định viết thêm tính năng về đấu cờ thế trên file con ruồi, nội dung như sau:
- chọn 1 trong các cuộc cờ thế đã lưu
- đấu cờ theo trận thế đó, lưu lại nếu muốn
- nếu đấu hoài không thắng, thì xem bài giải cách đấu (nếu có)

Nhưng hiện nay tôi không có nguồn tài liệu về các cuộc cờ thế và cách giải. Vậy bạn nào có cho tôi xin.
Ghi chú:
- chỉ cần hình ảnh ban đầu của trận thế
- chỉ cần biên bản bằng text của bài giải (nếu có)
- Xin cả cái tên của trận.

Các bạn có thể post vào topic này hoặc gởi vào mail thanhmypham@gmail.com.
Khi làm xong tôi sẽ gởi lên nhờ các bạn góp ý.

Xin cám ơn trước!
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi anh Ptm0412

Chắc hẳn những người yêu thích cờ tướng trên thế giới đều biết đến trang này, nguồn tài nguyên ở đây tương đối phong phú và đây cũng là nơi luyện cờ tướng online lý tưởng. Để xem được các ván cờ thế yêu cầu máy phải cài đặt Java. Dosnet dẫn luôn tới trang cờ thế anh tham khảo. Chờ đợi thành quả của anh !

-------
Nếu bác nào rảnh thì lập nick, ta tỷ thí tý tẹo !

Vào đây để tải Java free
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Em cám ơn bác Ptm !, sắp tới em sẽ gởi lên ít ván cờ thế ngoài giang hồ , có sẵn lời giải và không. Nhưng em sẽ bày cờ ra sao trên file của bác , chỉ em với.



p/s : Em vẫn mong các cao thủ khác như là bác anhtuan 1066, bác Lệnh Hồ Xung đại hiệp,bác OKoK ,Thầy Phan tư Hướng,Thầy Tuân .... sẽ cho em những đáp án khác hay hơn ,hữu hiệu hơn , tất nhiên là cần phải có thời gian
 
Upvote 0
Cách 1. Trên file của bạn ndu.., bạn sắp quân cờ theo thế trận, để nguyên, lưu lại, bạn gởi cho tôi cho nhẹ.

Cách 2: Dùng file hạng ruồi của tôi thì nặng, nhưng cũng có cách:
- bạn dùng chuột kéo 1 quân cờ vào vị trí, nhấn Ctrl + T
- kéo tiếp những quân cờ khác, mỗi lần kéo đều nhấn Ctrl + T
- sang sheet2, bạn copy 3 cột dữ liệu cuối cùng, post lên đây, tôi sẽ tái tạo thành trận.

- nếu bạn muốn lưu trận thế, thì nhấn nút save game, đặt tên cho nó.

File kèm theo dưới đây bổ sung hộp chứa quân cờ, nhấn nút Reset để dẹp bàn cờ, nút New Game để bày trận cờ mới (cờ bàn). Mục đích để chuẩn bị sẵn cho việc sắp cờ thế sau này.
 
Lần chỉnh sửa cuối:
Upvote 0
Em mới về xong , đọc bài của bác cũng vừa xong . Tạm gởi bác và các bạn ván cờ thế này để tham khảo ( do em lưu từ trước ).
Bên ta có 2xe + 1 tốt nhưng phải cầu hoà.

Gởi lại file này cho bác và các bạn vì ở trên quá nhỏ ( bên ta đi trước )
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Hoàn chỉnh file VBA hạng ruồi như sau:
Gồm 3 phần: tái hiện bàn cờ cũ, chơi bàn cờ mới, chơi cờ thế

Phần 1: tái hiện trận đấu cũ đã lưu:

- Nhấn Reset để sắp cờ

- chọn trận đấu bằng combobox
- nhấn Replay

- nếu muốn xoá trận đấu cũ, chọn trận đấu, nhấn delete game.​

Phần 2: Chơi cờ bàn:

- nhấn New Game để sắp cờ

- dùng chuột kéo quân cờ để đi 1 nước. Nếu ăn quân thì nhấn thêm Ctrl + Q, quân cờ bị ăn sẽ bay zô hộp.

- nếu muốn lưu ván cờ để sau này coi lại, thì sau mỗi nước phải nhấn Ctrl + T. Nếu ăn quân không cần nhấn Ctrl Q nữa.

- Khi kết thúc ván cờ, muốn lưu lại, thì nhấn nút Save Game, đặt tên cho trận đấu, thí dụ như "PtmQuyetDauGiaGan". Combobox của phần 1 tự cập nhật thêm trận đấu mới. (Chọn trận đấu tái hiện lại thử)​
Phần 3: Cờ thế:

- Chơi 1 thế cờ có sẵn: chọn 1 thế cờ bằng combobox, nhấn Reset Game để bàn cờ tự sắp, dùng chuột chơi cờ. Khi ăn quân cũng dùng Ctrl Q

- Sắp cờ 1 thế mới: nhấn New game, (nút New game biến thành Save game), sắp 1 con nhấn Ctrl T 1 cái. Sắp cờ xong nhấn nút Save game, đặt tên cho thế cờ, OK. Combobox sẽ tự cập nhật thêm thế cờ mới.

- Lưu bài giải thế cờ: nhấn nút Rec. Answer, (nó sẽ biến thành Save answer), Dùng chuột chơi cờ, mỗi nước nhấn Ctrl T 1 cái. khi nào xong nhấn nút Save Answer. (khỏi đặt tên, lão ptm đặt tự động)

- Muốn xem bài giải của thế cờ, chọn thế cờ trong combobox, nhấn nút Answer để xem.

- Muốn xoá toàn bộ 1 thế cờ đang chọn trong combobox, nhấn nút Delete game

- Muốn chỉ xoá bài giải của thế cờ đang chọn trong combobox, nhấn nút Delete answer

Khi không chơi nữa, nhấn Finish để dẹp cờ zô hộp.

Xem thêm hướng dẫn bằng nút Help.

Mong nhận được góp ý!
 
Lần chỉnh sửa cuối:
Upvote 0
Lão đại gia cho đệ "đòi hỏi" tí:
Tại sao không đặt cái nút cho mấy cái Ctrl+T, Ctrl+Q luôn đi? Làm thế, chỉ cần một tay cầm chuột là đủ chơi rồi (tay kia mắc bế con)
Thêm nữa: Cái nút Help nó nằm ở chỗ nào?
Thêm miếng nữa: Có thể thay cái vụ nhấn Next khi Replay bằng một cái gì đó Autoplay hông? Và nếu có lòng tốt thì cho thêm cái chỉ định tốc độ Autoplay?
 
Lần chỉnh sửa cuối:
Upvote 0
Tại sao không đặt cái nút cho mấy cái Ctrl+T, Ctrl+Q luôn đi?
Cái khó của excel là
- không có sự kiện nào có sẵn bắt được sự thay đổi của các shapes
- khi vừa nhấn vào 1 cái button, thì excel không còn biết selection là cái gì nữa, nên biết cái shape nào đang chọn đâu mà ghi vị trí?
Có thể thay cái vụ nhấn Next khi Replay bằng một cái gì đó Autoplay hông?
Lảm được, nhưng chọn thời gian là bi nhiêu? Mấy lão già chết tiệt chậm tiêu muốn nghiền ngẫm lâu, còn mấy anh trai trẻ muốn xem cho lẹ. Ngoài ra có nước cờ muốn xem kỹ, có nước cờ chỉ cần xem thoáng qua, không set thời gian bằng nhau được.

Nút Help nằm dưới nút finish đó. Load file mới đi bậu.
 
Lần chỉnh sửa cuối:
Upvote 0
Lảm được, nhưng chọn thời gian là bi nhiêu? Mấy lão già chết tiệt chậm tiêu muốn nghiền ngẫm lâu, còn mấy anh trai trẻ muốn xem cho lẹ. Ngoài ra có nước cờ muốn xem kỹ, có nước cờ chỉ cần xem thoáng qua, không set thời gian bằng nhau được.

Nút Help nằm dưới nút finish đó. Load file mới đi bậu.
Định thời gian, là một Text box hoặc một Combobox, thích nhiu thì gõ vào đó.
Còn cái nút Help, nút Finish, nó ở chỗ mô ? Mở bàn cờ lên thấy có nhiu đây:
000-143.gif
(Thấy mấy con cờ trên máy em đẹp hôn)
 
Upvote 0
Mấy con cờ đẹp là do lão ptm chỉnh sửa lại bên ngoài rìa hình tròn cùng màu, sau đó set transparent trong excel. còn 2 cái nút chết tiệt đó đây:

banco.gif


Giảm zoom còn 85% (đang 100%) sẽ thấy. Với lại, file đang set scroll area vừa đủ nên có thể không cuộn được.
 
Upvote 0
Bổ sung theo góp ý của BNTT: có thể cancel trước khi lưu và trước khi xoá (do bẫy lỗi chưa hết)
Ghi chú: chỉ cần sửa:
- 2 sub SaveGame và DeleteGame trong module1
- 3 sub SaveGame2, DeleteGame2, deleteAnswer trong module2
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bổ sung theo góp ý của BNTT: có thể cancel trước khi lưu và trước khi xoá (do bẫy lỗi chưa hết)
May quá đi tìm mãi mới thấy được chương trình chơi cờ này của Bác PTM. Đem tỉ thí chắc chắn mình thắng vì cầm con nào đi bậy bạ 2, 3 nước (trong khi đối phương không tập trung là thắng rồi). Mã đi vô tư, đánh y như ngoài thật luôn, ăn gian tí chắc không ai để ý,
Cám ơn Bác Ptm nhé.
 
Upvote 0
Cái Cờ Tướng bằng VB

Cái này bên VB6, các cao thủ hãy chế tác qua VBE sử dụng thử nhé --=0
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom