Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Cách làm game snake như thế nào?

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    3

    Mặc định Cách làm game snake như thế nào?

    Mình có xem qua mấy đoạn code game snake (dạng text) rồi nhưng không hiểu làm sao để con rắn nó chạy. Ai có thể giải thích giúp mình phần đó với. Cám ơn
    Cho mình hỏi luôn vậy thì làm sao khi mình print một kí tự rồi mà muốn dịch chuyển kí tự đó đi thì phải làm sao

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Trích dẫn Nguyên bản được gửi bởi hoangtuphanmem Xem bài viết
    Mình có xem qua mấy đoạn code game snake (dạng text) rồi nhưng không hiểu làm sao để con rắn nó chạy. Ai có thể giải thích giúp mình phần đó với. Cám ơn
    Cho mình hỏi luôn vậy thì làm sao khi mình print một kí tự rồi mà muốn dịch chuyển kí tự đó đi thì phải làm sao
    http://forums.congdongcviet.com/showthread.php?t=11771
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    7

    Bài thực hành số 6 (phần 2) -Hướng dẫn làm đồ án con rắn 1
    HƯỚNG DẪN LÀM ĐỒ ÁN CON RẮN
    A .Phân tích chương trình
    1. Các Anh Chị phải biết chơi trò chơi này (nó có tên tiếng Anh là Snake) ☺
    2. Cách chơi:
    a. Trong trò chơi này người chơi dùng phím ( , , ↑, ↓) để điều khiển con rắn chạy trên một bàn cờ. Trên bàn cờ còn xuất hiện ngẫu nhiên một số món quà.
    b. Nếu con rắn đụng vào tường thì chết.
    c. Nếu con rắn đụng vào một món quà thì chiều dài của nó tăng lên 1.
    3. Thiết kế dữ liệu
    a. Như thế ta có thể xem bàn cờ là một ma trận 2 chiều.
    Int BanCo[100][100];
    b. Mỗi món quà là một điểm trên bàn cờ này
    POINT Qua;
    c. Mỗi con rắn là một mảng các điểm trên bàn cờ
    POINT Ran[100];
    Int ChieuDaiRan;
    4. Thiết kế xử lý (Thuật giải)
    a. Làm thế nào cho con rắn di chuyển? Copyright: nguyenvantoan@hotmail.com
    Bài thực hành số 6 (phần 2) -Hướng dẫn làm đồ án con rắn 2
    • Tính toán tọa độ mới
    POINT DiemMoi;
    // Nếu hướngđi từ phải trái
    DiemMoi.x=Ran[0].x-1;
    DiemMoi.y=Ran[0].y;
    // Nếu hướngđi từ trái phải
    DiemMoi.x=Ran[0].x+1;
    DiemMoi.y=Ran[0].y;
    // Nếu hướngđi từ dưới trên
    DiemMoi.x=Ran[0].x;
    DiemMoi.y=Ran[0].y-1;
    // Nếu hướngđi từ trên dưới
    DiemMoi.x=Ran[0].x;
    DiemMoi.y=Ran[0].y+1;
    Do đó chúng ta phải có thêm một biến lưu hướng đi hiện tại
    Biến này sẽ thay đổi mỗi khi ta nhấn phím
    Nếu phím hướng sẽ là từ trái phải
    Nếu phím hướng sẽ là từ phải trái
    Nếu phím ↑ hướng sẽ là từ dưới trên
    Nếu phím hướng sẽ là từ trên dưới
    Copyright: nguyenvantoan@hotmail.com
    Bài thực hành số 6 (phần 2) -Hướng dẫn làm đồ án con rắn 3
    Do đó chúng ta có thể khai báo biến này là kiểu int
    Int Huong;
    • Chèn điểm mới này vào mảng con rắn
    Quá trình chèn có thể được miêu tả như sau
    Quá trình chèn có thể được miêu tả như sau
    Với từng phần tử trong mảng con rắn
    (sử dụng vòng for từ 0 ChieuDaiRan )
    Ran[i+1] = Ran[i];
    Ran[0] = ĐiểmMới;
    b. Làm thế nào xác định con rắn ăn món quà
    Rắn an món quà khi tọa độ miệng của con rắn trùng tọa độ món quà (chú ý; vì tọa độ miệng con rắn không có nên chúng ta sử dụng tọa độ đầu con rắn ☺ )
    If (Ran[0] == Qua) (nhưng vì Qua và Ran có kiểu dữ liệu là POINT nên ta phải so sánh x và y)
    c. Làm thế nào để tăng chiều dài con rắn
    ChieuDaiRan = ChieuDaiRan + 1;
    d. Làm thế nào xác định con rắn đụng tường
    Rắn đụng tường khi đầu của con rắn va vào tường ( )
    If (Ran[0].x == 30 ) GAMEOVER;
    If (Ran[0].x == 0 ) GAMEOVER;
    If (Ran[0].y == XX ) GAMEOVER;
    If (Ran[0].y == 0 ) GAMEOVER;
    5. Thế là xong : Chương trình = Cấu trúc dữ liệu + Thuật giải
    Copyright: nguyenvantoan@hotmail.com
    Bài thực hành số 6 (phần 2) -Hướng dẫn làm đồ án con rắn 4
    B. Thực hiện
    Qua các bước phân tích trên chúng ta có thể dễ dàng thiết kế trò chơi con rắn như sau
    Nhấn nút START
    Đổi biến Hướng
    Nhấn phím WM_CHAR
    • Khởi tạo TIMER
    • Khởi tạo Tọa độ ban đầu của con rắn
    Di chuyển rắn
    WM_TIMER
    T
    Kiểm tra ăn quà
    F
    Yêu cầu vẽ lại
    Tăng chiều dài
    Kiểm tra đụng tường
    F
    T
    Phát sinh
    Vẽ lại màn hình
    WM_PAINT
    WM_PAINT
    Tắt TIMER
    THUA
    Do đó chúng sẽ viết
    1. WM_CREATE
    ..
    CreateTimer
    2. WM_TIMER
    ..
    DiChuyển
    KiểmTraĂnQuà
    KiểmTraĐụngTường

    3. WM_CHAR

    if (Phím == VK_UP) Hướng = 1;
    if (Phím == VK_DOWN) Hướng = 2;
    ….
    Copyright: nguyenvantoan@hotmail.com
    Bài thực hành số 6 (phần 2) -Hướng dẫn làm đồ án con rắn 5
    4. WM_PAINT

    Vẽ Bàn Cờ
    Vẽ Con Rắn
    Vẽ Món Qùa
    ….
    Các Anh Chị sáng tạo thêm các tính năng như … tăng tốc, nhiều món quà….
    Copyright: nguyenvantoan@hotmail.com
    :.♥.: Không Thương :.♥.: Không Nhớ :.♥.: Không Mơ Mộng :.♥.:
    :.♥.: Không Buồn :.♥.: Không Chán :.♥.: Lệ Không Rơi :.♥.:
    :.♥.: Không Yêu Ai Cả :.♥.: Lòng Băng Giá :.♥.:
    :.♥.: Không Nhớ Ai Cả :.♥

Các đề tài tương tự

  1. Code game snake, phiên bản với cách chơi mới
    Gửi bởi ductri_vn trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 02-05-2013, 12:30 PM
  2. Mã nguồn C Source Code game Snake
    Gửi bởi cd8ath trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 28-03-2013, 01:44 AM
  3. xin chỉ dẫn về làm game snake(project)
    Gửi bởi duonglangben trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 12-12-2010, 08:55 AM
  4. Game snake viết trên C# | Lỗi directx trong C#, khắc phục như thế nào?
    Gửi bởi pine8xproit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 18-08-2009, 07:14 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn