Bài tập Lớn V1 BK TPHCM

5 163 0
Bài tập Lớn V1 BK TPHCM

Đang tải... (xem toàn văn)

Thông tin tài liệu

Game trên máy tính hay thiết bị di động là trò chơi giải trí đang được ưu chuộng mạnh, nhất là trong những năm gần đây, khi mà các thiết bị di dộng thông minh phát triển mạnh. Tổng giá trị thị trường game ở Hàn Quốc là 9.16 tỷ USD (tương đương 180 ngàn tỷ đồng), và ở Nhật Bản, ước tính giá trị đó gấp 7 lần. Việt Nam có thị trường game khá non trẻ, tuy nhiên đã bắt đầu hội nhập với một số hãng game lớn đã xuất khẩu game ra thị trường thế giới, VinaGame là một ví dụ. Ngoài ra, với sự tìm tòi, các cá nhân cũng đã tự viết game và bán ra thế giới. Flappy Bird vừa tạo một cú hích mạnh mẽ trên làng game thế giới. Với giao diện đơn giản, tác giả tiết lộ chỉ hoàn thành game trong một buổi, đã hấp dẫn người chơi và đứng đầu nhiều Store trong nhiều tháng liền, với doanh thu quảng cáo được tiết lộ tương đương 1 tỷ mỗi ngày. 2. Yêu cầu: Jewel là một trò chơi giải trí phổ biến trên nhiều thiết bị điện thoại, máy tính bảng và máy tính. Đây là một trò chơi mang tính giải trí, tuy nhiên cũng rất hấp dẫn người chơi. Trong bài tập lớn này, sinh viên sẽ lập trình giả lập trò chơi trên với trạng thái game cho sẵn và một số thao tác của người chơi. Từ đó, chương trình sẽ tính điểm đạt được của người chơi cũng như trạng thái game tới thời điểm xác định

