Chào mọi người
Hiện em đang hoàn thiện một chương trìnhvề C++ là game Con rắn săn mồi. Về cơ bản em đã chạy được game nhưng em còn có rất nhiều thiếu sót, vì vậy em post lên đây mong được mọi người giúp đỡ để hoàn thiện chương trình đầu tiên của bản thân.
Em xin nêu ý tưởng cơ bản của trò chơi:
- Vẫn là con rắn ăn thức ăn trong một giới hạn màn hình ( không thể đâm vào tường- 1 thiếu sót)
- Em tạo con rắn theo danh sách liên kết, một nút là 1 bộ phận của con rắn
- Mỗi nút gồm vị trí toạ độ của nút và con trỏ chỉ vào phần thân phía sau ( nút phía sau)
- Cách thức di chuyển: in tất cả các nút >> chờ khoảng 1 giây để người dùng chỉ hướng đi của con rắn ( nếu ko chỉ hướng thì sau 1 giây nó vẫn di chuyển theo hướng cũ) >> cập nhật toạ độ các nút, kiểm tra có ăn được thức ăn hay không ( nếu ăn thì tạo nút mới) >> xoá toàn màn hình >> quay về bước 1 ( in tất cả các nút)
- Em tạo thêm một số chướng ngại vật rơi tự do để tăng độ khó cho game (hàm ghost)
Một số khúc mắc mong mọi người giúp đỡ:
1.Em dùng một số lượng lớn vòng for để tạo thời gian dùng lúc đợi người dùng ấn nút di chuyển con rắn. Nó khiến cho thời gian chờ này khác nhau tuỳ vào tốc độ máy tính khác nhau. Có cách nào khác để chờ không ạ?
2. Em tạo một hàm để di chuyển rắn là: xoá màn hình rồi in lại con rắn. Cái này phải nói là rất phi lập trình, có bác nào rảnh hướng dẫn em một thuật toán mới được không?
3. Mọi người chỉ em rõ về hàm GetAsyncKeyState(string key) được ko ạ?
4. Em đang muốn dùng một hàm random, nhưng chưa rõ. Nếu lấy trên mạng thì hàm sẽ scand(time(0)) + rand() để lấy random theo thời gian. Nhưng trong trò chơi của em nếu theo thời gian thì không đáp ứng được nhu cầu. Vì vậy em một hỏi có nào khác để tạo ramdom trong một khoảng nhất định nào đó hay không?
Đây là code của em, rất sơ sài và lủng củng. Mong được các bác tận tình chỉ bảo.
- Code: https://ideone.com/6KTNAO
- Test game (.exe): https://www.fshare.vn/file/H4SGJ5TFD9WJ