Trò chơi xì dzách trên Excel (1 người xem)

  • Thread starter Thread starter SA_DQ
  • Ngày gửi Ngày gửi
Liên hệ QC

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

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia
8/6/06
Bài viết
14,699
Được thích
23,059
Nghề nghiệp
U80
Đã lâu mình có manh nha viết trò chơi xì zách trên êxcel

Đến nay đã chín mùi; Nhưng xét thấy khả năng không thể xong trước ngày giữa năm, nên thân mời các cao thủ trong VBA & cao thủ trong trò đỏ đen này giúp một tay;

( Ai nhận đồng í giúp nhấn dùm nút Thanks cho bài này 1 cái)

Rất mong được đón tiếp các bạn cùng cộng tác.

Xin cảm ơn đã quan tậm!
 
Bác chuyển sang trò khác được không Bác? Trò nào chơi 2 người hoặc 2 đội thôi ấy. Xì zách chơi 4 người, 32 lá, vừa khó, thời gian chơi lại lâu. Nhất thời không nghĩ ra trò thích hợp.

Khó ở chỗ mấy lá bài, làm sao 1 người thấy mà 3 người khác không thấy? Nếu chơi online thì ai kiểm soát chuyện ấy?
 
Lần chỉnh sửa cuối:
Bác chuyển sang trò khác được không Bác? Trò nào chơi 2 người hoặc 2 đội thôi ấy. Xì zách chơi 4 người, 32 lá, vừa khó, thời gian chơi lại lâu. Nhất thời không nghĩ ra trò thích hợp.

Khó ở chỗ mấy lá bài, làm sao 1 người thấy mà 3 người khác không thấy? Nếu chơi online thì ai kiểm soát chuyện ấy?

Ý định của mình là từ đơn giản đến fức tạp, đầu tiên 1 người chơi với máy; Trước mắt giao cho máy làm cái.

Chỉ dùng 3/4 số là bài thôi trong 1 bộ mà thôi (Nếu cả bộ bài thì hao tổn tài nguyên);

Mình cũng lâu không chơi rồi;

Dự luật sẽ như sau:

(*) Cấp fát cho nhà cái & người chơi mỗi người 2 là bài
+ Nếu ai đó có con ác & 1 trong các con sau: Ác, con 10 trở lên thì thắng ngay;

(*) Nếu số nút của 2 lá dưới 15 thì fải kéo tiếp 1 vài con nữa; nếu tổng số nút >21 thì thôi;
Nếu kéo đến con thứ 5 mà chưa vượt 21 nút thì thắng ngay;

(Vượt 21 nút là bài quác; Nếu nhà cái xét & thấy người chơi bị quác thì người chơi bị thua ván.)

Nếu người chơi bị quác, nhưng cái không xét & cái kéo đến quác thì cái thua

Nhà cái được ưu tiên ở chổ: bằng điểm thì nhà cái thắng!

Các bạn nào có í kiến góp ý thêm về luật chơi không, xin mời?
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bác SA ơi,

Không có chơi trò khác được à. Bác đã có thử làm được phần nào chưa?

Lê Văn Duyệt
PS: không dám nhấn nút tks vì không tham gia với Bác được. Hi hi hi.
 
Bác đã có thử làm được phần nào chưa?
Trong file là kết quả của những bước khởi đầu.

Rất mong các bạn tham gia & góp í để cùng nhau hoàn thiện. (Xin mời các bạn là những tay bài lão luyện góp í về những thiếu sót đang có đối chiếu với luật chơi.)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Dear HYen,
Trước mắt thấy như sau:
- Sub keobai() không có thông báo "I win" hoặc "You win", mà theo quy ước, kéo được ngũ linh thì "You win". Do đó khi nhấn nút thôi kéo, thì lại hiện "Ia win" bất kể nhà cái có kéo thêm hay không, kéo thêm được bao nhiêu điểm.
- Sub Maykeo() chỉ có thông báo "I win", không có thông báo "You win".
- Nếu có thông báo tiếng Việt "Ban quac roi" thì các thong báo khác nên là "Ban thang" hoặc "Ban thua"
- Có trường hợp như sau xảy ra: Nhà con thôi kéo, nhưng nhà cái chưa đủ 15 điểm đã lật bài
- Nếu nhà cái có kéo thêm 1 lá, số điểm không được cộng thêm vào ô C11, và chỉ kéo 1 lá đã lật bài.
- Sub maykeo() nên tự động chạy 1 lần hoặc nhiều lần cho đến khi trên 16 điểm hoặc quác. Hiện nay phải nhấn nút thôi kéo, nghĩa là nhà con kéo cho nhà cái.
 
