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
 
Mỗi lần đi 1 nước cờ, bạn dùng code ghi nước cờ xuống 1 ô của Excel theo mã quy ước, mã này gồm 3 phần:
1 phần là mã xác định quân cờ
1 phần là mã xác định màu quân cờ
1 phần xác định vị trí trước và sau khi di chuyển

khi muốn replay, đọc lại các ô đã ghi, dịch chuyển quân cờ tương ứng
 
Upvote 0
To Ptm0412 :Em đang tìm cách gởi bàn cờ bằng êxccl lên GPE , qua đó mới hình dung được và nhờ cao thủ viết giùm.
 

File đính kèm

Upvote 0
To Ptm0412 :Em đang tìm cách gởi bàn cờ bằng êxccl lên GPE , qua đó mới hình dung được và nhờ cao thủ viết giùm.
Ôi... bàn cờ... xấu quá... Ít ra cũng phải được như trong file đính kèm dưới đây! (file 1)
Ai có khiếu thẩm mỹ có thể "cắt" từng con cờ ra rồi đưa vào bảng tính
Nói thêm: Muốn nước đi được đẹp mắt và chính xác (đúng vào các điểm nút của bàn cờ) thì nên đặt chế độ Snap To Gird cho Object

Tôi gửi lên bàn cờ đã được "chế tác" giống như 1 bàn cờ thật (file 2)
(Snap to Gird đã được kích hoạt sẵn)
Phần còn lại thuộc về các chuyên gia (tôi tự thấy mình không đủ khả năng)
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
To ndu96081631 :Cám ơn bác đã hoàn chỉnh dùm bàn cờ và quân cờ . ý tưởng ban đầu của là khi đã thực hiện đuợc yêu cầu trên thì sẽ dùng nó để lưu lại những ván cờ thế từ cổ chí kim, những ván cờ hay của tất cả các danh thủ hàng đầu trên thế giới với mục tiêu sẽ học tập các nước tuyệt chiêu thông qua bấm nút tái hiện ,từng quân cờ sẽ di chuyển từ đầu cho đến cuối của ván cờ ; Với nhã ý rất hay của bác em lại nảy sinh nhu cầu cao hơn qua 4 bước như sau :


  • Bước 1 : Hoàn thiện quân cờ và bàn cờ đến độ sắc nét và đẹp mắt.( sức của em chỉ được như trên _ xin thông cảm )


  • Bước 2 : Tái hiện đuợc những nước đã đi quân cho 2 bên nhằm đạt mục tiêu như trên ( ngôn ngữ lập trình bằng VBA ).


  • Bước 3 : Từ cơ sở bước 2 , phát triển thêm lên 1 bậc , đó là ta chỉ đi quân cho 1 bên , còn bên kia thì EXCEL sẽ tự đáp trả bằng những nước đi đúng và đơn giản ở dạng sơ cấp ,dùng cho người mới biết chơi cờ học tập.


  • Bước 4 : Cao hơn một chút , EXCEL bằng những thuật toán thông minh và sáng tạo sẽ đi đuợc những nước cờ sắc bén dành cho các bạn thuộc trình độ trung cấp và cao cấp . ( lỡ đi sai , vẫn có thể hồi lại nước đó )

Mong các bạn cao thủ ra tay trợ giúp . Trân trọng cám ơn !!!

p/s : Sử dụng bằng software thì em cũng có , nhưng xài đuợc bằng VBA sao cho vừa nhẹ, vừa nhanh ,vừa hay thì có lẽ chỉ có ở “ GIẢI PHÁP EXCEL “ mới tạo đuợc mà thôi.( giống như file lịch của Thầy Thu Nghi chỉ tạo bằng công thức Excel đuợc giới thiệu trên khá nhiều website khác mà em đọc đuợc )

PHP:
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * '
:-=

