Bài toán ai là triệu phú lập trình

Hello, chào mừng các bạn đến với bài viết tiếp theo của Code Pro. Hôm nay, mình sẽ chia sẻ cho các bạn source code game ai là triệu phú viết hoàn toàn bằng C++

Bài toán ai là triệu phú lập trình
Share code game ai là triệu phú viết bằng C++

Giới thiệu về code game

Code này mình viết khi còn học năm nhất, lúc đó chưa có nhiều kiến thức về C++ nên code khá cồng kềnh, phù hợp với những bạn mới học lập trình C++. Dưới đây là một số thông tin về source code:

  • File chính: game.cpp
  • File câu hỏi: cauhoi.txt (15 câu hỏi + đáp án đúng)
  • File trợ giúp: trogiup.txt (3 sự trợ giúp)
  • File âm thanh: readsound.txt (15 file nhạc tương ứng 15 câu hỏi)
  • File âm thanh trả lời đúng: reptruesound.txt (15 file nhạc tương ứng 15 câu trả lời đúng)
  • Trợ giúp 50/50: 5050.txt (1 đáp án đúng + 1 đáp án sai)
  • Lưu thông tin người chơi: nguoichoi.txt (họ tên + nghề nghiệp + nơi ở)
    Bài toán ai là triệu phú lập trình
    Toàn bộ file game ai là triệu phú C++

Video demo

Dưới đây là video mình chạy thử trên hệ điều hành Ubuntu (GNU/Linux):

Chú ý: nhạc chỉ phát được trên hệ điều hành macOS/Linux

Cource code

Dưới đây là toàn bộ code file game.cpp (file chính). Các bạn có thể tham khảo qua!

Chú ý: Source code được chia sẻ hoàn toàn miễn phí trên cộng đồng Code Pro. Hãy truy cập Code Pro Community để tải về! Xin lỗi các bạn về sự bất tiện này!

Lời kết

Trên đây là toàn bộ giới thiệu và cource code game ai là triệu phú viết bằng C++. Chúc các bạn có một ngày làm việc thật hiệu quả. Xin chào và hẹn gặp lại!

Giảng viên hướng dẫn : Ths Nguyễn Thanh Trường Sinh viên thực hiện 1 : Bùi Kiều Trang Sinh viên thực hiện 2 : Lương Thúy Hòa Mã lớp học phần : 2031112005804

TP. Hồ Chí Minh, tháng 7 năm 2021

BỘ TÀI CHÍNH

TRƯỜNG ĐẠI HỌC TÀI CHÍNH - MARKETING KHOA CÔNG NGHỆ THÔNG TIN ----

ĐỒ ÁN MÔN HỌC

LẬP TRÌNH JAVA

Đề tài: XÂY DỰNG PHẦN MỀM TRÒ CHƠI AI LÀ TRIỆU PHÚ

Giảng viên hướng dẫn : Ths Nguyễn Thanh Trường Sinh viên thực hiện 1 : Bùi Kiều Trang Mã số sinh viên : 1921006859 Sinh viên thực hiện 2 : Lương Thúy Hòa Mã số sinh viên : 1921006696 Mã lớp học phần : 2031112005804

TP. Hồ Chí Minh, tháng 7 năm 2021

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

................................................................................................................................

  • Điểm số:....................................................................................................................
  • Điểm chữ:..................................................................................................................

Thành phố Hồ Chí Minh, tháng 7 năm 2021 Giảng viên

(ký và ghi rõ họ tên)

MỤC LỤC

Trang

DANH MỤC TỪ VIẾT TẮT ....................................................................................... DANH MỤC THUẬT NGỮ ANH – VIỆT ................................................................ DANH MỤC HÌNH VÀ BẢNG ................................................................................

DANH MỤC TỪ VIẾT TẮT

TT Từ viết tắt Ý nghĩa

1 ERD Entity Relationship Diagram 2 JDBC Java Database Connectivity 3 CSDL Cơ sở dữ liệu 4 GUI Graphical User Interface

i

DANH MỤC THUẬT NGỮ ANH – VIỆT

TT Thuật ngữ tiếng Anh Ý nghĩa tiếng Việt

1 Database Cơ sở dữ liệu 2 Module Mô-đun 3 Reporting Service Dịch vụ báo cáo 4 Language Intergrate Query Truy vấn tích hợp ngôn ngữ 5 Port Cổng