Trước mắt thấy như sau:
(1) - Sub keobai() không có thông báo "I win" hoặc "You win", mà theo quy ước, kéo được ngũ linh thì "You win". Do đó khi nhấn nút thôi kéo, thì lại hiện "I win" bất kể nhà cái có kéo thêm hay không, kéo thêm được bao nhiêu điểm.
(2)- Sub Maykeo() chỉ có thông báo "I win", không có thông báo "You win".
(3)- Nếu có thông báo tiếng Việt "Ban quac roi" thì các thong báo khác nên là "Ban thang" hoặc "Ban thua"
(4)- Có trường hợp như sau xảy ra: Nhà con thôi kéo, nhưng nhà cái chưa đủ 15 điểm đã lật bài
(5)- Nếu nhà cái có kéo thêm 1 lá, số điểm không được cộng thêm vào ô C11, và chỉ kéo 1 lá đã lật bài.
(6) - Sub maykeo() nên tự động chạy 1 lần hoặc nhiều lần cho đến khi trên 16 điểm hoặc quác. Hiện nay phải nhấn nút thôi kéo, nghĩa là nhà con kéo cho nhà cái.
Rất cảm ơn bạn Phan Thành Mỹ đã có những góp í chí lý.
Sẽ tiếp tục sửa đổi bổ sung trong chương trình.

Riêng (5): Trị tại C11 đang dùng để kiểm nghiệm các macro mà thôi; sau này, khi sắp hoàn tất, sẽ không cho ghi nữa.
Nhà cái có thể lật bài của mình bất cứ lúc nào chứ (?); Chỉ có điều lật xong vẫn kéo tiếp được. Hình như điều này có trong thực tế thì fải.

Sẽ chuyển sang tiếng Việt hết! Nhưng lại không dấu. . . .

Trước mắt sẽ fải giải quyết mục (6) làm sao máy kéo tự động. Rất mong các góp ý vể khoản này.


Xin Cảm ơn các bạn đã & đang quan tâm.
 
Bài này mà post trong Quảng cáo - rao vặt, quá phí (nếu không nói là... post sai chỗ!).
Xin mạn phép tác giả cho em chuyển nó vào chỗ trang trọng hơn, xứng đáng với tầm vóc của nó hơn.
 
Trước mắt sẽ fải giải quyết mục (6) làm sao máy kéo tự động. Rất mong các góp ý vể khoản này.

Mã:
Sub maykeo()

   Code ...

Diem = ....
If Diem <= 16 And Solankeo < 3 Then 
   Solankeo = Solankeo + 1
   maykeo
Else
   Code ...
End If

End Sub

Còn 1 điều kiện thắng ngay nữa là 2 con xì, chị ơi!
 
Lần chỉnh sửa cuối:
Tiến bộ trong cách tính khi có con ắch trong số bài của người chơi

Còn (6) vẫn chưa khắc fục hết nhược điểm

Mời các bạn xem file & góp thêm ý kiến.

Rất cảm ơn các bạn đã & đang có những đóng góp cho hướng đi tiếp theo của trò chơi này!
 

File đính kèm

Chưa xem file bác, nhưng bác cứ lôi file dưới đây về so sánh nhé.

________________

Đã xem file, thấy ngay:
- Cả 2 đều oác: "Bạn thắng"
- Cả 2 cùng điểm (<=21): "Bạn thắng"
- Nhà con oác, nhà cái <=21: "Bạn thắng"

Xin phen này hầu bài Bác, Bác làm cái nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Còn (6) vẫn chưa khắc fục hết nhược điểm

Mời các bạn xem file & góp thêm ý kiến.

Rất cảm ơn các bạn đã & đang có những đóng góp cho hướng đi tiếp theo của trò chơi này!

Xizach rất thú vị...
Còn "keo" này thì sao Bác ơi?
xizach.JPG
Với ván bài trên, em cứ tưởng bài của em là bài dưới -> Bạn đã thắng ?
Có vẻ như cái I win / you win của Bác PTM có vẻ hợp lý hơn Bác à.
 
Lần chỉnh sửa cuối:
Hỏi về việc tính điểm với con ách

Hình như con này được tính, lúc thì 1 điểm, lúc khác có thể tính là 10 hay 11 điểm hay sao ấy nhỉ các bạn?

Nếu vậy thì còn lôi thôi nhiều lắm: Tính đi rồi fải tính lại để đạt điểm tối ưu.
 
Hình như con này được tính, lúc thì 1 điểm, lúc khác có thể tính là 10 hay 11 điểm hay sao ấy nhỉ các bạn?

Nếu vậy thì còn lôi thôi nhiều lắm: Tính đi rồi fải tính lại để đạt điểm tối ưu.

Có thể bỏ qua vụ này không bác? Tính thế nào là tối ưu không phải là không tính được, nhưng hơi rắc rối. Bác có cái ý tưởng nào để thực hiện cái zắc zối đó chưa? Thí dụ:
1. Tạo 1 số biến, chia làm 2 nhóm lưu giữ điểm của từng lá bài của 2 bên
2. Đối với nhà cái:
- Tính tối ưu từng nhóm biến, so sánh để có kết quả
- Sau khi kéo 1 lá, tính lại,so sánh lại, quyết định nên kéo tiếp hay không hoặc cho kết quả.
3. Đối với nhà con:
Chả lẽ để máy tính dùm sao?