Cám ơn bác ndu96081631 ! quân cờ , bàn cờ được tạo ra rất đẹp , con cờ di chuyển được nằm đúng trên bảng tính excêl ,có toạ độ của hàng , cột ; có vậy mới viết code được , nhưng bác ơi , chữ trên các quân cờ theo như nguyên gốc thì có thể hiện vào code được không và bằng cách nào hay phải phiên dịch tắt cũng được ,ví dụ pháo thì chỉ cần chữ P là đủ ?
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
chữ trên các quân cờ theo như nguyên gốc thì có thể hiện vào code được không và bằng cách nào hay phải phiên dịch tắt cũng được ,ví dụ pháo thì chỉ cần chữ P là đủ ?
Bạn đặt tên lại cho chúng là được:
- click chọn quân cờ
- sửa tên trong namebox (nên có 3 phần: tên quân, màu, số TT)
Số TT phải có vì xe có 2 con, pháo 2 con, chốt 5 con, phải phân biệt được dịch chuyển con chốt nào

Thí dụ XeDo1, XeDo2, XeX1, XeX2, ...

Code dịch chuyển cũng dễ:

[highlight=vb]With ActiveSheet
.shapes("XeDo1").Left= Cells(,3).Left ' Xa 9 bình 8
.shapes("XeDo1").Top= Cells(6,).Top ' Xa 9 tấn 6
.........
End With[/highlight]
 
Upvote 0
Còn rất nhiều việc để làm :

1. Chế bàn cờ, đặt tên các quân cờ, đặt tên các tọa độ

2. Các quân cờ luôn nằm trên giao điểm của các Cell (để đảm bảo tọa độ đúng)

3. Đặt ra luật di chuyển quân cờ (1 UDF chẳng hạn), với quân cờ đó thì khi đang ở tọa độ đó thì chỉ được phép di chuyển đến những tọa độ nào (Tham số : Quân cờ; Vị trí hiện tại --> Vị trí có thể đến)

4. Khi có 1 quân cờ di chuyển
- So sánh vị trí toàn bộ quân cờ trong bộ nhớ với vị trí mới thay đổi để phát hiện ra quân cờ nào mới di chuyển (Vì không có sự kiện Shaps.Move)
- Kiểm tra xem vị trí di chuyển đó có hợp lý hay không (Hàm UDF VITRIMOI = True)
- Nếu vị trí đó có tồn tại 1 quân cờ của TA thì sẽ không thực hiện được
- Nếu vị trí đó có tồn tại 1 quân cờ của ĐỊCH thì sẽ đồng thời với việc nhận vị trí mới thì quân cờ của ĐỊCH phải bị xóa đi (Trên màn hình và trong bộ nhớ)
- Nếu OK tất cả thì ghi lại vị trí mới đó, lấy đó làm vị trí hiện tại của quân cờ
......................................................
.....................................................

Mệt mỏi đấy.

Thân!
 
Upvote 0
Còn rất nhiều việc để làm :

1. Chế bàn cờ, đặt tên các quân cờ, đặt tên các tọa độ

2. Các quân cờ luôn nằm trên giao điểm của các Cell (để đảm bảo tọa độ đúng)

3. Đặt ra luật di chuyển quân cờ (1 UDF chẳng hạn), với quân cờ đó thì khi đang ở tọa độ đó thì chỉ được phép di chuyển đến những tọa độ nào (Tham số : Quân cờ; Vị trí hiện tại --> Vị trí có thể đến)

4. Khi có 1 quân cờ di chuyển
- So sánh vị trí toàn bộ quân cờ trong bộ nhớ với vị trí mới thay đổi để phát hiện ra quân cờ nào mới di chuyển (Vì không có sự kiện Shaps.Move)
- Kiểm tra xem vị trí di chuyển đó có hợp lý hay không (Hàm UDF VITRIMOI = True)
- Nếu vị trí đó có tồn tại 1 quân cờ của TA thì sẽ không thực hiện được
- Nếu vị trí đó có tồn tại 1 quân cờ của ĐỊCH thì sẽ đồng thời với việc nhận vị trí mới thì quân cờ của ĐỊCH phải bị xóa đi (Trên màn hình và trong bộ nhớ)
- Nếu OK tất cả thì ghi lại vị trí mới đó, lấy đó làm vị trí hiện tại của quân cờ
......................................................
.....................................................

Mệt mỏi đấy.

Thân!
2 mục đầu đã làm xong rồi ---> Còn lại thì bạn và các cao thủ làm tiếp vậy!
 
Upvote 0
Theo tôi, B3, B4 theo yêu của Thầy Thực, excel chắc không làm được.
 
Upvote 0
Xin bổ sung

