Trò chơi trong EXCEL đây, OK?!

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi SA_DQ, 26 Tháng tám 2005.

7,164 lượt xem

  1. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Logic trong EXCEL đây, OK?!

    Xin gới thiệu sơ lược trò chơi "BColor":
    Hàm Rnd() cho 4 màu ngẫu nhiên trong 6/7 màu để khuất sau 4 ô;
    Người chơi chọn 4 trong 6/7 màu & nhấn nút kiểm để máy cho biết kết quả so sánh với 4 màu trên; nếu đúng màu & đúng vị trí sẽ được báo X (& bị trừ 2 điểm- đầu ván biếu 71/76(7) điểm) nếu chỉ đúng màu sẽ báo O ( & trừ 1 điểm)
    Trò chơi tiếp tục ở các hàng dưới (qua mỗi hàng bị trừ 3 điểm); Có tổng cộng 10 hàng; ~ người chơi hay chỉ cần khoảng 5-7 dòng là xong ván (khi đó bốn màu đã chọn ở hàng này trùng với 4 màu ngẫu nhiên mà máy đã chọn ban đầu & đúng theo trật tự nữa.
    Ngày 29-30/08: Nút 7 dùng để chuyển đổi giữa 6 màu => 7 màu & ngược lại! Khi <> 7, nút có tác dụng dời vị trí
     
    Last edited: 5 Tháng chín 2005
    #1
  2. workman

    workman Thành viên hoạt động

    Bài viết:
    372
    Đã được thích:
    0
    Nơi ở:
    Ho Chi Minh
    Hay đấy. Tôi ủng hộ nhiệt tình. Tôi post file được rồi, khi nào xong bạn gửi cho tôi post lên cho.

    Trò crossword của bạn bửa hôm nọ không hiểu sao tôi không cách nào chạy được, dù đã bấm tổ hợp phím bạn cho, do đó không dám bình loạn ẩu.
     
    #2
  3. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    "Tặng các bạn Chương trình chơi CARO trên EXCEL":
    http://www.webketoan.com/forum/showthread.php?t=5993
    Bạn thử Vào Menu xem nó chạy trực tiếp được không?
    Mà trên màn hình có đáp án mà, phải không?
    Một số phương án không có đáp số (Đây giống với bài toán giải hệ phương trình vậy mà)
    :banana: Trước hẹn luôn; 13h30 ngày Hôm nay, OK!
    Ngày 29/08: Gởi cho bạn Workman nhưng chưa nhận được; Nên tôi đã nhờ Anh TV Hùng giúp; Xin cám ơn a. Hùng trước :lol:
     
    Last edited: 30 Tháng tám 2005
    #3
  4. tranvanhung

    tranvanhung Gãi ngứa

    Bài viết:
    2,976
    Đã được thích:
    9
    Nơi ở:
    Biên Hoà - Đồng Nai
    Đây là file excel mà bác SA_DQ gửi cho EFC !
     

    Các file đính kèm:

    #4
  5. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Hướng dẫn thực hiện CTrình!

    Phần chuẩn bị:
    ngày 19/9: B0: Khai báo một số biến dùng chung, như 1 vài biến chuỗi, một vái biến Integer dùng cho vòng lặp & 1 biến Integer để đếm điểm người chơi & gán cho nó điểm = 71/76 ứng với 6/7 màu.
    B1: Tạo các Macro tô các màu vào các ô cần thiết khi nhấn nút tương ứng;
    B2: Dùng hàm Rnd() chọn lấy 4 số biểu thị 4 màu ngẫu nhiên (có thể trùng nhau giữa các ô, kệ nó & càng hay!);
    B3: Khai báo 3 biến mảng (4 fần tử) cho 3 đối tượng của quy trình đối chiếu & kiểm tra: 1 biến cho các ô màu ngẫu nhiên (4 ô M); 1 biến cho 4 ô của người chơi nhập màu (4 ô N) & biến mảng cho các ô ghi kết quả (4 ô G) (trong đó M: ghi lại việc đã chọn 1/4 ô ngẫu nhiên đem Ssánh hay chưa; N- ghi nhận đã đem ô do người chơi đánh dấu đã đem đối chiếu hay chưa & G - để khẳng định đã ghi lên ô này hay chưa;
    B4: Tô các màu = màu nguyên thuỷ;
    (Toàn bộ fần này thực hiện bỡi nút lệnh New (có thể bấm CTRL+SHIFT+N để run)) :eek:know:
    19/9: Quá trình tô màu các ô của người chơi: Macro tô màu; Macro này thực thi tô màu tương ứng của các nút lệnh gởi đối số đến

    Sub ToMau(Iw As Integer)
    On Error GoTo Loi_ToMau
    Chu = Choose(iCot, "B", "C", "D", "E")
    Chu = Chu & CStr(4 + iHang)

    iCot = Choose(iCot, 2, 3, 4, 1) 'Chuyển cột khi đã tô xong màu
    Range(Chu).Select: Selection.Interior.ColorIndex = Iw
    Err_ToMau: Exit Sub
    Loi_ToMau: MsgBox Error$
    Resume Err_ToMau
    End Sub
    Ngày 21/09: Quan trọng nhất của phần viết chương trình BColor là phần kiểm tra & ghi nhận kết quả thực hiện theo từng hàng; Trước hết phải ghi nhận các ô mà người chơi đã chọn đúng màu & đúng vị trí để đánh dấu màu đen cho chữ [O]; Điều này ta phải lần lượt từ trái qua phải theo thói quen mà thôi, ghi kết quả cũng lần lượt từ ô trái nhất, thể hiện tuần tự [O] màu đen trước, [O] màu trắng sau; Khi thu được 4 chữ [O] màu đen => thực hiện thủ tục HetVan.
    Sau khi kiểm hết 4 ô đúng màu & vị trí, thì đến lượt kiểm màu không đúng vị trí so với ~ ô còn lại chưa đúng (nhờ các biến để loại trừ). Chuyện này phức tạp & dài dòng hơn trước nhiều!
     
    Last edited: 21 Tháng chín 2005
    #5
  6. workman

    workman Thành viên hoạt động

    Bài viết:
    372
    Đã được thích:
    0
    Nơi ở:
    Ho Chi Minh
    Rất hay và thông minh. Tôi mới mở thử, chưa có thời gian chơi. Để tối nay về chơi thử coi sao, mới nhìn coi bộ khá là khó.

    Tôi xưa nay rất dở mấy trò đoán mò, chắc là thua hoài quá.
     
    #6
  7. workman

    workman Thành viên hoạt động

    Bài viết:
    372
    Đã được thích:
    0
    Nơi ở:
    Ho Chi Minh
    Chơi hay. Đáng đồng tiền bát gạo.

    Tuy nhiên nếu lỡ dại click vào đâu đó trong lúc đang chơi thì bị trừ điểm oan. Bác SA DQ xem lại xem có cách nào khắc phục không?
     
    #7
  8. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Sub DanhGia()

    Sub DanhGia()
    Dim DaDanhGia(1 To 4) As Boolean
    Dim DaGhi(1 To 4) As Boolean
    ReDim DaChon(1 To 4) As Boolean
    10 '. Đúng màu & Đúng vị trí:
    Chu = "B" & CStr(4 + iHang): Range(Chu).Select
    If Mau(1) = Selection.Interior.ColorIndex Then
    GhiDau "G", 1 'Sub GhiDau dùng để đánh dấu (ghi nhận) đúng KQ [O]
    DaGhi(1) = -1
    DaDanhGia(1) = True: DaChon(1) = -1
    End If
    11 Chu = "C" & CStr(4 + iHang): Range(Chu).Select
    If Mau(2) = Selection.Interior.ColorIndex Then
    If DaGhi(1) = 0 Then
    Chu = "G": DaGhi(1) = True
    ElseIf DaGhi(1) Then
    Chu = "H": DaGhi(2) = True
    End If
    GhiDau Chu, 1
    DaDanhGia(2) = True: DaChon(2) = -1
    End If
    12
    Chu = "D" & CStr(4 + iHang): Range(Chu).Select
    If Mau(3) = Selection.Interior.ColorIndex Then
    If DaGhi(1) = 0 Then
    Chu = "G": DaGhi(1) = -1
    ElseIf DaGhi(1) Then
    If DaGhi(2) = 0 Then
    Chu = "H": DaGhi(2) = -1
    ElseIf DaGhi(2) = -1 Then
    Chu = "I": DaGhi(3) = -1
    End If
    End If
    GhiDau Chu, 1
    DaDanhGia(3) = True: DaChon(3) = -1
    End If
    13
    Chu = "E" & CStr(4 + iHang): Range(Chu).Select
    If Mau(4) = Selection.Interior.ColorIndex Then
    If DaGhi(1) = 0 Then
    Chu = "G": DaGhi(1) = -1
    ElseIf DaGhi(1) Then
    If DaGhi(2) = 0 Then
    Chu = "H": DaGhi(2) = -1
    ElseIf DaGhi(2) Then
    If DaGhi(3) = 0 Then
    Chu = "I": DaGhi(3) = -1
    ElseIf DaGhi(3) Then
    Chu = "J": DaGhi(4) = -1
    End If
    End If
    End If
    GhiDau Chu, 1
    DaDanhGia(4) = True: DaChon(4) = -1
    End If
    If DaGhi(4) Then
    HetVan
    End If
    20 '. Chỉ đúng màu & không đúng vị trí:
    Chu = "B" & CStr(4 + iHang): Range(Chu).Select
    If DaGhi(1) = 0 Then
    For ii = 2 To 4
    If Mau(ii) = Selection.Interior.ColorIndex Then
    GhiDau "G", 2
    DaDanhGia(ii) = -1: DaChon(1) = -1
    DaGhi(1) = -1
    End If
    Next ii
    ElseIf DaGhi(1) = -1 And DaGhi(2) = 0 And DaChon(1) = 0 Then
    For ii = 2 To 4
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "H", 2
    DaDanhGia(ii) = -1: DaChon(1) = -1
    DaGhi(2) = -1
    End If
    Next ii
    ElseIf DaGhi(2) = -1 And DaGhi(3) = 0 And DaChon(1) = 0 Then '?? ??
    For ii = 2 To 4
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "I", 2
    DaDanhGia(ii) = -1: DaChon(1) = -1
    DaGhi(3) = -1
    End If
    Next ii
    ElseIf DaGhi(3) = -1 And DaGhi(4) = 0 And DaChon(1) = 0 Then
    For ii = 2 To 4
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "J", 2
    DaDanhGia(ii) = -1: DaChon(1) = -1
    DaGhi(4) = -1
    End If
    Next ii
    End If
    '!!!! Cột C
    Chu = "C" & CStr(4 + iHang): Range(Chu).Select
    If DaGhi(1) = 0 Then
    For ii = 1 To 4
    If ii <> 2 And Mau(ii) = Selection.Interior.ColorIndex Then
    GhiDau "G", 2
    DaDanhGia(ii) = -1: DaChon(2) = -1
    DaGhi(1) = -1
    End If
    Next ii
    ElseIf DaGhi(1) = -1 And DaGhi(2) = 0 And DaChon(2) = 0 Then
    For ii = 1 To 4
    If ii <> 2 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "H", 2
    DaDanhGia(ii) = -1: DaChon(2) = -1
    DaGhi(2) = -1
    End If
    Next ii
    ElseIf DaGhi(2) = -1 And DaGhi(3) = 0 And DaChon(2) = 0 Then
    For ii = 1 To 4
    If ii <> 2 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "I", 2
    DaDanhGia(ii) = -1: DaChon(2) = -1
    DaGhi(3) = -1
    End If
    Next ii
    ElseIf DaGhi(3) = -1 And DaGhi(4) = 0 And DaChon(2) = 0 Then
    For ii = 1 To 4
    If ii <> 2 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "J", 2
    DaDanhGia(ii) = -1: DaChon(2) = -1
    DaGhi(4) = -1
    End If
    Next ii
    End If
    'Cột D ////
    Chu = "D" & CStr(4 + iHang): Range(Chu).Select
    If DaGhi(1) = 0 Then
    For ii = 1 To 4
    If ii <> 3 And Mau(ii) = Selection.Interior.ColorIndex Then
    GhiDau "G", 2
    DaDanhGia(ii) = -1: DaChon(3) = -1
    DaGhi(1) = -1
    End If
    Next ii
    ElseIf DaGhi(1) = -1 And DaGhi(2) = 0 And DaChon(3) = 0 Then
    For ii = 1 To 4
    If ii <> 3 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "H", 2
    DaDanhGia(ii) = -1: DaChon(3) = -1
    DaGhi(2) = -1
    End If
    Next ii
    ElseIf DaGhi(2) = -1 And DaGhi(3) = 0 And DaChon(3) = 0 Then
    For ii = 1 To 4
    If ii <> 3 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "I", 2
    DaDanhGia(ii) = -1: DaChon(3) = -1
    DaGhi(3) = -1
    End If
    Next ii
    ElseIf DaGhi(3) = -1 And DaGhi(4) = 0 And DaChon(3) = 0 Then
    For ii = 1 To 4
    If ii <> 3 And Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "J", 2
    DaDanhGia(ii) = -1: DaChon(3) = -1
    DaGhi(4) = -1
    End If
    Next ii
    End If
    'Cột E ////
    Chu = "E" & CStr(4 + iHang): Range(Chu).Select
    If DaGhi(1) = 0 Then
    For ii = 1 To 3 '4
    If Mau(ii) = Selection.Interior.ColorIndex Then ' ii<>3
    GhiDau "G", 2
    DaDanhGia(ii) = -1: DaChon(4) = -1
    DaGhi(1) = -1
    End If
    Next ii
    ElseIf DaGhi(1) = -1 And DaGhi(2) = 0 And DaChon(4) = 0 Then
    For ii = 1 To 3
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "H", 2
    DaDanhGia(ii) = -1: DaChon(4) = -1
    DaGhi(2) = -1
    End If
    Next ii
    ElseIf DaGhi(2) = -1 And DaGhi(3) = 0 And DaChon(4) = 0 Then
    For ii = 1 To 3
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "I", 2
    DaDanhGia(ii) = -1: DaChon(4) = -1
    DaGhi(3) = -1
    End If
    Next ii
    ElseIf DaGhi(3) = -1 And DaGhi(4) = 0 And DaChon(4) = 0 Then
    For ii = 1 To 3
    If Mau(ii) = Selection.Interior.ColorIndex And DaDanhGia(ii) = 0 Then
    GhiDau "J", 2
    DaDanhGia(ii) = -1: DaChon(4) = -1
    DaGhi(4) = -1
    End If
    Next ii
    End If

    DiemSo = DiemSo - 3
    Range("B2").Select: ActiveCell.Value = DiemSo
    Range("L" & CStr(4 + iHang)).Select
    iHang = 1 + iHang: iCot = 1

    End Sub
     
    Last edited: 28 Tháng chín 2005
    #8
  9. thanhnhan_53

    thanhnhan_53 Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    Tp.HCM
    Trò này cũng hay đó !
     
    #9
  10. workman

    workman Thành viên hoạt động

    Bài viết:
    372
    Đã được thích:
    0
    Nơi ở:
    Ho Chi Minh
    Tôi đùa ấy mà. Đây là game logic rất hay.

    À mà sao tôi chơi hay như vậy mà không được vào honor list há
     
    #10
  11. handung107

    handung107 Thành viên thân thiết

    Bài viết:
    576
    Đã được thích:
    13
    Nơi ở:
    VN
    Đây là File "Cờ cá ngựa" của bạn TranXuanThien tôi Down từ www.echip.com.vn, các bạn tham khảo xem nhé
     
    #11

Chia sẻ trang này