Còn nữa: Ứng xử của người chơi khác với máy, họ tự quyết định khi nào kéo bài, khi nào không. Có khi 16 cũng không thèm kéo vì họ dự đoán đối phương quác rồi chẳng hạn.
Còn khi kéo 1 hoặc 2 lần, họ cũng sẽ cân nhắc nên có kéo lần thứ 2 hoặc 3 hay không, chứ không phải cứ trên 16 là ngưng đâu.

Bác xem tạm cái file dưới, có cải tiến tí chút theo cách của chị HYen là dùng name hiện kết quả, không dùng msgbox. Ngoài ra có thông báo thắng hoặc thua trong trường hợp đặc biệt như ngũ linh hoặc xì dzách. Hình như 2 lá đều Ách gọi tên khác thì phải?
 

File đính kèm

Có thể bỏ qua vụ này không bác? Tính thế nào là tối ưu không phải là không tính được, nhưng hơi rắc rối. (a) Bác có cái ý tưởng nào để thực hiện cái zắc zối đó chưa? Thí dụ:
1. Tạo 1 số biến, chia làm 2 nhóm lưu giữ điểm của từng lá bài của 2 bên
2. Đối với nhà cái:
- Tính tối ưu từng nhóm biến, so sánh để có kết quả
- Sau khi kéo 1 lá, tính lại,so sánh lại, quyết định nên kéo tiếp hay không hoặc cho kết quả.
3. Đối với nhà con:
(b) Chả lẽ để máy tính dùm sao?

Còn nữa: Ứng xử của người chơi khác với máy, họ tự quyết định khi nào kéo bài, khi nào không. Có khi 16 cũng không thèm kéo vì họ dự đoán đối phương quác rồi chẳng hạn.
Còn khi kéo 1 hoặc 2 lần, họ cũng sẽ cân nhắc nên có kéo lần thứ 2 hoặc 3 hay không, chứ không phải cứ trên 16 là ngưng đâu.
Bác xem tạm cái file dưới, có cải tiến tí chút theo cách của chị HYen là dùng name hiện kết quả, không dùng msgbox. Ngoài ra có thông báo thắng hoặc thua trong trường hợp đặc biệt như ngũ linh hoặc xì dzách. (c)Hình như 2 lá đều Ách gọi tên khác thì phải?

(c) Hai con ách là xì già; Còn lại là xì non. Tất nhiên xì non thua xì già; Còn xì già thắng luôn ván.

(a) Í tưởng mình cũng đã có nhưng chưa thể toàn diện. Mấy hôm nay không có máy in để in chương trình ra, xem xét 1 cách tường tận hơn, nên cũng chưa tiếp tục được. Các trò trước mình đều làm thế mới xong đó!

Í tưởng của mình là khi cấp fát bài hay khi kéo bài, nếu đối thủ nào gặp con ách thì cho biến khai báo kiểu Yes/No thành True; Như vậy ta sẽ fải khai báo 2 biến cho ta & cho máy.

Khi tính thì xét có ách & cộng điểm đã tính với 9 (10-1) hay 10 (11-1) mà chưa quác thì điểm mới được xác lập;

Khổ nổi ở chổ khi đã tính cộng thêm, nhưng điểm mới tính chỉ là 14; cần fải kéo tiếp & lá kéo tiếp này dẫn tới quác (Như kéo fải con 8-10 điểm) Lúc đó trong đời thực người ta lại tính con ách quay về 1 điểm;
Cái vụ quay về này mình đang lúng túng (ngay cả cho nhà Con; Chưa nói đến nhà Cái.)
Vì cái vụ quay về này fải trừ 9 hay trừ 10 là cả 1 vấn đề.. . & đang thua chổ này!

Với lại mấy hôm nay trời quá nóng nên đầu óc bốc khói rùi, Làm ăn được chi mô!
 
Í tưởng của mình là khi cấp fát bài hay khi kéo bài, nếu đối thủ nào gặp con ách thì cho biến khai báo kiểu Yes/No thành True; Như vậy ta sẽ fải khai báo 2 biến cho ta & cho máy.
Chính vì chỗ này mà khi tính lại bị khó khăn. Chưa nói khi cấp phát bài hoặc kéo bải bị 2 con ách trở lên.
Giả sử đặt 10 biến thành 2 nhóm, mỗi nhóm 5 biến.
1. Giả sử A1 đến A5 là của nhà cái, và đang tính cho nhà đó: (lá chưa kéo = 0, đương nhiên)

Case 1 ách
- tính sum(A1, A2, ...)
- tính Sum( if(A1=1,10,A1), if(A2=1,10,A2),...)
- tính Sum(if(A1=1,11,A1), if(A2=1,11,A2), ...)
- So sánh 3 kết quả, lấy tối ưu
- Nếu rút thêm 1 lá, lập lại 4 bước trên.

Đó là mới có 1 ách nha. Còn 2 ách trở lên thì nhiều trường hợp lắm đó. Thí dụ 2 ách:
Case 2 ách
- tính Sum(If(A1 = 1 And A2 = 1), 11, A3, ...)
- tính Sum(If(A1 = 1 And A2 = 1), 12, A3, ...)
- tính Sum(If(A1 = 1 And A3 = 1), 11, A2, ...)
- tính Sum(If(A1 = 1 And A3 = 1), 12, A2, ...)
- ...

Hình như 10 trường hợp nữa thì phải, cộng là 13 trường hợp

Đó là: 1 lá tính 10, 1 lá tính 1, hoặc 1 lá tính 11, 1 lá tính 1. Ba lá trở lên không ai tính 2 ách là 20, 21, hoặc 22 cả. Còn nếu chỉ 2 lá đã ách cả thì đã thắng từ đầu rồi.

Còn 3 ách, 4 ách nữa! Ôi dà! nhức đầu lắm.
 
À không. Nếu lý luận:

Nếu 2 lá mà có 1 ách, nếu vô trường hợp xì non, thắng thì đã thắng rồi, 2 ách thì đương nhiên thắng rồi. Kết luận: Không bàn 2 lá. Hai lá có ách thì chỉ tính 1 ách hoặc thắng luôn.

Ba lá mà 2 ách không ai tính 2 ách là 20, 21, hoặc 22 cả

và:

4 lá mà 3 ách cũng không ai tính 20, 21, 22, 30, 31, 32, 33

5 lá mà 4 ách lại càng không.

Kết luận: 3 lá trở lên, bao nhiêu ách cũng tính như 1 ách.

Vậy thì dùng 2 biến mảng A(1 to 5) cho nhà con và B(1 to 5) cho nhà cái:

PHP:
For i = 1 to 5
    If A(i) = 1 Then Ach1 = True
    DiemA1 = DiemA1 + A(i)
Next

DiemA2 =  DiemA1 + IIf(Ach1, 9, 0)
DiemA3 =  DiemA1 + IIf(Ach1, 10, 0)

' Điểm tối ưu'
DiemA = Application. Max( Iff(DiemA1>21, 0, DiemA1),  Iff(DiemA2>21, 0, DiemA2),  Iff(DiemA3>21, 0, DiemA3))

' Nếu DiemA1 quác (kéo theo DiemA2 quác và DiemA3 quác)'
If DiemA = 0 Then DiemA = DiemA1

DiemA này thể hiện trên ô điểm của nhà con cho người chơi biết để quyết định kéo nữa hay thôi. Đoạn code này đặt trong Sub Keobai().

Tương tự tính điểm tối ưu DiemB. Đoạn code tính DiemB để trong Sub Maykeo().
Xét DiemB, kết luận kéo nữa hay thôi.
Không kéo nữa thì so sánh DiemA và DiemB, ra thông báo thắng thua.
Kéo nữa thì chạy Sub Maykeo() lần nữa, lập lại quá trình.
Hà, mai làm!
 
Lần chỉnh sửa cuối:
Dù đã có hướng đi và code mẫu, cũng khá nhiêu khê, mất đứt buổi sáng.
Nhờ mọi người test dùm. Xin cám ơn.
Ghi chú: Đã có thông báo "xì già"
 

File đính kèm

Lần chỉnh sửa cuối:
..................
Bổ sung thông báo oác, bằng tiếng việt.
Bổ sung thông báo: "trẻ em dưới 15 tuổi hông được chơi", phòng trường hợp dưới 15 điểm mà nhấn "thôi kéo"
Cái này là nhờ BNTT test hộ, rồi bị chọt.

Vui lòng tải lại file xizachVer6, bài trên
 
..................
Bổ sung thông báo oác, bằng tiếng việt.
Bổ sung thông báo: "trẻ em dưới 15 tuổi hông được chơi", phòng trường hợp dưới 15 điểm mà nhấn "thôi kéo"
Cái này là nhờ BNTT test hộ, rồi bị chọt.
Vui lòng tải lại file xizachVer6, bài trên

xizach.jpg

Hình như 2 người "tèo" hết thì hòa chứ, sao có người thắng?
Có trường hợp 2 người 18 sao "xử" khách thua, chơi ăn gian?
Cái này ...mắc cười quá, bữa nào rảnh phải ngâm cứu "nó" một buổi mới đủ
 
Lần chỉnh sửa cuối:
Cái zụ tèo mà thắng là ý của chị HYen Cò ơi:
Nếu người chơi bị quác, nhưng cái không xét & cái kéo đến quác thì cái thua
Nhà cái được ưu tiên ở chổ: bằng điểm thì nhà cái thắng!

Thanks Cò cái nha!
Máy chơi hông giống người ta được. Người ta ngó cái mặt đoán điểm, hết "trẻ em" tức là 16 có quyền xét nếu dự đoán đối phương quác, nhưng máy thì hông có khà năng đó. 16 điểm sợ chết bà, phải kéo thêm. Kéo thêm mà quác thì chị HYen biểu thua, mình bèn cho thua.
Cò muốn hoà thì thêm 2 cái if zô, thế chỗ cho cái if thua và if thắng, đồng thời tạo thêm 1 name = "Huề tiền!"
 
Lần chỉnh sửa cuối:
Em chưa đọc kỹ nên chưa rõ, trờ chơi này có thể 2 hay nhiều người chơi không ạ? Nếu vậy thì phân làm hai chức năng: chơi với máy và chơi qua mạng.
 