ii

iv

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI......................................................................
    • 1 Giới thiệu về đề tài..........................................................................................
    • 1 Lý do hình thành đề tài....................................................................................
    • 1 Mục tiêu hình thành đề tài...............................................................................
    • 1 Nội dung đề tài................................................................................................
    • 1 Đối tượng và phạm vi đề tài............................................................................
    • 1 Phương pháp nghiên cứu.................................................................................
    • 1 Dự kiến kết quả đạt được................................................................................
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT..............................................................................
    • 2 Đặt vấn đề.......................................................................................................
      • 2 Giới thiệu về trò chơi......................................................................................
      • 2 Hướng dẫn trò chơi.........................................................................................
      • 2 Tổng qua về Java.............................................................................................
      • 2 Công cụ xây dựng chương trình....................................................................
        • 2.5 Netbeans IDE.........................................................................................
        • 2.5 Giới thiệu về SQL Sever........................................................................
      • 2 Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu...................................
        • 2.6 JDBC là gì?............................................................................................
        • 2.6 Các thành phần của JDBC......................................................................
        • 2.6 Kết nối database với Java JDBC............................................................
  • CHƯƠNG 3: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT............................................ - 3 Các chức năng của phần mềm trò chơi.......................................................... - 3.1 Lược Đồ Phân Rả Các Model................................................................ - 3.1 Module Thao Tác Với Cơ Sở Dữ Liệu................................................... - 3.1 Module Chơi.......................................................................................... - 3 Phân tích thiết kế thành phần CSDL............................................................. - 3.2 Mức ý niệm (phân tích).......................................................................... - 3.2 Các ràng buộc toàn vẹn.......................................................................... - 3.2 Mức logic (thiết kế): Thiết kế ERD cho phần CSDL............................. - 3.2 Lược đồ cơ sở dữ liệu quan hệ...............................................................
  • CHƯƠNG 4: HIỆN THỰC CHƯƠNG TRÌNH..........................................................
  • Hình 4. 7 Thông báo yêu cầu nhập tên người chơi............................................
  • Hình 4. 8 Câu hỏi của chương trình...................................................................
  • Hình 4. 9 Người chơi chọn đáp án.....................................................................
  • Hình 4. 10 Đáp án đúng và tăng thang mức thưởng..........................................
  • Hình 4. 11 Đáp án sai và công bố giải thưởng đạt được....................................
  • Hình 4. 12 Đáp án sai ở câu đầu tiên.................................................................
  • Hình 4. 13 Thông báo hết thời gian trả lời câu hỏi............................................
  • Hình 4. 14 Thông báo xác nhận quay lại Menu mở đầu....................................
  • Hình 4. 15 Người chơi chiến thắng, đạt được mức thưởng cao nhất..................
  • Hình 4. 16 Biểu tượng sự trợ giúp 50/50...........................................................
  • Hình 4. 17 Sử dụng sự trợ giúp 50/50................................................................
  • Hình 4. 18 Biểu tượng sự trợ giúp Hỏi ý kiến khán giả.....................................
  • Hình 4. 19 Người trợ giúp không có đáp án......................................................
  • Hình 4. 20 Người trợ giúp chọn đáp án sai........................................................
  • Hình 4. 21 Người trợ giúp chọn đáp án đúng....................................................
  • Bảng 3. 1 Bảng Question...................................................................................
  • Bảng 3. 2 Bảng Answer.....................................................................................
  • Bảng 3. 3 Bảng Player.......................................................................................
  • Bảng 3. 4 Bảng Result.......................................................................................
  • Bảng 3. 5 Bảng tầm ảnh hưởng R1....................................................................
  • Bảng 3. 6 Bảng tầm ảnh hưởng R2....................................................................
  • Bảng 3. 7 Bảng tầm ảnh hưởng R3....................................................................
  • Bảng 3. 8 Bảng tầm ảnh hưởng R4....................................................................

v

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

