[VBA] Viết Chương Trình Chơi Game Oẳn Tù Tì Với Máy Tính

Menu Tự học VBA
  • Trang chủ
  • Diễn đàn Bài viết mới Tìm chủ đề
  • Có gì mới Bài viết mới Hoạt động mới nhất
Đăng nhập Đăng ký Có gì mới? Tìm kiếm

Tìm kiếm

Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm kiếm nâng cao…
  • Bài viết mới
  • Tìm chủ đề
Menu Đăng nhập Đăng ký
  • Cách upload ảnh lên diễn đàn
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Thành viên tự giúp nhau
[VBA] Viết chương trình chơi game oẳn tù tì với máy tính
  • Thread starter TomShaki
  • Ngày gửi 27/10/20
T

TomShaki

Yêu THVBA
Em mới học VBA mong mọi người giúp đỡ 2 bài sau ạ 1. Tạo chương trình để chơi với máy tính trên Excel Khi người dùng chọn "Búa", "Kéo", "Giấy" và nhấp vào nút [Game], ① Máy tính chọn ngẫu nhiên "Búa", "Kéo", "Giấy ② Hãy hiển thị kết quả thắng hoặc thua 2.Nhập chuỗi ký tự vào một ô và nhấp vào nút để xuất chuỗi ký tự đã nhập sang ô khác theo thứ tự ngược lại. (Ví dụ: Nếu nhập "ABC", xuất "CBA") Bài này em dùng hàm strReverse để chuyển đổi nhưng nếu dùng vòng lặp thì như thế nào ạ? Mong mọi người giúp đỡ!!! Sửa lần cuối: 27/10/20 L

linhlbk

Yêu THVBA
@TomShaki Bài toán 1: Bài toán nhỏ nên viết như này được, còn bài toán phức tạp thì sẽ viết khác. Mã: Sub kiemtra(kq As Integer) rand = Int(3 * Rnd) + 1 Select Case kq Case 1: If rand = 1 Then MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Dam" & Chr(10) & "Hoa" ElseIf rand = 2 Then MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Keo" & Chr(10) & "Ban Thang" Else: MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Bao" & Chr(10) & "Ban Thua" End If Case 2: If rand = 1 Then MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Dam" & Chr(10) & "Ban Thua" ElseIf rand = 2 Then MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Keo" & Chr(10) & "Hoa" Else: MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Bao" & Chr(10) & "Ban Thang" End If Case 3: If rand = 1 Then MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Dam" & Chr(10) & "Ban Thang" ElseIf rand = 2 Then MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Keo" & Chr(10) & "Ban Thua" Else: MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Bao" & Chr(10) & "Hoa" End If End Select End Sub Sub call_op() If Sheet1.op1.Value = True Then Call kiemtra(1) ElseIf Sheet1.Op2.Value = True Then Call kiemtra(2) ElseIf Sheet1.Op3.Value = True Then Call kiemtra(3) End If End Sub Bài toán 2: Mã: Sub abc() Dim str As String str = "DepTraiCoGiSai" kytu = "" str_reverse = "" For i = Len(str) To 1 Step -1 kytu = Mid(str, i, 1) str_reverse = str_reverse & kytu Next Cells(1, 1) = str_reverse End Sub Sửa lần cuối: 27/10/20 D

Deleted member 1392

Guest
Bài toán 1: Rảnh rang ngồi làm vui chút, xem như tập code. Bạn cần đăng nhập để thấy hình ảnh Link tải: Bạn cần đăng nhập để thấy link Sửa lần cuối bởi điều hành viên: 27/10/20 L

linhlbk

Yêu THVBA
Kute pho mai que quá bác :) T

TomShaki

Yêu THVBA
linhlbk nói: @TomShaki Bài toán 1: Bài toán nhỏ nên viết như này được, còn bài toán phức tạp thì sẽ viết khác. Mã: Sub kiemtra(kq As Integer) rand = Int(3 * Rnd) + 1 Select Case kq Case 1: If rand = 1 Then MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Dam" & Chr(10) & "Hoa" ElseIf rand = 2 Then MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Keo" & Chr(10) & "Ban Thang" Else: MsgBox "Ban chon: Dam" & Chr(10) & "May chon: Bao" & Chr(10) & "Ban Thua" End If Case 2: If rand = 1 Then MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Dam" & Chr(10) & "Ban Thua" ElseIf rand = 2 Then MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Keo" & Chr(10) & "Hoa" Else: MsgBox "Ban chon: Keo" & Chr(10) & "May chon: Bao" & Chr(10) & "Ban Thang" End If Case 3: If rand = 1 Then MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Dam" & Chr(10) & "Ban Thang" ElseIf rand = 2 Then MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Keo" & Chr(10) & "Ban Thua" Else: MsgBox "Ban chon: Bao" & Chr(10) & "May chon: Bao" & Chr(10) & "Hoa" End If End Select End Sub Sub call_op() If Sheet1.op1.Value = True Then Call kiemtra(1) ElseIf Sheet1.Op2.Value = True Then Call kiemtra(2) ElseIf Sheet1.Op3.Value = True Then Call kiemtra(3) End If End Sub Bài toán 2: Mã: Sub abc() Dim str As String str = "DepTraiCoGiSai" kytu = "" str_reverse = "" For i = Len(str) To 1 Step -1 kytu = Mid(str, i, 1) str_reverse = str_reverse & kytu Next Cells(1, 1) = str_reverse End Sub Nhấn để mở rộng...
Em cảm ơn ạ! Cho e hỏi câu lệnh Len kia là thế nào ạ? T

TomShaki