Em chưa đọc kỹ nên chưa rõ, trờ chơi này có thể 2 hay nhiều người chơi không ạ? Nếu vậy thì phân làm hai chức năng: chơi với máy và chơi qua mạng.
Trên nguyên tắc thì trò chơi này có thể có nhiều người chơi, trong đó có một người làm nhà cái.

Mong rằng các tác giả có thể nghiên cứu phát triển theo hướng này được không ạ? Ví dụ, máy là nhà cái, và có nhiều hơn 1 người chơi.

Thêm nữa, có thể "ăn thua" tí không ạ? Ví dụ đặt tiền trước khi "kéo bài", nếu thắng thì được, nếu thua thì mất í mà, và số tiền đặt có thể tùy ý, hoặc là bội số của bi nhiêu đó...
 
Theo mình thấy thì đang đến giai đoạn chơi chỉ 1 người & máy đang làm cái.

Giải quyết xong cái vụ con ách rồi mới tính tiếp được các thứ bổ sung khác & như vậy sẽ bổ sung luật để dần dần tiến đến như trong thực tế diễn ra.

Hình như hồi xưa mình chơi thì con ách với các con có hình mới được là xì non; Còn với con mười thì không được tính xì non;

Nếu đúng vậy cũng là thêm một bước nữa trong bước đường chông gai rồi. . . .

Nếu TuanVNUNI tham gia sẽ rất tuyệt với.

Chúc vui!
 
Theo mình thấy thì đang đến giai đoạn chơi chỉ 1 người & máy đang làm cái.
Giải quyết xong cái vụ con ách rồi mới tính tiếp được các thứ bổ sung khác & như vậy sẽ bổ sung luật để dần dần tiến đến như trong thực tế diễn ra.
Hình như hồi xưa mình chơi thì con ách với các con có hình mới được là xì non; Còn với con mười thì không được tính xì non;
Nếu đúng vậy cũng là thêm một bước nữa trong bước đường chông gai rồi. . . .
Nếu TuanVNUNI tham gia sẽ rất tuyệt với.
Chúc vui!

Con Ách em làm có vấn đề gì hả Bác? Không thấy Bác phản hồi gì cả?

Hiện nay đã có tính tối ưu giữa việc tính Ách là 1, 10, và 11. Vậy còn vấn đề gì nữa? Hay là tối ưu sai?

Còn vụ Ách + lá bài có hình thì thêm 1 biến hoặc thêm 1 If. Hay Bác có cao kiến gì?
 
Trên nguyên tắc thì trò chơi này có thể có nhiều người chơi, trong đó có một người làm nhà cái.
Mong rằng các tác giả có thể nghiên cứu phát triển theo hướng này được không ạ? Ví dụ, máy là nhà cái, và có nhiều hơn 1 người chơi.
Thêm nữa, có thể "ăn thua" tí không ạ? Ví dụ đặt tiền trước khi "kéo bài", nếu thắng thì được, nếu thua thì mất í mà, và số tiền đặt có thể tùy ý, hoặc là bội số của bi nhiêu đó...
Máy là nhà cái và nhiều hơn 1 người chơi có thể làm lần lần từng bước được. Miễn là mọi người góp ý cho vụ 1 người chơi này: Xong chưa, có lỗi gì không, bổ sung luật chơi, ...
Chứ chủ topic chả thấy ý kiến gì, việc test thì phải nhắn tin từng người năn nỉ nhờ test, thì hơi nản.

Còn vụ ăn thua đặt tiền, thú thực tôi phản đối. Ngay từ đầu nói đến Game chơi bài là đã không muốn tham gia. Lý do cờ bạc là ăn thua, chơi xì zách lại càng ăn thua lớn. Trò chơi lại mang tính ngẫu nhiên, không có tính toán suy luận gì, chơi mà ghiền đâm ra mất khả năng tư duy đi.

Chẳng qua là đam mê Excel và VBA mới làm đến giờ. Nếu tiếp tục ăn thua theo hướng đặt tiền thì mình xin rút khỏi.
 
Lần chỉnh sửa cuối:
Theo mình thấy thì đang đến giai đoạn chơi chỉ 1 người & máy đang làm cái.

Giải quyết xong cái vụ con ách rồi mới tính tiếp được các thứ bổ sung khác & như vậy sẽ bổ sung luật để dần dần tiến đến như trong thực tế diễn ra.

Hình như hồi xưa mình chơi thì con ách với các con có hình mới được là xì non; Còn với con mười thì không được tính xì non;

Nếu đúng vậy cũng là thêm một bước nữa trong bước đường chông gai rồi. . . .

Nếu TuanVNUNI tham gia sẽ rất tuyệt với.

Chúc vui!

Cảm ơn anh đã tín nhiệm. Em sẽ tìm hiểu luật chơi.
Nếu tham gia thì em sẽ cùng phát triển game này chạy qua mạng với nhiều người cùng tham gia chơi trong Excel. Nhưng để chạy qua mạng thì người chơi phải cài A-Tools Free vào máy (vì A-Tools hỗ trợ truyền dữ liệu Excel qua mạng). Không biết ý tác giả thế nào.
 
Nếu tham gia thì em sẽ cùng phát triển game này chạy qua mạng với nhiều người cùng tham gia chơi trong Excel. Nhưng để chạy qua mạng thì người chơi phải cài A-Tools Free vào máy (vì A-Tools hỗ trợ truyền dữ liệu Excel qua mạng). Không biết ý tác giả thế nào.
Rất cảm ơn nữa là đằng khác! Bày ra rồi có các cao thủ vỏ lâm tham gia thì còn gì bằng.

Còn vụ ăn thua đặt tiền, thú thực tôi phản đối. Ngay từ đầu nói đến Game chơi bài là đã không muốn tham gia. Lý do cờ bạc là ăn thua, chơi xì zách lại càng ăn thua lớn. Trò chơi lại mang tính ngẫu nhiên, không có tính toán suy luận gì, chơi mà ghiền đâm ra mất khả năng tư duy đi.
Có thể vầy thôi: Mỗi ván thắng cho 1 hay 2 điểm (2: khi may được 2 lá xì hay ngũ linh);
Nhưng đến 25 hay 35 điểm gì đó thì thoát khỏi Excel luôn!
Chủ yếu đây là chúng ta đưa ra trò chơi, để qua đó cùng nhau ngâm cứu giải thuật;
Còn ai ham cờ bạc thì trên mạng đầy rẩy, chắc là kiểu gì cũng có. . .

Còn góp í thì mình thấy nhà cái ngũ linh nhưng chỉ báo là "Bạn thua" mà thôi; Có chụp được hình, giờ đưa lên đây:
Rất mong PTM tiếp tục nha! & Xin cảm ơn nhiều

View attachment GPE00.rar
 
Chỉnh sửa lần cuối bởi điều hành viên:
Xin hỏi: Bác đang chơi phiên bản nào mà không có thông báo ngũ linh?

Em dùng bản Ver6 thì có thông báo như sau. So sánh 2 hình, có lẽ Bác xài bản cũ lắm rồi, giữa thông báo thắng thua và 2 nút nhấn không có khoảng hở. Còn hình dưới đây, đã dãn ra để có thể nhét thông báo ngũ linh, xì zách, xì dzà, ...
Các thông báo này từ Ver4 là đã có rồi.

ngulinh.jpg
 
Lần chỉnh sửa cuối:
Có cách nào chương trình tạo ra 2 option
1. Kéo bài xong mở ra luôn
2. Người chơi có quyền "nặn" bài, rê chuột từ từ xuống để thấy lá bài mới kéo là mấy nút. Vậy cho thêm phần hồi hộp.
 
Version 7:
Theo ý chọt của Cò già:
- Bằng điểm (<=21): hoà
- Khách 2 hoặc 3 lá, cái <= 16 thì kéo bài
- Khách 4 hoặc 5 lá: Cái >= 16 là xét bài tính điểm (không kéo)
- Cả 2 đều oác: Cái >15, khách 4 lá trở lên, mà cái vẫn kéo để bị oác: cái thua
- Cả 2 đều oác: Cái <=15 mà kéo để oác, hoà

(tạm làm theo cò, nếu cần thì các bạn góp ý)
 
Lần chỉnh sửa cuối:
Có cách nào chương trình tạo ra 2 option
1.
2. Người chơi có quyền "nặn" bài, rê chuột từ từ xuống để thấy lá bài mới kéo là mấy nút. Vậy cho thêm phần hồi hộp.

Về nguyên lý thì năn bài là có thể, như sau:

Lấy con bìa, format cho nó lớn nhất sao với 39 con bài đang dùng. (Hiện chỉ dùng 39 con bài thay vì 52 con đó nha)
Thêm con bài kỳ dị này vô với 42 là hiện có thành 43 lá: Tất nhiên file sẽ fình lên 1 tẹo. Cái giá fải trả là ở đây.
Cho con bìa big này nằm trên con mới kéo & dùng chuột tự rê nó xuống.
(Nhưng vấn đề fát sinh sẽ là rê đến đâu? Đến khi nào biết con bài đó là con gì sẽ khác nhau giữa, chẳng hạn con già & con ách hay con năm)

Thân ái.
 
Hồi đêm làm xong quá trễ nên test không kỹ, còn sót trường hợp hoà: cái kéo 1 lần, cả 2 đều oác.
Xin vui lòng tải lại Ver7 bài này.