Mr BAB mới nói về nước đi thôi; còn nước bị đi nữa;
Đó là khi tướng bị chiếu thì phải loại trừ ngay bằng mọi giá con tướng của ta bị tấn công.
Nước chiếu bí: Nước mà con tướng bị chiếu mà không thể tránh được cũng như không có quân hầu che đạn giúp hay loại trừ nước chiếu này bằng cách thủ tiêu quân đang chiếu của đối phương!

Tuy nhiên phải gỡ từ từ từng bước 1 mà thôi!
 
Upvote 0
DoHuuThuc đã viết:
Bước 2 : Tái hiện đuợc những nước đã đi quân cho 2 bên nhằm đạt mục tiêu như trên ( ngôn ngữ lập trình bằng VBA ).

Tạm thời tái hiện những ván cờ hay để xem chơi, như file đính kèm
 

File đính kèm

Upvote 0
Thí dụ :các bác xem tạm thí dụ sau
hình kèm theo
 

File đính kèm

Upvote 0
Thí dụ :các bác xem tạm thí dụ sau
hình kèm theo

Bác thân!

Viết Code dĩ nhiên là phải biết cách đi rồi:-=:-=
Cái quan trọng là việc giải thuật như thế nào cho nhanh.
Vì với bằng đó quân cờ với bằng đó tọa độ thì việc để tổng quát hết các trường hợp rất mất thời gian (Mất thời gian chứ không khó để hình dung)
Sau đó mới nghĩ đến việc cô gọn code lại để thành 1 UDF.

Thân!
 
Upvote 0
Phép ra quân khai cuộc điển hình của Bình Phong Mã, các bạn copy và paste vào sheet2!F1 của file trên.

MaXa1|8|3
PhDo1|3|5
TinhXa1|8|5
MaDo1|3|3
MaXa2|8|7
CDo4|5|7
CXa2|6|3
XeDo1|1|2
XeXa1|10|2
MaDo2|3|7
PhXa2|6|8
XeDo1|5|2
MaXa1|6|2

Các bạn thích thì viết tiếp xuống dưới, name động sẽ tự cập nhật.
 
Upvote 0
Phép ra quân khai cuộc điển hình của Bình Phong Mã, các bạn copy và paste vào sheet2!F1 của file trên.

MaXa1|8|3
PhDo1|3|5
TinhXa1|8|5
MaDo1|3|3
MaXa2|8|7
CDo4|5|7
CXa2|6|3
XeDo1|1|2
XeXa1|10|2
MaDo2|3|7
PhXa2|6|8
XeDo1|5|2
MaXa1|6|2
Các bạn thích thì viết tiếp xuống dưới, name động sẽ tự cập nhật.
Vậy là đánh cờ ở đây là đáng bằng miệng hay gõ, thấy hơi khác là click chuột nhỉ!
Trước mắt nhờ Bác viết hộ code như sau:
- Chốt không đi ngược.
- Tướng, Sĩ, Tượng không được đi ra vùng cấm.
Em thua món này. Vừa rồi tính thi Kỳ Vương cấp nhà ($ tổ dân phố) mà không được.
 
Upvote 0
Cái này chỉ là xem lại những cuộc cờ hay, sưu tầm được thôi. Hoặc là những bài cờ khai cuộc, trung cuộc, tàn cuộc, cờ thế, ... sưu tầm, gõ lại vào đây để lâu lâu xem lại.
Chưa có code tính nước đi, hay code ràng buộc gì cả. VBA hạng ruồi của lão giả chết tiệt Ptm chỉ tới đó thôi.
 
Upvote 0
Em rất cám ơn là các bác đã quan tâm và đưa ra nhiều ý kiến xác đáng .Không phải là em nêu cách đi quân , mà em muốn minh hoạ ví dụ trên với mục đích sau khi có code rồi ( chuyện tái hiện đối với các bác thì không khó ) thì em sẽ có yêu cầu tiếp trong bước 2 , đó là khi đi các quân cờ đến đâu thì bên dưới sẽ là biên bản tự động xuất hiện dựa trên nút bấm tới lui trên excel vì chẳng những dùng để lưu các ván cờ thế , các ván cờ hay mà còn sử dụng làm trọng tài ghi biên bản giao đấu giữa 2 đấu thủ _ phần này em sẽ nói sau khi mà sau này theo gợi ý của bác BNTT là sẽ thư giãn 1,2 ván cờ trong chính GPE.


