30/09/2018, 16:42

Lập trình Game đánh cờ vua trên Console

Em là sv năm 1, và đồ án môn Kỹ thuật lập trình của em là làm Game đánh cờ vua trên Console, loay hoay nãy giờ nên quyết định lên đây nhờ mọi người tư vấn giúp là em là cần chuẩn bị kỹ thuật gì để làm ạ ? , em có coi cái topic trước thì cũng có người hỏi rồi cơ mà bên OOP còn em thì chưa học OOP. , em cảm ơn trước.

Nguyễn Minh Dũng viết 18:57 ngày 30/09/2018

Em làm bằng ngôn ngữ gì? Nếu làm console thì em phải làm một số thứ liên quan đến xóa, vẽ lại console thôi. Anh nghĩ là em có thể bắt đầu với việc nghĩ ra cách vẽ một bàn cờ lên console trước

Trịnh Minh Cường viết 18:43 ngày 30/09/2018

Bằng C anh ạ… em thì định làm như thế này

  1. làm Menu.
  2. vẽ bàn cờ vua.
  3. Xác định thuật toán.
  4. bắt phím
Nguyễn Minh Dũng viết 18:46 ngày 30/09/2018

làm bước 4 trước bước 3 đi Em tính cho 2 người đánh hay đánh với máy

Trịnh Minh Cường viết 18:44 ngày 30/09/2018

Cho 2 người đánh ạ, chứ cờ vua em còn chả biết chơi, bây giờ em đang Google để tìm các nước đi của mấy con cờ

GodOfGod viết 18:46 ngày 30/09/2018

E có code của anh bên Pháp nhưng là 1 ngừoi đánh và bằng Pascal

Nguyễn Minh Dũng viết 18:46 ngày 30/09/2018

Làm cho 2 người chơi trước đi. Còn 1 người chơi với máy thì lên mạng tìm open source về gắn vào Còn về thuật toán tìm đường đi thì nên tự nghĩ ra.

Trịnh Minh Cường viết 18:58 ngày 30/09/2018

Em đang làm đây em lên GG đọc cách chơi cờ vua gần 1 tiếng… bây giờ em đang vẽ bàn cờ.

GodOfGod viết 18:56 ngày 30/09/2018

Ko biết chơi cờ vua thì sao ko làm game khác bạn nhỉ, như cờ tướng ấy.

... viết 18:52 ngày 30/09/2018

Trước hết là làm bàn cờ, và tạo hiệu ứng hình ảnh khi nhấn phím mũi tên di chuyển (Tới ô nào thì ô đó đổi màu chẳng hạn).
Bạn nên tạo một class cho mỗi loại quân cờ để mô phỏng quân cờ đó.
Có lẽ nên tự làm thêm một class Point và cho class quân cờ kế thừa class Point này, để quản lý vị trí của quân cờ trên bàn cờ.
Trong class mỗi loại quân có thể thêm 1 hàm như point_reachable là những vị trí mà khi quân cờ được chọn có thể di chuyển tới được. Và khi nhấn Enter để chọn quân cần đi thì sẽ có thêm hiệu ứng những ô mà quân cờ đó có thể đến đổi màu luôn …
Trong class quân cờ thì cho nó thêm một thuộc tính is_removed kiểu bool để check xem quân cờ đã bị luộc hay chưa.

Những thứ mình nói trên có thể gói gọn trong 1 class Player. Trong class Player vừa quản lý số quân cờ, và 1 trường có tên là my_turn kiểu bool. Một hàm setMyTurn quản lý lượt chơi. Sau khi đi 1 lượt thì

my_turn = !my_turn;

Sau đó thì tạo 2 đối tượng thuộc lớp Player rồi chơi thôi.


Góp ý chút về ý tưởng vậy thôi, chứ mình chưa từng làm cái này nên không biết.
Trịnh Minh Cường viết 18:54 ngày 30/09/2018

Nhứng mà vấn đề là em chưa học tới class :’( cơ mà cũng cảm ơn anh đã giúp để em tìm hiểu Class.

Ninh Lê viết 18:42 ngày 30/09/2018

Nếu bạn làm game cờ vua 2 người chơi thì OK còn làm game cờ vua 1 người chơi vs Máy tính thì phải chịu khó tìm hiểu về trí thông minh nhân tạo, cụ thể làm “thuật toán min-max cho tro chơi 2 người”.
Mà nói thật, hồi đó cũng làm game trên consolve vài lần, cực nhất phần đồ hoạ

Trịnh Minh Cường viết 18:46 ngày 30/09/2018

Đồng cảm… :’( thiết kế menu với lại vẽ bàn cờ ra nữa…

... viết 18:53 ngày 30/09/2018

Hình như trong này có hướng dẫn vẽ bàn cờ thì phải

https://helloacm.com/processing/

Trịnh Minh Cường viết 18:52 ngày 30/09/2018

Cờ tướng nghe nói thuật còn phức tạp hơn cờ vua.

GodOfGod viết 18:46 ngày 30/09/2018

Em có code Pascal ko biết thớt lấy ko. (hồi trước assembly sau em dịch một số chỗ thành Pascal hết)

Trịnh Minh Cường viết 18:49 ngày 30/09/2018

Thanks bác, cơ mà đang mò mẫm cũng làm được chút rồi nên chắc không cần đâu

Nguyễn Việt Nhật viết 18:48 ngày 30/09/2018

KHTN phải không? Năm nhất mình làm là cờ caro.

Trịnh Minh Cường viết 18:46 ngày 30/09/2018

=))) dạ vâng ạ… còn em thì cờ vua với cờ tướng

Bài liên quan
0