Ngoài ra có 1 lỗi rất lạ ở đoạn code tính điểm sau:
PHP:
    If (LankeoA = 3 And DiemA1 < 22) Then [f12] = "=thua": _
    [f13] = "=five": ActiveSheet.Buttons("Button44").Enabled = False: Exit Sub

    If (DiemB < DiemA And DiemA <= 21) Or (DiemA > 14 And DiemA < 22 And DiemB > 21) _
    Then [f12] = "=thua": Exit Sub
    
    If (DiemB < 22 And DiemB > DiemA And LankeoA < 3) Or (DiemB <= 21 And DiemA > 21) Or _
    (DiemB > 21 And DiemA > 21 And LankeoB > 1 And LankeoA = 3 And DiemA - DA(5) > 15) Or _
    (DiemB > 21 And DiemA > 21 And LankeoB > 1 And LankeoA = 2 And DiemA - DA(4) > 15) _
    Then [f12] = "=thang": Exit Sub
    
    If (DiemB = DiemA And DiemA <= 21) Or _
    (DiemB > 21 And DiemA > 21 And LankeoA = 3 And DiemA - DA(5) <= 15) Or _
    (DiemB > 21 And DiemA > 21 And LankeoA = 2 And DiemA - DA(4) <= 15) Or _
    (DiemB > 21 And DiemA > 21 And LankeoA = 1) Then [f12] = "=hoa": Exit Sub  'trường hợp này sót trong bài trước'

Cả 4 trường hợp If đều kết thúc bằng Exit Sub, nhưng chả bao giờ nó exit ngay mà luôn luôn duyệt 2 lần (nguyên đoạn code này). Nên đôi khi kết quả chạy bậy.

Nếu tách ra thành 1 Sub riêng KetQua() thì lại OK.

Nhờ các cao thủ tìm hiểu và giải thích nguyên nhân.
 

File đính kèm

Lần chỉnh sửa cuối:
View attachment GPE00.rar

PTMỹ đó hả, Người ta đi lấy chồng được rồi, mà còn bảo rằng vị thành niên!

Khà, khà,. . .

Lâu được chọt 1 cái, khì, khì,. . .
 
Chọt hông đúng chị ơi, nhà con mới 9 tuổi hà, mà dám nhấn nút "xin lấy chồng"
Nếu lỗi thì là lỗi không tính Ach = 10 hoặc = 11 trong trường hợp 2 lá. Sẽ bổ sung. Em đang có dự định tách ra thành Function Tinhdiem()
Bổ sung tính điểm tối ưu cho trường hợp 2 lá
Tách ra Function TinhDiem()
Vô hiệu hoá 2 nút nhấn khi đã có kết quả thắng ngay (xì dzách + xì già). Trước đây chỉ vô hiệu hoá khi kéo xong và nhấn thôi kéo

Vụ xì dzách chỉ tính lá hình không tính lá 10, cuối cùng có sửa không Bác Chanh?
Nếu sửa Bác cho em biết các lá 10 mang ký số mấy trong cột AA.
 

File đính kèm

Vụ xì dzách chỉ tính lá hình không tính lá 10, cuối cùng có sửa không Bác Chanh?
Nếu sửa Bác cho em biết các lá 10 mang ký số mấy trong cột AA.
Bổ sung được thì hay quá đi chứ. Chứng tỏ chương trình tinh tế & tính học thuật cao hơn 1 tầm với!

Còn các con 10 hình như là Picture Mod 13 = 10 thì fải

Mình vừa thử con ách cơ số 1 & con 9 cơ số 9; Con 2 rô mang số báo danh 15!


Rất cảm ơn Mỹ Ph. . Thành!
 
Đoạn code cho xì zách thắng ngay:

PHP:
 If (DiemSo(Rg1) = 1 And DiemSo(Rg2) = 10) _
 Or (DiemSo(Rg2) = 1 And DiemSo(Rg1) = 10) Then
Sửa thành:

PHP:
 If (DiemSo(Rg1) = 1 And DiemSo(Rg2) = 10 And Rg2 Mod 13 <> 10) _
 Or (DiemSo(Rg2) = 1 And DiemSo(Rg1) = 10 And Rg1 Mod 13 <> 10) Then
Như vậy, không cho tính tối ưu nữa, chỉ bằng 11:

PHP:
DiemA = TinhDiem("A")
''....
DiemB = TinhDiem("B")

Sửa thành:

PHP:
DiemA = IIf((DA(1) = 1 And DA(2) = 10) Or (DA(1) = 10 And DA(2) = 1), 11, TinhDiem("A"))
''....
DiemB = IIf((DB(1) = 1 And DB(2) = 10) Or (DB(1) = 10 And DB(2) = 1), 11, TinhDiem("B"))

Kết quả: 11 thì không thông báo,

11Diem.jpg

21 thì thông báo "xì dzách"

21Diem.jpg
 
Lần chỉnh sửa cuối:
Còn trường hợp hai con ách gọi là "Xì Bàn" nữa các anh ơi!

Thêm nữa, em test hoài mà chưa rơi vào trường hợp này:
Mình có hai lá, rút thêm 1 lá: nó ra 1 con xì, một con 3 và một con 5 ==> lúc này người chơi có quyền rút hay không rút nữa, vì con ách có thể coi là 10, như vậy đủ 18 tuổi.
Một con xì và 1 con mười có thể xem là 11 hay 21 đều được, nếu muốn rút nữa thì cũng có quyền rút.
 
Còn trường hợp hai con ách gọi là "Xì Bàn" nữa các anh ơi!