Yêu THVBA
Ngày Mới nói: Bài toán 1: Rảnh rang ngồi làm vui chút, xem như tập code. Bạn cần đăng nhập để thấy hình ảnh Link tải: Bạn cần đăng nhập để thấy link Nhấn để mở rộng...
Em cảm ơn ạ, cute quá. Nhưng cho e hỏi thêm là làm thế nào để tạo ra các biểu tượng và chọn được như thế kia ạ? Với cả phần module ModFunc có đoạn Unprotect/ Protect và Visible giải thích thêm cho e được không ạ. Em mới học nên chưa biết nhiều mong được hướng dẫn ạ!! Sửa lần cuối: 27/10/20 L

linhlbk

Yêu THVBA
@TomShaki Len để lấy độ dài chuỗi. Cho vòng lặp chạy từ độ dài chuỗi về đến 1 và step -1. Dùng mid để lấy từng ký tự từ phải qua trái Bạn ngày mới thêm đoạn protect vs unprotect để khóa/mở khóa sheet thôi, ng dùng đỡ thao tác các cells D

Deleted member 1392

Guest
@TomShaki Các biểu tượng đó không được tạo ra. Về bản chất, nó có sẵn ở đó rồi, khi bạn nhấn vào mỗi kéo, búa hay bao, nó sẽ ẩn hiện tương ứng với các biểu tượng bạn đã chọn. VD: Khi chọn kéo, biểu tượng kéo sẽ hiện, bao và búa sẽ ẩn. Đoạn UnProtect và Protect nhằm bảo vệ cấu trúc của sheet, tránh tình trạng người dùng kéo lung tung gây lỗi. Ban đầu Sheet đã bị khóa, nên sẽ không thao tác được nên phải dùng lệnh Unprotect để mở khóa Sheet cho code chạy. Sau khi chạy code hoàn thành, Sheet sẽ được Protect trở lại. T

TomShaki

Yêu THVBA
linhlbk nói: @TomShaki Len để lấy độ dài chuỗi. Cho vòng lặp chạy từ độ dài chuỗi về đến 1 và step -1. Dùng mid để lấy từng ký tự từ phải qua trái Bạn ngày mới thêm đoạn protect vs unprotect để khóa/mở khóa sheet thôi, ng dùng đỡ thao tác các cells Nhấn để mở rộng...
Dạ, em cảm ơn ạ😇😇 T

TomShaki

Yêu THVBA
Ngày Mới nói: @TomShaki Các biểu tượng đó không được tạo ra. Về bản chất, nó có sẵn ở đó rồi, khi bạn nhấn vào mỗi kéo, búa hay bao, nó sẽ ẩn hiện tương ứng với các biểu tượng bạn đã chọn. VD: Khi chọn kéo, biểu tượng kéo sẽ hiện, bao và búa sẽ ẩn. Đoạn UnProtect và Protect nhằm bảo vệ cấu trúc của sheet, tránh tình trạng người dùng kéo lung tung gây lỗi. Ban đầu Sheet đã bị khóa, nên sẽ không thao tác được nên phải dùng lệnh Unprotect để mở khóa Sheet cho code chạy. Sau khi chạy code hoàn thành, Sheet sẽ được Protect trở lại. Nhấn để mở rộng...
Em cảm ơn ạ! Em vẫn chưa hiểu đoạn biểu tượng lắm ạ, có phải ban đầu sẽ giống như tạo nút button không ạ? D

Deleted member 1392

Guest
@TomShaki Mỗi lần ẩn hiện kéo, búa, bao, ô bên dưới các biểu tượng đó cũng sẽ cho thêm 1 giá trị. Kéo = 1, búa = 2, bao = 3. Dựa vào giá trị này lập các điều kiện if để xác định bên nào thẳng, bên nào thua. Các biểu tượng này chỉ là các Shape, Image bình thường thôi nha ! T

TomShaki

Yêu THVBA
Cho em hỏi thêm một chút ạ. Bài chơi oẳn tù tì e đang làm theo một cách khác là Có 3 shape đao, búa,keo ấn chọn shape nào thì sẽ hiện ra shape tương ứng ở một ô riêng biệt.Nhưng e đang bị mắc đoạn là ở lần chơi tiếp theo thì kết quả cũ không được xóa đi nên các shape hiện ra chồng lên nhau. Em lên mạng tìm được phương thức Intersect Ví dụ em cho hiện kết quả ra ô E7 và muốn shape tự động xóa đi khi chơi lượt khác sẽ viết là: Mã: Dim img As Shape For Each img In ActiveSheet.Shapes  If Not Intersect(Range("E7"),img.TopLeftCell) Is Nothing Then     img.Delete  End If Next img Em đã thử và xóa được nhưng không hiểu cách thức của Intersect như thế nào, anh/chị chỉ giúp em với được không ạ. Ngoài ra còn cách nào khác có thể xóa không ạ? Sửa lần cuối bởi điều hành viên: 28/10/20 D

Deleted member 1392

Guest
@TomShaki Bạn nên gởi file lên thì hay hơn....! T

TomShaki

Yêu THVBA
Ngày Mới nói: @TomShaki Bạn nên gởi file lên thì hay hơn....! Nhấn để mở rộng...
Em cảm ơn ạ, e giải quyết được rồi ạ. file e làm ở máy công ty nên không được mang về nhà nên hơi bất tiện tí mn thông cảm ạ. Lần sau e sẽ tự tạo file rồi gửi lên cho dễ^^ Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Thành viên tự giúp nhau
Top

Từ khóa » Viết Chương Trình Trò Chơi Oẳn Tù Tì Java