1 Lý do hình thành đềề tài Hiện nay ngành Công Nghệ Thông Tin đã có những bước phát triển nhanh chóng về ứng dụng của nó trong mọi lĩnh vực trong cuộc sống trên phạm vi toàn thế giới nói chung và Việt Nam nói riêng. Công nghệ thông tin là một phần không thể thiếu của cuộc sống văn minh góp phần đấy mạnh công cuộc công nghiệp hóa hiện đại học đất nước. Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Nó được coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần là một ngôn ngữ bật cao như C, C++, SmallTalk .. nên có thể tạo ra các ứng dụng để giải quyết các vấn đề về số, xử lý văn bản, tạo ra trò chơi ... Trong quá trình tìm hiểu chúng thì chúng em rất hứng thú với Bộ công cụ hỗ trợ việc tạo giao diện người dùng (GUI). Swing là một bộ công cụ tiện ích, là một phần của ngôn ngữ lập trình Java tổng thể nó hổ trợ cho người dùng tạo ra các cửa sổ windows, các layout cho phần mềm, tạo ra các control cho phép người dùng tương tác nên chúng em đã quyết định sử dụng bộ công cụ này của Java để xây dựng. Từ đó hình thành nên đề tài Xây dựng phần mềm trò chơi Ai là triệu Phú để có thể thấy rõ được khả năng mạnh mẽ của nó.

1 M c tều hình thành đềề tàiụ Đề tài “ Xây dựng phần mềm trò chơi Ai là triệu phú ” hướng đến các mục tiêu cơ bản sau:  Hệ thống hóa các kiến thức cơ sở làm nền tảng cho việc thực hiện đề tài.  Trình bày tóm tắt một số đề tài liên quan đã được thực hiện trước đây dưới các hình thức khác nhau.  Vận dụng được tính chất của Lập trình hướng đối tượng.  Ứng dụng của Swing vào việc xây dựng trò chơi Ai là triệu phú. 1 N i dung đềề tàiộ

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI......................................................................

 Giới thiệu về trò chơi Ai là triệu phú 2

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

 Lý do hình thành đề tài  Mục tiêu đề tài  Nội dung đề tài  Đối tượng và phạm vi đề tài  Phương pháp nghiên cứu  Dự kiến kết quả đạt được

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT..............................................................................

 Đặt vấn đề  Giới thiệu về trò chơi  Hướng dẫn trò chơi  Tổng quan về Java  Các công cụ sử dụng để xây dựng chương trình  Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu

CHƯƠNG 3: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT............................................

 Các chức năng của phần mềm trò chơi  Phân tích thiết kế thành phần CSDL 1 Đốối t ng và ph m vi đềề tàiượ ạ  Đối tượng nghiên cứu: Xây dựng phần mềm trò chơi Ai là triệu Phú.  Phạm vi nghiên cứu: Phạm vi xoay quanh các công ty game, đảm bảo đầy đủ các chức năng chính của phần mềm và khai thác các chức năng mới có liên quan đến việc xây dựng phần mềm nhằm giúp cho phần mềm thêm phần tiện ích.

1 Ph ng pháp nghiền c uươ ứ  Phương pháp nghiên cứu tài liệu:  Tham khảo, nghiên cứu thêm các tài liệu trên trang web, trang báo, tìm hiểu tình hình thực trạng của đề tài.  Tìm xem các báo cáo đề tài hoặc tìm hiểu qua sách báo liên quan đến đề tài nghiên cứu.  Phương pháp nghiên cứu thực tiễn:  Phương pháp quan sát: quan sát việc xây dựng trò chơi của các công ty game. 3

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2 Đ t vấốn đềềặ Trò chơi điện tử (tiếng Anh: electronic game) là một trò chơi sử dụng các thiết bị điện tử để tạo ra một hệ thống tương tác mà người chơi có thể chơi. Trò chơi điện tử là hình thức phổ biến nhất hiện nay và vì lý do này, hai thuật ngữ thường được sử dụng nhầm lẫn. Các hình thức phổ biến khác của trò chơi điện tử bao gồm các sản phẩm như trò chơi điện tử cầm tay, hệ thống độc lập (ví dụ: pinball, slot machine hoặc các máy trò chơi arcade cơ điện) và các sản phẩm không trực quan độc quyền (ví dụ: trò chơi âm thanh). Trong cuộc sống hiện nay, không khó để có thể tìm một trò chơi để có thể có thể giải trí, giúp chúng ta có thể xõa stress sau một thời gian dài làm việc hay gặp mặt bạn bè trò chuyện qua các ứng dụng trong trò chơi. Và để có thể đáp ứng nhu cầu đó của con người thì ngày nay việc phát triển công nghệ mạng không còn xa lạ với mọi người. Các loại trò chơi mọc lên như nấm, đủ thể loại, đủ hình thức để có thể thu hút con người. Một số người thường có xu hướng kì thị đối với game, khi nhắc đến từ game thì họ đều nghĩ ngay đến những trò vô bổ, tốn thời gian vô ích vào đấy, Nhưng mà họ chỉ nghĩ đến tác hại mà lại không nghĩ đến những lợi ích khác, chúng ta có thể ví dụ như là game ai là triệu phú một game dành cho điện thoại cực kỳ trí tuệ và bổ ích. Một sân chơi hoàn toàn mới cho mọi người, bởi vì muốn chơi tốt và dành chiến thắng các bạn phải là một người có tầm hiểu biết cực kì nhiều. Trong game ai là triệu phú thì sẽ có vô vàn câu hỏi trong tất cả các lĩnh vực trong cuộc sống như: thể thao, lịch sử, thông tin kinh tế, đời sống xã hội, âm nhạc..ạn phải là một người hiểu biết cực kì sâu sắc mới có thể chinh phục được tất cả những gì trong game. Quá nhiều điều mà chúng ta cần phải cân nhắc về một vấn đề nào đó chưa chắc nó đã phải là xấu xa hoàn toàn mà còn tùy vào nhận thức của mỗi người. Game Ai là triệu phú sẽ giúp bạn học hỏi được những điều mà bạn chưa hề hay biết thông qua những câu hỏi của chương trình, giúp bạn bổ sung thêm những kiến thức còn thiếu sót trong cuộc sống của bạn.

2 Gi i thi u vềề trò ch i ớ ệ ơ

5

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

Ai là triêu phú là game show nổi tiếng trên thế giới lẫn Việt Nam, nếu các bạn theo dõi game ai là triệu phú trên Game24h đều dễ dàng nhận thấy sức hút của trò chơi ai là triệu phú lớn như thế nào. Xuất hiện tại Việt Nam từ những năm 2017, 2018 và bùng nổ vào những năm 2019, game show Ai là triệu phú đã trở thành món ăn tinh thần không thể thiếu của khán giả Việt.

Hình 2. 1 Nghệ sĩ Xuân Bắc tham gia Ai là triệu phú Nhiệm vụ của bạn trong Ai là triệu phú cực kỳ đơn giản đó là: Bạn chỉ việc suy nghĩ thật kỹ, trả lời chuẩn xác tất cả những câu hỏi trò chơi đưa ra đồng thời sử dụng thật hợp lý 2 sự trợ giúp của game để có được lợi thế lớn nhất khi chơi.

2 H ng dấẫn trò ch iướ ơ Có tất cả 15 câu hỏi trong tựa game này (các câu hỏi được chọn lựa ngẫu nhiên trong thư viện câu hỏi của game ai là triệu phú). Chúng được đưa ra với thứ tự từ dễ đến khó.

6

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

Hình 2. 3 Hình ảnh minh họa câu hỏi trong game 2 T ng qua vềề Javaổ Java là một trong những ngôn ngữ lập trình hướng đối tượng. Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động. Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak. Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem. Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA). Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.

8

Đề tài: “Xây dựng phần mềm trò chơi Ai là triệu Phú”

Hình 2. 4 Giới thiệu về Java Đặc điểm của ngôn ngữ lập trình Java  Tương tự C++, hướng đối tượng hoàn toàn Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học và quen thuộc với đa số người lập trình. Vì vậy họ đã sử dụng lại các cú pháp của C và C++. Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn và dễ sử dụng hơn. Các thao tác overload, goto hay các cấu trúc như struct và union cũng được loại bỏ khỏi Java.  Độc lập phần cứng và hệ điều hành Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trường khác nhau. Gọi là khả năng “cross-platform”. Khả năng độc lập phần cứng và hệ điều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân. Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau. Java có riêng một bộ thư viện để hỗ trợ vấn đề này. Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khác nhau mà không gặp lỗi. Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau mà không cần dịch lại mã nguồn. Tuy nhiên cần có Java Virtual Machine để thông dịch đoạn mã này.