Thêm nữa, em test hoài mà chưa rơi vào trường hợp này:
Mình có hai lá, rút thêm 1 lá: nó ra 1 con xì, một con 3 và một con 5 ==> lúc này người chơi có quyền rút hay không rút nữa, vì con ách có thể coi là 10, như vậy đủ 18 tuổi.
Một con xì và 1 con mười có thể xem là 11 hay 21 đều được, nếu muốn rút nữa thì cũng có quyền rút.

Tất cả đều có rồi mà Cadafi, chắc test chưa đủ nhiều nên chưa ra.
Hai con Ách ở trong file gọi là "xì già"
Rút thêm lá mà có Ách, sẽ tính tối ưu điểm giữa Ách = 1, Ách = 10 và Ách = 11
Còn 1 con xì và 1 con 10, theo bác Chanh, thì không tính xì zách (21), nên phải để là 11, cho rút tiếp.
 
Còn 1 con xì và 1 con 10, theo bác Chanh, thì không tính xì zách (21), nên phải để là 11, cho rút tiếp.
Quýnh bài kiểu này ăn gian quá đi! Xì zách phải ăn được 21

Ví dụ 1: một người có xì zách (1 con xì và 1 con hình)
Người kia có con 10, con 9 và con 2 = 21 nhưng thua xì zách

Ví dụ 2: Một người có con xì và con 10
Người kia có con 10, con 9 và con 2 = 21 thì huề nhau.

Ví dụ 3: một người có xì zách (1 con xì và 1 con hình)
Người kia có con xì và con 10 = 21 nhưng thua xì zách

Vi1 dụ 4: Một người có con xì và con 10 = 21
Người kia có con 5, con 4, con 3, con 2, con 6 = Ngũ linh nên thắng
 
Còn 1 con xì và 1 con 10, theo bác Chanh, thì không tính xì zách (21), nên phải để là 11, cho rút tiếp.
Không tính là xì dzách, nhưng muốn tính là 11 hay 21 là quyền của người chơi chứ. Như mình thì thường coi là 21, khỏi kéo thêm ví fần thắng có sắc xuất lớn lắm rồi!

To CaDaFi : Luật lệ là do ta đưa ra mà. & thường lệ lớn hơn luật đó nha!
Hãy coi tiến lên thì biết.
 
Quýnh bài kiểu này ăn gian quá đi! Xì zách phải ăn được 21

Ví dụ 1: một người có xì zách (1 con xì và 1 con hình)
Người kia có con 10, con 9 và con 2 = 21 nhưng thua xì zách

Ví dụ 2: Một người có con xì và con 10
Người kia có con 10, con 9 và con 2 = 21 thì huề nhau.

Ví dụ 3: một người có xì zách (1 con xì và 1 con hình)
Người kia có con xì và con 10 = 21 nhưng thua xì zách

Vi1 dụ 4: Một người có con xì và con 10 = 21
Người kia có con 5, con 4, con 3, con 2, con 6 = Ngũ linh nên thắng

Ví dụ 1 không xảy ra, vì xì zách là lật bài ăn luôn, ai kéo làm gì, nghĩa là ai cũng chỉ có 2 lá.


thí dụ 3: Như đã nói ở trên, không tính là xì zách nên đương nhiên thua xì zách (1 ách và 1 hình)

Thí dụ 2:

Còn vụ tính điểm thì tuỳ ý:
trả code về như cũ:
PHP:
DiemA = IIf((DA(1) = 1 And DA(2) = 10) Or (DA(1) = 10 And DA(2) = 1), 11, TinhDiem("A"))
''....
DiemB = IIf((DB(1) = 1 And DB(2) = 10) Or (DB(1) = 10 And DB(2) = 1), 11, TinhDiem("B"))

trả về thành
PHP:
DiemA = TinhDiem("A")
''....
DiemB = TinhDiem("B")

Thí dụ 4: Yên tâm, dòng lệnh tính ngũ linh để tuyên bố thắng thua không quan tâm đối phương bao nhiêu điểm.
 
Lần chỉnh sửa cuối:
Minh hoạ 1 ách 1 lá 10 không tính xì dzách:

2 lá Tính 21 điểm:

2la=21.jpg

Có quyền kéo thêm: 3 lá chỉ tính 16 điểm

3la=16.jpg

Nếu không kéo, để đối phương kéo, vẫn tính 21 và thắng 17:

2la=21.jpg
 

File đính kèm

  • 2la=21win.jpg
    2la=21win.jpg
    41.5 KB · Đọc: 112
  • XiZachVer8-1.rar
    XiZachVer8-1.rar
    44.7 KB · Đọc: 121
Lần chỉnh sửa cuối:
Mới rảnh tí, test thử tí, thấy lòi ra tí này:
attachment.php
Có 3 con.. mà hô là 5, hic!

Số là biết rằng đã quác, nhưng chơi cùi luôn, rút thêm 2 em nữa, thế là nó "la làng" lên như thế đấy!
 
Hì hì, sửa lại là: "Kéo 3 lần roài, kéo goài!", hen?

Còn không thì disable cái button, giống như nhấn thôi kéo rồi là disable button "thôi kéo". Khỏi la làng, phiền lòng hàng xóm hơ.
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom