Professional Documents
Culture Documents
- CENTEA -
CENTEA ñã có những loạt bài hướng dẫn sử dụng ứng dụng Visual Basic
Application (VBA) ñể tạo trò chơi ô chữ, tạo slide trả lời câu hỏi trắc nghiệm trong
PowerPoint. Chúng tôi xin tiếp tục gửi ñến Thầy Cô loạt bài hướng dẫn S dng VBA ñ
to trò chi Trúc Xanh ngay trên PowerPoint mà không cần phải sử dụng những
chương trình khác.
Hình 1
ðể cho cân ñối, do các hình của CENTEA ñều có cùng 1 kích cỡ là rộng 128 pixel
(px) và cao 90 px nên CENTEA sẽ thiết lập các ô ở dòng 1 cách lề trên 110 px, các ô ở
dòng 2 cách lề trên 200 px, các ô ở dòng 3 cách lề trên 290px, các ô ở dòng 4 cách lề trên
380 px. Tương tự, các ô ở cột 1 cách lề trái 50px, cột 2 cách lề trái 178 px, cột 3 cách lề
trái 306px và cột 4 cách lề trái 434 px.
Ngoài ra, quý Thầy Cô cần quy ñịnh trước những cặp ở 2 ô nào sẽ giống hình nền.
Ở ñây, CENTEA lựa chọn là 1 – 15 , 2 – 8, 3 – 9, 4 – 16, 5 – 13, 6 – 11, 7 – 12, 10 – 14.
Cách làm như sau:
Bước 2.1: Trên thanh công cụ Control Toolbox, click chọn nút Image (Picture) –
nút ở cuối cùng bên trái của thanh công cụ. Sau khi click chọn, con trỏ chuột sẽ hiện dấu
+, thầy cô di chuyển ñến vùng cần tạo, nhấn chuột
trái và tạo 1 khung hình. ðây là khung hình số 1.
ðể khung hình này nằm ở dòng 1, cột 1 với các
thông số vừa nêu, ta sẽ khai báo thuộc tính
Properties của hình 1 như sau:
Click phải vào ô hình, chọn Properties:
Chọn tab Alphabetic.
Name: ñặt như mặc ñịnh Image1
Enabled: True (ô hình ñược kích hoạt)
Height: 90 (chiều cao của hình)
Left: 50 (do ở cột 1 nên lề trái là 50 px)
Picture: Thầy Cô click vào góc phải của ô trên . Khi ñó chương trình sẽ hiện ra hộp
thoại, Thầy Cô chọn hình ñầu tiên cho ô số 1
Picture Alignment: 2-fmPictureAligment Center (hình ñược canh giữa ô)
Picture SizeMode: chọn chế ñộ 0
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (hình ñược hiển thị)
Width: 128 (ñộ rộng của hình).
Bước 2.2: Sau khi có ô hình số 1, Thầy Cô trở lại màn hình soạn thảo của PP.
Copy ô số 1 và dán vào vị trí thích hợp, khi ñó ta có ô số thứ 2, và khai báo các thuộc tính
cho ô thứ 2 tương tự như ô 1 là:
Height: 90 (chiều cao của hình)
Left: 178 (do ở cột 2 nên lề trái là 178 px vì bằng 50px + 128px)
Picture: Thầy Cô click vào góc phải của ô trên . Khi ñó chương trình sẽ hiện
ra hộp thoại, Thầy Cô chọn hình cho ô số 2, theo quy ước phía trên: 1 – 15 , 2 – 8,
3 – 9, 4 – 16, 5 – 13, 6 – 11, 7 – 12, 10 – 14
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (hình ñược hiển thị)
Width: 128 (ñộ rộng của hình)
Tương tự như thế cho ô số thứ 3 và thứ 4.
Bước 2.3: Khi Thầy Cô ñã có 4 ô hình số 1, 2, 3, 4. Thầy Cô chọn và copy cả 4 ô
rồi dán vào vị trí thích hợp. Khi ñó Thầy Cô sẽ có các ô hình số 5, 6, 7, 8. Và khai báo
tương tự như trên. Tuy nhiên, do 4 ô này nằm ở dòng 2, nên mục Top có giá trị 200
(110px + chiều cao của hình ở dòng 1 là 90px)
Bước 2.4: Tương tự, Thầy Cô chọn và copy cả 8 ô hình vừa chọn và dán vào 1 vị
trí thích hợp. Ta sẽ có 8 ô hình còn lại. Thầy Cô khai báo tương tự như ở bước 2.2 và 2.3.
Tuy nhiên, mục Top của các ô ở dòng 3 có giá trị 290, và mục Top của các ô ở dòng 4 có
giá trị 380.
Bước 2.5: kiểm tra là hình ảnh của 16 ô hình vừa tạo và bảo ñảm mỗi hình chỉ xuất
hiện 2 lần ñể có ñúng 8 cặp.
Bước 3: Tạo các nhãn che các ô hình lại
Ta tạo bước này, ñể che 16 ô hình vừa tạo ở phía trên, mục ñích ñể người chơi
không nhìn thấy ñược hình nền. Chỉ khi click vào ô bất kỳ thì nhãn sẽ mất ñể hiện hình bị
che ở dưới.
Bước 3.1: Tạo nhãn ñầu tiên có kích cỡ và vị trí y như hình 1. Thầy Cô click vào
nút có hình chữ A trên thanh công cụ Control Toolbox (nằm ở cột bên phải). Sau khi
click chọn, con trỏ chuột sẽ hiện dấu +, thầy cô di chuyển ñến vùng cần tạo, nhấn chuột
trái và tạo 1 khung cho nhãn. ðây là nhãn số 1. ðể nhãn này che khuất khung hình nằm ở
dòng 1, cột 1, ta sẽ khai báo thuộc tính Properties của nhãn này với các thông số trùng với
ô hình thứ 1 như sau:
Name: ñể như mặc ñịnh là Label 1
Autosize: False (không tự ñộng ñiều chỉnh
kích thước)
Back Color: cần chọn màu nền, mục ñích ñể
che ô hình thứ 1.
Back Style: 1-fmBackStyleOpaque (chọn chế
ñộ này ñể không nhìn thấy những gì phía dưới
nhãn.
Caption: 1 (ñể hiện số 1 ngay trên nhãn ñể
người chơi gọi ô số cho dễ)
Height: 90 (cùng chiều cao với ô hình)
Left: 50 (cách lề trái 50 như ô hình số 1)
TextAlign: 2 – fmTextAlignCenter
Top: 110
Visible: True ( ñể nhãn ở chế ñộ hiện nhằm
che ô hình số 1)
Width: 128 WordWrap: True
Sau khi khai báo các thuộc tính cho nhãn số 1, Thầy Cô sẽ có hình sau:
Bước 3.2: làm tương tự như bước 2.2 ñể tạo nhãn thứ 2. Nghĩa là:
Copy nhãn số 1 và dán vào vị trí thích hợp, khi ñó ta có nhãn số thứ 2, và khai báo
các thuộc tính cho nhãn thứ 2 tương tự như nhãn 1 là:
Name: ñể như mặc ñịnh là Label 1
Autosize: False (không tự ñộng ñiều chỉnh kích thước)
Back Color: cần chọn màu nền, mục ñích ñể che ô hình thứ 1.
Back Style: 1-fmBackStyleOpaque (chọn chế ñộ này ñể không nhìn thấy
những gì phía dưới nhãn.
Caption 2 (ñể hiện số 2 ngay trên nhãn ñể người chơi gọi ô số cho dễ)
Height: 90 (chiều cao của hình)
Left: 178 (do ở cột 2 nên lề trái là 178 px)
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (nhãn ñược hiển thị)
Width: 128 (ñộ rộng của hình)
Tương tự như thế cho ô số thứ 3 và thứ 4.
Bước 3.3 và 3.4: làm hoàn toàn tương tự bước 2.3 và 2.4. Sau khi hoàn thành,
Thầy Cô sẽ có hình như sau:
Bước 4: Tạo nút lệnh Reset ñể trả về nguyên trạng ban ñầu sau khi chơi xong. ðiều này
nhằm làm cho lần trình diễn kế tiếp không bị lộ.
Thầy Cô nhấn vào nút lệnh Command Button (nút thứ 3 ở cột bên trái), và tạo ở vị
trí thích hợp, trong Properties của nút lệnh này ñổi tên (Name) là Reset và mục Caption
cũng là: Reset.
Bước 5: viết các lệnh cho sự kiện các ô ñược click chọn
Ý tưởng của CENTEA ở ñây như sau: khi người chơi click vào ô số 1, thì nhãn
số 1 sẽ mất ñi và hiện hình nền của ô số 1, ñồng thời kiểm tra ñây là lần chọn thứ
nhất hay thứ 2, nếu thứ 1 thì ñược chọn tiếp 1 ô khác, nếu là lần thứ 2 thì sẽ kiểm tra
xem hai hình nền có giống nhau không. Nếu giống thì ñể lại 2 ô hình, nếu sai thì hiện
lại 2 nhãn ñể che 2 ô hình ñó lại.
Do chương trình không biết ñược ln nào là ln 1, ln nào là ln 2, nên
CENTEA ñưa vào bin n ñ ghi nh n STT c
a ln chn ñó, khi ñó nu n l thì là ln
1, n ch
n là ln 2, vì vậy CENTEA ñưa thêm bin m. Ngoài ra, ñể kim tra ln 1, ln 2
là các ô hình nào, CENTEA ñưa thêm 2 bin l và p vào.
Cách làm như sau:
Bước 5.1: Click phải vào nhãn số 1, chọn View Code, khung soạn lệnh hiện ra như
sau:
Private Sub Label1_Click()
End Sub
Ta di chuyển lên dòng phía trên dòng Private Sub, ta gõ dòng lệnh sau:
Public n As Integer, l As Integer, m As Integer, p As Integer (mục ñích
khai báo các biến trong toàn bộ chương trình). Mặc ñịnh n , l , m , p bằng 0
Bước 5.2: tạo các lệnh cho sự kiện ô số 1 ñược chọn như ý tưởng trên của
CENTEA. Ta nhập các lệnh sau vào dòng giữa 2 dòng Private Sub Label1_click() và End
Sub
Nếu là chẵn thì ghi nhận ô chọn lần 2 là ô số 1. Nếu chọn lần 2 thì thực
hiện kiểm tra sự giống nhau với hình chọn ở lần 1.
Bước 5.3: Tạo chương trình con Pause. Ở khung soạn thảo lệnh, ta nhận ñoạn
lệnh sau:
Bước 5.4: Tạo thủ tục con kiemtra. Ở khung soạn lệnh ta tiếp tục nhập các dòng
lệnh như sau:
Nếu các cặp hình trùng nhau. Ví dụ: lần 1 là hình số 1, lần 2 là hình số 15 hoặc lần
1 là hình 15 còn lần 2 là hình số 1, thì giữ nguyên 2 hình và trả hai giá trị l, p về 0.
Nếu sai thì kiểm tra lần 1 hình nào ñược chọn và lần 2 hình nào ñược chọn, ñể ẩn
hai hình ñó ñi, và hiện lại 2 nhãn ñược ứng của 2 ô số ñó. Do ñó, chúng ta tạo thêm 2 thủ
tục con là kiemtra1 và kiemtra2 ñể thực hiện yêu cầu trên
Nếu l (lần 1) là 1 thì nhãn 1 sẽ hiện và hình 1 sẽ ẩn. tương tự như vậy cho ñến giá trị l
bằng 16. Và tương tự, nếu p (lần 2) là 1 thì nhãn 1 sẽ hiện và hình 1 sẽ ẩn, tương tự cho ñến
giá trị p bằng 16.
Bước 5.6: tạo các sự kiện cho các ô còn lại ñược chọn. Bước này làm hoàn
toàn tương tự như bước 5.2
Sau khi hoàn thành bước 6, Quý Thầy Cô ñã có thể trình diễn sản phẩm của mình 1
cách suôn sẻ. ðể thuận tiện, cho quý Thầy Cô, các ñoạn lệnh của chương trình ñã ñược
CENTEA lưu vào file code.txt. Sau khi thc hin xong ti bưc 4, Thầy Cô có thể sao
chép và dán ñoạn lệnh trong file code.txt vào khung soạn thảo lệnh của VBA là hoàn tất
chương trình.
Như vậy, CENTEA vừa giới thiệu xong cách tạo trò chơi ñoán hình Trúc Xanh. Hy
vọng sẽ giúp ích cho các Thầy Cô trong quá trình giảng dạy. Ở ñây, phiên bản ñầu tiên
này còn mở, nói chung còn có thể cải tiến nhiều: ví dụ như tạo ô hình 5x5, 6x6 hoặc tạo
chế ñộ thể hiện hình 1 cách ngẫu nhiên thay vì cố ñịnh 1 cách thủ công như ở phiên bản
này. CENTEA hy vọng các cải tiến trên sẽ ñược ra mắt trong các phiên bản kế tiếp.