P/s ; thật ra khi đưa đề tài lên em cũng không dám vọng tưởng là đạt đuọc B3,B4 , nên chỉ mong tới bước 2 hoàn chỉnh là mừng rồi .( chỉ khi nào đã đủ diều kiện và thời gian thì mới tính tiếp )
 
Upvote 0
Nếu chỉ cần "tái hiện" thì tôi đang nghĩ đến hướng:
- Mình "nhập" cách đi quân (dạng text) vào 2 cột ---> Xanh 1 cột, đỏ 1 cột, từ trên xuống
- Dùng vòng lập quét 2 cột này ---> Code phải "dịch" từ text nhập sang thành nước đi
Tiếp theo:
- Ta đi quân ---> Text tự động được nhập vào 2 cột nói trên
Vậy mấu chốt vấn đề là:
- Phải "nhập liệu" như thế nào đó theo quy định để code có thể "nhận dạng" và "dịch ra" được nước đi
Từ đó suy ra với yêu cầu của tác giả thì ta cũng chẳng cần phải tạo ra các quy định cho các quân cờ mà chỉ cần làm sao cho nó "hiểu được" ta đang "đi quân" như thế nào (nhằm tái hiện lại sau đó)
Không biết tôi nói thế có đúng ý tác giả không nhỉ?
 
Upvote 0
Đã hoàn chỉnh file cờ tướng, 2 bước thôi, đạt yêu cầu bài #1.
Hướng dẫn sử dụng trước khi dùng:

- Nhấn Reset trước khi chơi để sắp cờ lại.
- Chơi cờ (bằng chuột)
- khi ăn quân, nhớ lôi quân cờ ăn được ra ngoài
- 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.
- Lưu lại cuộc cờ (nhấn Save Game), nếu chưa lưu mỗi nước đi thì đừng làm bước này.
- chơi lại cuộc cờ đã lưu, hông lưu hông chơi lại được (chọn cuộc cờ bằng combobox, nhấn Play)
- xoá cuộc cờ bất kỳ đã lưu (chọn cuộc cờ bằng combobox, nhấn Delete Game)

Xin ý kiến quý vị!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Gởi đến bác NDU... :bác định ra hướng đó coi như gần hoàn thành được ý của em 80% .Vẫn là bàn cờ của bác cho , em đã chèn xuống 1 dòng và gõ các con số từ 1 đến 9 ngược dòng cho cả 2 bên chính là làm gọn lại vị trí các quân , dù xe đang ở bất kỳ vị trí nào trái hay phải ,trên hay dưới...cũng đều xác định được ngay , không cần phải xe 1 hay là xe 2 và đi dến vị tí nào cũng đều có toạ độ chính xác ; từ đó việc hình thành doạn code sẽ dễ rất nhiều.
Cái này hơi liên quan đến bước thứ 3 đó là thay vì bên em đi quân ,thì bác ở bên kia sẽ click chuột và đi cờ theo ý bác ( không phải do excell đi cờ ), em đi 1 nước , bên dưới sẽ xuất hiện nước đi củe em, khi bác vừa dịch chuyển là nước của bác củng xuất hiện ngay ở kế bên ( biên bản ) , tạo test như bác gợi ý thì sẽ khó khăn cho các bác rất nhiều.
Qua phần này , bác co lại bàn cờ, quân cờ cho nhỏ lại để 2 bên không phải cuộn màn hình. Bên trên các bác tạo dùm em 4 nút bấm :1nút lui đôi ( <<) để quay về đầu ván , 1 nút lui đơn ( < ) quay về 1 nước trước đó , tương tư tạo nút tới .
Ben cạnh trái ( hay phải của màn hình ) tạo hộp đựng 32 quân cờ , lúc này bàn cờ sẽ trống , mục đích là khi ta muốn xếp bàn cờ thế thì chỉ click vào lôi đi vào trong bàn cờ đặt vào vị trí ta muốn hoặc khi ta ăn quân thì tự động quâ của dối phương sẽ tự bay ra ngoai hộp.


P/s : từ từ thôi các bác , không có gì gấp hết , em biết là các bác cũng bận lắm !!
 
Lần chỉnh sửa cuối:
Upvote 0
- 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

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

Back
Top Bottom