Thiết kế trò chơi Điền số vào bảng

pdf29 trang | Chia sẻ: TA TA | Ngày: 09/03/2026 | Lượt xem: 12 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Thiết kế trò chơi Điền số vào bảng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
2017 S ố chào mừng ngày khai trường 5 - 9 - 2017 Thiết kế trò chơi: Điền số vào bảng Trò chơi Điền số vào bảng Chúng ta cùng thiết kế chương trình Điền số vào bảng, mở rộng hơn của bài toán Điền số vào dãy (chương trình 1). Có thể hiểu 1 bảng số như một dãy số hoặc có thể coi bảng số như một ma trận số. Trong chương trình này chúng ta cùng thiết kế bài toán tìm số cho bảng ma trận 3 x 3. Có thể tổng quát cho ma trận kích thước khác. Giao diện chương trình sẽ gần tương tự như bài toán điền số vào dãy số. Dien so vao bang.sb2 Bài toán tìm và điền số vào bảng (ma trận), tổng quát hơn bài toán điền số vào dãy. Kịch bản, yêu cầu chương trình. - Chương trình sẽ tự động sinh các bài toàn điền số vào bảng. Trong bảng số (3 x 3) sẽ hiện các số, trong đó có 1 ô hiện dấu ? mà người dùng cần tìm. Giáo viên đóng vai MC sẽ thông báo nội dung bài toán trên màn hình. Phía dưới hiện 4 đáp án của bài toán. 2 | C S 4 S 1 3 - 2017 Vị trí cần tìm và điền số sẽ có dấu ?. Vị trí này có thể ở 1 ô bất kỳ trong bảng số. Tìm số bằng phương pháp trắc nghiệm. Có thể dùng phương pháp điền trực tiếp. - Người chơi sẽ làm bài bằng cách nháy lên một trong những đáp án phía dưới. Nháy lên một trong các nút A, B, C, D. - Nếu làm sai Giáo viên thông báo sai và yêu cầu làm tiếp tục bào toán này. Làm sai bị trừ 1 điểm. Phải thực hiện giải bài liên tục cho đến khi làm xong. - Nếu làm đúng, giáo viên thông bào đúng. Tại ô có dấu ? sẽ biến mất và hiện đáp số đúng của bài toán. Làm đúng được thưởng 10 điểm. Nút xuất hiện. Người chơi nháy lên nút này để tự động chuyển sang bài tiếp theo. Đáp số đúng hiện trên bảng. Nút Next xuất hiện để người chơi nháy lên và chuyển sang câu hỏi tiếp theo. Các nhân vật chính Biểu tượng Tên nhân vật Chức năng và hoạt động Các chú ý khác Đối tượng Đối tượng này được xây Bộ dữ liệu Math dựng đặc biệt để lưu trữ tất chính lưu dữ cả các dữ liệu và thuật toán liệu của các sinh tự động các bài toán thuật toán sẽ là và dữ liệu của chương dữ liệu riêng trình. (local) của đối tượng này. Giáo viên Giáo viên đóng vai trò là người dẫn chương trình và thực hiện giao tiếp với ngưởi chơi. Các nút A, B, Các nút dành cho người Nháy lên nút C, D chơi lựa chọn đáp án của này sẽ sinh ra trò chơi. Mỗi lần chỉ được thông điệp nháy chuột 1 lần lên 1 nút Done. lệnh này. Nút Câu hỏi Nhân vật này chỉ có nhiệm (Question) vụ hiển thị như 1 dấu hỏi tại vị trí cần điền số. Khi người dùng đã chọn đáp án, hình ảnh này sẽ ẩn đi, và tại vị trí này sẽ hiện đáp án đúng của bài toán. Biểu tượng Tên nhân vật Chức năng và hoạt động Các chú ý khác Nút Next Nút này sẽ chỉ hiện khi Nháy lên nút người chơi đã làm xong 1 này sẽ sinh ra bài. Khi người dùng nháy thông điệp lên nút này thì sẽ bắt đầu 1 Reset. bài toán tiếp theo. Đối tượng Nhân vật này có nhiệm vụ Đối tượng này Number hiển thị đáp số của bài toán có 11 trang sau khi người dùng nháy phục với hình chuột nhập đáp án. ảnh các số từ 0 đến 9 và dấu trừ (-). Tên của trang phục cũng là 0 đến 9. Dấu trừ có tên minus. Một số phân tích thiết kế bài toán. (a) Thể hiện lưới ma trận. Tọa độ của lưới ma trận 3 x 3 của chương trình được tính theo bảng sau. Số liệu được đo tại tâm của các ô lưới này. 2 mảng X-list, Y-list sẽ lưu lại dãy 9 tọa độ theo X, Y của các điểm này. 75 1 2 3 25 4 5 6 - 25 7 8 9 -65 45 155 (b) Bài toán và thuật toán sinh bảng số Vì một lưới (ma trận) số có thể hiểu theo cả 2 nghĩa: 1 dãy số (9 số) và 1 ma trận (3 x 3), do đó sẽ phân biệt 2 loại thuật toán số. (1) thuật toán sinh dãy 9 số có qui luật. (2) thuật toán sinh ma trận 3 x 3 số theo qui luật. Các bài toán, qui luật sinh dãy số. Các thuật toán sinh dãy số này tương tự như đã trình bày trong chương trình Điền số vào dãy, sự khác biệt ở đây là số lượng dãy số = 9 và vị trí hiện câu hỏi có thể bất kỳ. Stt Mô tả qui luật dãy số Ví dụ 1 Dãy số chẵn liên tục 2 4 6 8 10 12 14 16 2 Dãy số lẻ liên tục 1 3 5 7 9 11 13 15 17 19 3 Dãy số nguyên tố liên tục 2 3 5 7 11 13 17 19 23 4 Dãy số Fibonaci 1 1 2 3 5 8 13 21 5 Dãy số chính phương 1 4 9 16 25 36 6 Dãy số lập phương 1 8 27 64 125 7 Dãy các số tạo thành 1 cấp số 1 4 7 10 13 16 19 22 cộng. 8 Dãy số tạo thành 1 cấp số 3 6 12 24 48 nhân. Các bài toán, qui luật sinh ma trận số. Sau đây là một số thuật toán sinh ma trận 3 x 3 số, các thuật toán này sẽ được trình bày trong phần sau. Stt Mô tả qui luật cho ma trận Ví dụ số 1 Cột cuối cùng là tổng (hiệu, 1 3 4 tích) các cột trước đó. 3 7 10 -1 -6 - 7 2 Hàng cuối cùng là tổng (hiệu, 1 3 5 tích) các hàng phía trên. -1 0 9 0 3 14 3 Các số trong ma trận là 1 giao hoán của dãy {1, 2, 3, , N} 4 Các số trong ma trận là 1 giao hoán của dãy {12, 22, 32, , N2} 5 Mỗi hàng (cột) là một cấp số cộng (nhân) với cùng công sai (công bội). 6 Ma trận đối xứng với các phần tử trên đường chéo bằng nhau. Bộ các biến nhớ dùng để lưu trữ bộ dữ liệu được sinh bởi chương trình đều là các biến nhớ riêng của nhân vật Math. Stt Tên biến nhớ Ý nghĩa Chú ý 1 pNumber Số lượng phần tử của dãy sẽ được (biến nhớ) sinh tự động. Giá trị có trong chương trình là pNumber = 6. 2 NumList Dãy số chính (gốc) được sinh tự (list) động của thuật toán. 3 pMNumber Vị trí của dãy sẽ có dấu hỏi ?. mặc (biến nhớ) định giá trị này = pNumber. Chú ý: trong 1 số thuật toán yêu cầu bắt buộc pMNumber = pNumber. Trong chương trình này, giá trị này có thể nhận ngẫu nhiên từ 1 đến 9. 4 pList Dãy 4 phương án được sinh tự (list) động. Đây chính là các giá trị ứng với các phương án A, B, C, D. 5 sList Dãy 4 giá trị chỉ ra phương án nào (list) đúng, phương án nào sai. Theo qui định giá trị = 0 (sai), = 1 (đúng). 6 AList, BList, 3 mảng 3 chiều tương ứng với 3 (list) CList hàng dữ liệu của bảng. Các mảng này sẽ được sử dụng khi cần sinh bộ dữ liệu đặc thù cho ma trận số. Chú ý: các thuật toán với ma trận số sẽ làm việc với các bảng này. (c) Biểu diễn số trong ô lưới Một vấn đề thiết kế quan trọng nữa là cách thể hiện số trên lưới ma trận 3 x 3. Nhân vật Number sẽ có chức năng thể hiện các số bằng hình ảnh trên màn hình. Vì yêu cầu thể hiện cả các số nguyên âm nên trang phục của đối tượng này sẽ bao gồm các số 0, 1, 2, ., 9 và cả dấu -. Trang phục của đối tượng Number bao gồm các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 và dấu -. Dấu - đặt ở cuối cùng, trang phục thứ 11. Chúng ta thiết kế nhân vật Number có các chữ số với cùng 1 độ rộng, ký hiệu là dx. Sơ đồ sau tính khoảng cách từ tâm của số đến chữ số bên trái ngoài cùng của số này. Phân biệt 2 trường hợp khi số cần thể hiện có số các chữ số là lẻ hay chẵn. Từ đó suy ra công thức tính khoảng cách này. length = 5 length = 4 Sơ đồ cách tính khoảng cách từ tâm của 1 số đến chữ số bên trái 36578 3657 ngoài cùng. Khoảng cánh này = Khoảng cánh này = 2dx = length/2 - 0.5 1.5dx = length/2 - 0.5 Thủ tục sẽ được xây dựng là: Show_Number center: size Thủ tục này sẽ thể hiện số N tại vị trí (X,Y) lấy làm tâm với kích thước % so với kích thước gốc của đối tượng số này. Các tham số chính của thủ tục và được dùng trong thủ tục bao gồm: Tham số. biến Ý nghĩa nhớ N (tham số) Số nguyên gốc cần thể hiện trên màn hình. Số này có thể là âm hoặc dương. X, Y (tham số) Tọa độ tâm chính giữa của số được thể hiện. size (tham số) (tính bằng %) Số được thể hiện sẽ có kích thước bằng chính giá trị này (tính theo %) so với nhân vận gốc. dx (biến nhớ) Độ rộng thực tế của các ký tự tương ứng với size. Thông số này được tính bằng công thức: dx = OriginSize * size / 100. OriginSize (biến Độ rộng của các ký tự ở chế độ gốc (100%). Giá nhớ) trị này sẽ đo trên thực tế tại cửa sổ Costume. Trong chương trình đã thiết kế, giá trị này = 22. CurrSize (biến Kích thước hiện thời của nhân vật Number. Sau nhớ) khi thể hiện xong số, thủ tục sẽ trả lại kích thước của nhân vật trước khi chạy lệnh này. N.temp (biến Số trung gian dùng để lưu số cần thể hiện nếu N < nhớ) 0. Tính dx = độ rộng thực tế của các chữ số. Chuyển kích thước về giá trị size. Di chuyển về bên trái của số sẽ thể hiện. Nếu N < 0 thì thể hiện dấu - đầu tiên bằng lệnh stamp. Thể hiện lần lượt các chữ số từ trái sang phải bằng lệnh stamp, độ rộng mỗi chữ = dx. Chuyển trả kích thước về giá trị ban đầu. Thiết kế bộ dữ liệu chính Stt Tên biến nhớ Ý nghĩa Chú ý 1 Matrix.List 5 biến nhớ tổng thể lưu 5 giá trị (list) đầu tiên của dãy. Bài toán chính là tìm phần tử tiếp theo (một cách hợp lý) của dãy trên. 2 pA, pB, pC, 4 phương án của bài toán. Trong 4 pD (biến nhớ) phương án này sẽ có 1 phương án đúng. 3 pCorrect (biến Biến nhớ chỉ ra số thứ tự của nhớ) phương án đúng trong số 4 phương án trên. Biến nhớ này không hiện trên màn hình. 4 Choice (biến Biến nhớ ghi lại phương án lựa nhớ) chọn của người dùng. Như vậy Stt Tên biến nhớ Ý nghĩa Chú ý nếu Choice=pCorrect thì làm đúng, ngược lại là sai. 5 Score (biến Điểm số của người chơi. Nếu giải nhớ) đúng sẽ được tặng 10 điểm, nếu làm sai sẽ bị trừ 1 điểm. 6 Time_to_Solve Tham số ghi lại trạng thái của Chỉ khi (biến nhớ) chương trình qui định thời gian tham số người chơi làm bài. này = 1 = 0, không là thời gian chơi. mới cho phép = 1, đang là thời gian chơi. người dùng nháy lên các nút đáp án A, B, C, D. 7 XList, YList 2 dãy các tọa độ X, Y dùng để thể (list) hiện dãy các số trong bảng. 2 dãy này đều có 9 phần tử. 8 X2-list (list) Dãy tọa độ X (4 phần tử) thể hiện các số tại các phương án A, B, C, D. 9 Y1, Y2 Y1 = tọa độ Y của các số phía trên các nút A, B, C, D. Y2 = tọa độ Y của các nút A, B, C, D. Các biến nhớ riêng của đối tượng Math dùng để lưu trữ bộ dữ liệu chính của bài toán. 1 pNumber Số lượng phần tử của dãy sẽ được Gán mặc (biến nhớ) sinh tự động. Giá trị có trong định = 9. chương trình là pNumber = 9. 2 NumList (list) Dãy số chính (gốc) được sinh tự Dãy này động của thuật toán. có pNumber phần tử. 3 pMNumber Vị trí của dãy sẽ có dấu hỏi ?. mặc (biến nhớ) định giá trị này = pNumber. Chú ý: trong 1 số thuật toán yêu cầu bắt buộc pMNumber = pNumber. Stt Tên biến nhớ Ý nghĩa Chú ý 4 pList (list) Dãy 4 phương án được sinh tự động. Đây chính là các giá trị ứng với các phương án A, B, C, D. 5 sList (list) Dãy 4 giá trị chỉ ra phương án nào đúng, phương án nào sai. Theo qui định giá trị = 0 (sai), = 1 (đúng). 6 AList, BList, 3 mảng 3 chiều tương ứng với 3 Một số CList (list) hàng dữ liệu của bảng. Các mảng thuật toán này sẽ được sử dụng khi cần sinh sinh dữ bộ dữ liệu đặc thù cho ma trận số. liệu cần bộ dữ liệu dạng ma trận này. Các biến nhớ riêng của đối tượng Number và tham số của thủ tục hiển thị số chính của Number. 1 N (tham số của Số nguyên gốc cần thể hiện trên thủ tục) màn hình. Số này có thể là âm hoặc dương. 2 X, Y (tham số Tọa độ tâm chính giữa của số của thủ tục) được thể hiện. 3 size (tham số (tính bằng %) của thủ tục) Số được thể hiện sẽ có kích thước bằng chính giá trị này (tính theo %) so với nhân vận gốc. 4 dx (biến nhớ) Độ rộng thực tế của các ký tự tương ứng với size. Thông số này được tính bằng công thức: dx = OriginSize * size / 100. 5 OriginSize Độ rộng của các ký tự ở chế độ (biến nhớ) gốc (100%). Giá trị này sẽ đo trên thực tế tại cửa sổ Costume. Trong chương trình đã thiết kế, giá trị này = 22. 6 CurrSize (biến Kích thước hiện thời của nhân vật nhớ) Number. Sau khi thể hiện xong số, thủ tục sẽ trả lại kích thước của nhân vật trước khi chạy lệnh này. 7 N.temp (biến Số trung gian dùng để lưu số cần Nếu N>0 nhớ) thể hiện nếu N < 0. thì N.temp = N, nếu Stt Tên biến nhớ Ý nghĩa Chú ý N < 0 thì N.temp = -N. Sơ đồ hoạt động hệ thống Sơ đồ hoạt động của chương trình này tương tự như trò chơi Điền số vào dãy, tuy nhiên có sự khác biệt nhất định. Reset Thực hiện việc sinh dữ Gửi thông liệu bài toán chính của điệp Reset chương trình. Math.Done Thông báo yêu cầu Kích hoạt các nút bài toán. này làm việc. Kiểm tra và thông báo đúng / sai. Nếu làm sai, gửi Thể hiện bộ dữ liệu thông điệp Sai rồi. trên lưới 3 x 3 trừ Nếu người dùng nháy Sai rồi ra 1 ô để hiện dấu ? chuột, gửi thông điệp Done. Thể hiện đáp số lên Nế u làm đúng, gửi ô có dẩu ? thông điệp Đúng rồi. Done Đúng rồi Ẩn Hiện Hiệ n Ẩn Nếu nháy lên, gửi thông điệp Reset. Reset Các thuật toán sinh dữ liệu cho dãy số Các thuật toán này sẽ sinh bộ dữ liệu chính và lưu trong bảng NumList. Việc sinh yêu cầu ngẫu nhiên để mỗi lần sẽ ra các bộ dữ liệu không giống nhau. Mô tả qui luật Chương trình cho dãy số Dãy số chẵn liên tục Dãy số lẻ liên tục Dãy số nguyên tố Sử dụng thủ tục Next Primary để sinh bộ dữ liệu này. liên tục Thủ tục Next Primary sẽ tìm ra số nguyên tố nhỏ nhất > n. Kết quả lưu trong biến Next.Primary.Math. Mô tả qui luật Chương trình cho dãy số Thủ tục Is Primary sẽ kiểm tra xem số p có phải là nguyên tố hay không. Kết quả lưu trong biến kq.Math (= 1, yes, = 0, no). Dãy số Fibonaci Mảng Fibonaci.temp lưu 5 số hạng đầu tiên của dãy Fibonaci. Các số này sẽ được lấy ngẫu nhiên làm phần tử đầu tiên của dãy số được sinh. Mô tả qui luật Chương trình cho dãy số Dãy số chính Số hạng đầu tiên lấy ngẫu nhiên từ 12 đến 52. phương Dãy số lập Số hạng đầu tiên lấy ngẫu nhiên từ 13 đến 43. phương Dãy các số tạo Số hạng đầu tiên lấy từ -99 đến 99. Công sai lấy ngẫu nhiên thành 1 cấp số từ 2 đến 20. cộng. Dãy số tạo thành Số hạng đầu tiên lấy từ -5 đến 5. Công bội lấy ngẫu nhiên từ 1 cấp số nhân. 2 đến 10. Mô tả qui luật Chương trình cho dãy số Các thuật toán sinh dữ liệu cho ma trận số Các thuật toán này sẽ sinh bộ dữ liệu vào các bảng AList, BList, CList, sau đó sẽ chuyển dữ liệu vào mảng NumList. Thủ tục sau sẽ sao chép dữ liệu từ các bảng AList, BList, CList sang NumList. Chuyển dữ liệu từ bảng AList sang NumList. Chuyển dữ liệu từ bảng BList sang NumList. Chuyển dữ liệu từ bảng CList sang NumList. Mô tả qui Chương trình Ghi chú luật cho ma trận số Cột cuối cùng a, b được sinh là tổng các cột ngẫu nhiên. c = a trước đó. + b. a, b, c được gán lần lượt cho các hàng của ma trận. Cột cuối cùng a, b được sinh là hiệu các cột ngẫu nhiên. c = a trước đó. - b. a, b, c được gán lần lượt cho các hàng của ma trận. Mô tả qui Chương trình Ghi chú luật cho ma trận số Cột cuối cùng a, b được sinh là tích các cột ngẫu nhiên. c = a trước đó. x b. a, b, c được gán lần lượt cho các hàng của ma trận. Hàng cuối a, b được sinh cùng là tổng ngẫu nhiên. c = a các hàng phía + b. a, b, c được trên. gán lần lượt cho các cột của ma trận. Mô tả qui Chương trình Ghi chú luật cho ma trận số Hàng cuối a, b được sinh cùng là hiệu ngẫu nhiên. c = a các hàng phía - b. a, b, c được trên. gán lần lượt cho các cột của ma trận. Hàng cuối a, b được sinh cùng là tích ngẫu nhiên. c = a các hàng phía x b. a, b, c được trên. gán lần lượt cho các cột của ma trận.

File đính kèm:

  • pdfthiet_ke_tro_choi_dien_so_vao_bang.pdf
Giáo án liên quan