Khoa khoa học kỹ thuật máy tính Bộ môn Khoa học máy tính Môn học: Kỹ thuật lập trình Bài tập lớn Bài Tập Lớn Phiên v1.00 Giới thiệu Game máy tính hay thiết bị di động trò chơi giải trí ưu chuộng mạnh, năm gần đây, mà thiết bị di dộng thông minh phát triển mạnh Tổng giá trị thị trường game Hàn Quốc 9.16 tỷ USD (tương đương 180 ngàn tỷ đồng), Nhật Bản, ước tính giá trị gấp lần Việt Nam có thị trường game non trẻ, nhiên bắt đầu hội nhập với số hãng game lớn xuất game thị trường giới, VinaGame ví dụ Ngoài ra, với tìm tòi, cá nhân tự viết game bán giới Flappy Bird vừa tạo cú hích mạnh mẽ làng game giới Với giao diện đơn giản, tác giả tiết lộ hoàn thành game buổi, hấp dẫn người chơi đứng đầu nhiều Store nhiều tháng liền, với doanh thu quảng cáo tiết lộ tương đương tỷ ngày Yêu cầu: Jewel trò chơi giải trí phổ biến nhiều thiết bị điện thoại, máy tính bảng máy tính Đây trò chơi mang tính giải trí, nhiên hấp dẫn người chơi Trong tập lớn này, sinh viên lập trình giả lập trò chơi với trạng thái game cho sẵn số thao tác người chơi Từ đó, chương trình tính điểm đạt người chơi trạng thái game tới thời điểm xác định Một số kiến thức sinh viên rèn luyện tập lớn này: - Cách sử dụng vòng lặp, for, while,… - Cách sử dụng phân nhánh if - Mảng, bao gồm mảng chiều nhiều chiều - Một số kiến thức liên quan khác Mô tả game Game Jewel có nhiều biến thể, nhiều quy ước khác Trong tập lớn này, sử dụng dạng đơn giản game Hình mô tả đồ trạng thái game với kích thước 8x8 Theo hình vẽ, đánh số hàng từ lên trên, đánh số cột từ trái sang phải hình vẽ; số hàng bên trái số cột hàng, Các chữ bên chữ đại diện cho ô tương ứng trạng thái game Với phiên đơn giản tập lớn này, người chơi cố gắng ăn nhiều điểm tốt Luật chơi sau: - Người chơi đổi chỗ viên chữ kề (kề cạnh) để cố gắng ăn điểm Trang Học kỳ II / 2013- 2014 Khoa khoa học kỹ thuật máy tính Bộ môn Khoa học máy tính Môn học: Kỹ thuật lập trình Bài tập lớn - Tình trạng ăn viên chữ, cộng điểm cho theo thứ tự ưu tiên từ cao tới thấp sau: A A B D F E F C E C E G C E E D E G F E G A E A A D C F D B F F E C D E D E G B D A G B G G A F F F A B E C A D C B D E F B D B Hình 1: Ví dụ đồ game + Trong trường hợp có đồng thời cách ăn điểm khác cho viên màu (chỉ xảy trường hợp ăn theo chiều ngang, trường hợp ăn theo chiều dọc) cộng điểm theo trường hợp viên điểm Ví dụ: ăn hàng ngang viên đồng thời hàng dọc viên tổng cộng viên tính viên điểm tổng cộng 28 điểm + Nếu viên kề thẳng hàng (ngang/dọc) chữ viên bị ăn, viên tính điểm, tổng cộng 20 điểm + Nếu viên kề thẳng hàng ngang/dọc chữ, viên bị ăn, viên tính điểm + Nếu viên kề thẳng hàng (ngang hay dọc) chữ, viên biến mất, đồng thời cộng điểm, tương ứng với viên tính điểm - Khi viên bị ăn, biến mất, viên theo cột bị rơi xuống để lấp đầy khoảng trống, rơi xuống ổn định, xảy trạng thái ăn điểm tiếp tục ăn điểm (dù tác động người chơi) - Người chơi di chuyển không hợp lệ (di chuyển không ăn điểm nào), trường hợp đó, viên đổi chỗ bị đưa lại vị trí cũ - Giả sử trường hợp viên thẳng hàng (ngang hay dọc) có chữ thời điểm ban đầu lúc load game lên chưa xảy trường hợp ăn điểm (không có hàng, cột thỏa mãn điều kiện ăn điểm mô tả trên) Mỗi có viên bị ăn, viên cột rơi xuống để lấp đầy khoảng trống, game thực viên chữ rơi xuống sinh ngẫu nhiên người dùng chơi thực tế Tuy nhiên, để đơn giản, tập lớn này, sinh viên rơi xuống tương lai lưu vào mảng (được nhập từ file) Trang Học kỳ II / 2013- 2014 Khoa khoa học kỹ thuật máy tính Bộ môn Khoa học máy tính Môn học: Kỹ thuật lập trình Bài tập lớn Chúng ta sử dụng đồ hình vuông NxN (các dòng cột đánh số từ N1) hình chơi người chơi, để thuận tiện thêm nhiều hàng, đánh số từ N tới M để sinh sẵn viên rơi xuống Trong tập lớn này, giả sử rằng, lúc kết thúc chơi cột viên chữ để rơi xuống, không gặp tình trạng hết viên chữ cột C Dữ liệu nhập/xuất 4.1 Dữ liệu nhập Dữ liệu nhập vào bao gồm nhập từ file (input.txt) nhập từ bàn phím Dữ liệu nhập từ file bao gồm số thông tin sau: - Kích thước N mô tả kích thước NxN game - M: kích thước chiều cao (M > N) - Mảng hai chiều MxN mô tả trạng thái ban đầu game hạt chữ rơi xuống cột tương lai, chữ chữ in hoa ABC Z, chữ viết cách khoảng trắng Để thuận lợi lưu trữ, đọc liệu từ file, mảng file lưu ngược theo số dòng, cụ thể dòng đầu lưu cho hàng 0, dòng lưu hàng 1, … Dữ liệu nhập trực tiếp từ bàn phím bao gồm sau: Thao tác người dùng, thao tác mô tả sau: XYT X, Y, T cách ký tự trống Trong đó, X, Y tọa độ dòng, cột viên chữ đổi, T viên chữ kề viên chữ tọa độ (X, Y) tráo đổi với T thuộc tập chữ (T, L, B, R) tương ứng với ô bên trên, trái, hay phải ô (X, Y) Giả sử liệu nhập với giá trị X, Y, T thỏa mãn thao tác hợp lệ (không khỏi viền NxN) Người dùng nhập -1 -1 A để kết thúc chơi Lúc kết xuất file bao gồm điểm trạng thái game theo mô tả phần 4.2 Dữ liệu xuất Sau thao tác chơi, trạng thái game xuất hình để người dùng chơi tiếp Để dễ nhìn, trạng thái game nên xuất hình 1, tức dòng trước, tới dòng 6,… Chú ý rằng, cách xuất ngược so với đọc liệu từ file, cách hoàn toàn không ảnh hưởng tới Khi kết thúc chơi, chương trình xuất file output.txt số thông tin sau: Dòng đầu: số nguyên số điểm mà người chơi đạt Ma trận NxN: mô tả trạng thái game tại, sau dòng cuối ma trận ký tự xuống dòng Trang Học kỳ II / 2013- 2014 Khoa khoa học kỹ thuật máy tính Bộ môn Khoa học máy tính Môn học: Kỹ thuật lập trình Bài tập lớn Mã ban đầu Sinh viên download file assigment1.zip từ trang Web môn học Khi giải nén file này, có file sau: input.txt Một file input ví dụ output.txt Một file mô tả kết trả theo file input.txt jewel.cpp Chương trình khởi tạo Assignmen1.pdf File mô tả nội dung tập lớn File input.txt file nhập mẫu mô tả phần File jewel.cpp chương trình khởi tạo, có số hàm, thành phần viết sẵn để hỗ trợ sinh viên hoàn thiện tập lớn Sinh viên thêm code hàm main, viết thêm số hàm cần thiết để hoàn thành tập lớn, nhiên, không phép chỉnh sửa, thay đổi tất hàm đặc tả viết sẵn, thêm bớt thư viện Để bắt đầu viết chương trình Visual Studio, sinh viên nên tạo Empty project add file jewel.cpp vào để bắt đầu lập trình Nộp Khi nộp bài, sinh viên sử dụng account cấp phát để nộp qua hệ thống Sakai Sinh viên nộp file jewel.cpp (tên file phải viết thường).File nộp phải file chương trình gốc, SINH VIÊN KHÔNG ĐƯỢC NÉN FILE KHI NỘP BÀI Sinh viên phải kiểm tra chương trình Microsoft Studio 10.0 trước nộp Thời hạn chót để nộp 16:00 thứ sáu ngày 04/04/2014 KHÔNG nhận gửi qua mail hình thức khác Bài nộp trễ KHÔNG nhận Để tạo điều kiện cho sinh viên, trước thời điểm nộp thức tuần tức 16:00 thứ sáu ngày 28/03/2014, nộp sinh viên thời điểm chấm thử sơ testcases lúc chấm thức kết công bố vào đầu tuần tiếp theo, sinh viên dựa vào kết chấm thử để điều chỉnh cho kết tốt lúc chấm thực Lưu ý: 1) Kết chấm sơ không tính vào điểm cuối cùng, nên dù kết chấm sơ cao điểm cuối có thấp tính kết điểm cuối 2) Đây hội tốt cho sinh viên nhằm hoàn thiện làm mình, không nên bỏ quả, từ đó, sinh viên nên lập kế hoạch để làm từ sớm, không nên để tới tuần cuối bắt đầu Đối với tập lớn này, thời gian chạy tối đa cho testcase giây, Trang Học kỳ II / 2013- 2014 Khoa khoa học kỹ thuật máy tính Bộ môn Khoa học máy tính Môn học: Kỹ thuật lập trình Bài tập lớn testcase bảo đảm sinh viên làm quy trình thừa thời gian cho chương trình thực thi testcase Xử lý gian lận Bài tập lớn phải sinh viên TỰ LÀM Sinh viên bị coi gian lận nếu: - Có giống bất thường mã nguồn nộp Trong trường hợp này, TẤT CẢ nộp bị coi gian lận Do sinh viên phải bảo vệ mã nguồn tập lớn - Sinh viên không hiểu mã nguồn viết, trừ phần mã cung cấp sẵn chương trình khởi tạo Sinh viên tham khảo từ nguồn tài liệu nào, nhiên phải đảm bảo hiểu rõ ý nghĩa tất dòng lệnh mà viết KHÔNG CHẤP NHẬN BẤT KỲ GIẢI THÍCH NÀO VÀ KHÔNG CÓ BẤT KỲ NGOẠI LỆ NÀO! Trang Học kỳ II / 2013- 2014

Ngày đăng: 07/06/2016, 20:55

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan