Game cờ caro 3x3 sau 4 ngày học C++, xin góp ý chỉnh sửa

Theo mình số TH thắng ở đường chéo là 2*(m-c+1)*(n-c+1) Giả sử xét 1 đường chéo chính từ ô 0;0 nó có thể di chuyển sang trái là n-c+1 ô, sang phải là m-c+1 ô nên số khả năng thắng ở đường chéo chính = chéo phụ =(m-c+1)(n-c+1)
Cách tính số th thắng ở hàng, cột mình nghĩ là. Xét ở 1 hàng thì số th thắng có thể có là (n-c+1) như vậy m hàng sẽ có m*(n-c+1) cách thắng theo hàng ngang và tương tự có n*(m-c+1) cách thắng theo chiều dọc

2 Likes

Cho em hỏi: sao em dùng visual c++ express 2010 thì chạy không được ? @@

như ý anh =]]
http://paste.ofcode.org/eSUGmUhq6nxwdZNN6sMkBg

thực ra là mình hơi kết hợp nhiều nên khó hiểu :smile:
(n-c+1)(m-c+1) như bạn giải thích nhưng chỉ là 1 chiều, mình nhân 4 vì mình xét theo 4 chiều.
Vd: từ một ô mình sẽ có 8 chiều đi ra, nhưng chỉ cần xét 4 chiều. Lý do là mình duyệt hết các ô theo thứ tự từ trên xuống, trái sang chẳng hạn thì ko cần kt các chiều góc trên bên trái vì nó đã đc các ô duyệt trc nó check.
(c+1)(n+m-2c+2) thực ra là (c-1)(n-c+1) + (c-1)(m-c+1) là các cái ô mà chỉ có khả năng đc chiều dọc với ngang.
Thực ra công thức mình tính hơi ẩu vs ko rõ ràng chắc viết ntn tốt hơn:
(m-c+1)n: số kiểu ăn hàng dọc
(n-c+1)m: số kiểu ăn hàng ngang
2(m-c+1)(n-c+1): số kiểu ăn 2 đường chéo
Tổng 3 cái là tất cả số TH
(cái này giống @Gio)

2 Likes

cho anh xin face của em :wink:

người vs máy mới hay chứ.
c3 trường mình hồi đó mấy đứa nó đồ họa trò Tic Tac Toe bằng pascal rồi. (Human VS Computer)

1 Like

Đam mê vậy là tốt :joy:
Anh lớp 11, đang tìm thêm về arduino nhưng đam mê không được như thế :joy:

https://www.facebook.com/ngocduy.nguyen.180 ạ!
Dạo này em không được chăm như trước, phần vì bài trên lớp với lại tham gia các hoạt động ngoại khóa để kiếm chứng chỉ đi du học. Có gì em bây giờ mới bắt đầu quay lại với tự học thôi

2 Likes

Em mới lớp 7 nè, có gì xin chỉ giáo :slight_smile:

em chỉnh sửa lại code này như sau

Code Caro 3x3 made with c++

em chạy dùng được, dùng system(“cls”) để xóa vài kí tự rác

Học 4 ngày mà giỏi vậy trời !!!
Học gần 2 tháng còn lơ tơ mơ k hiểu cái gì đây ==

Toàn những cao thủ mak, em hok đc 1 tuần mới thử coi caro thôi

Cho em xin bản quyền để cải tạo và xuất bản App :upside_down_face:
Lấy phiên bản đầu là v0.5.1 :yum:
Code là:

Code Caro v0.5.1 file txt
Mặc dù chưa học gì nhiều C++ :sweat_smile:

Mình thì không có góp ý gì về code mà muốn góp ý cái khác đó là bạn nên chịu khó học hết 1 lượt tất cả những kiến thức cơ bản đã

  • Câu lệnh rẽ nhanh
  • Vòng lặp
  • Hàm
    Rồi hẵng tập làm 1 sản phẩm như game Caro này chẳng hạn.
4 Likes

Không nên dội gáo nước lạnh vậy :smiley: từ từ ta điều chỉnh sau.

4 Likes

Học cơ bản, ứng dụng cái đã học vào để hiểu bài hơn, như vậy cũng tốt rồi.
Bây giờ tốt nhất đừng quan tâm đến cái game này nữa,
mà hãy học tiếp kiến thức mới, học cho xong hướng đối tượng luôn,
rồi quay lại đập game này đi làm lại (hoặc làm game khác)
Lúc đó bạn sẽ áp dụng được một tư duy xịn hơn vào việc làm game.

Bây giờ tốn thời gian củng cố mấy cái code của tư duy 4 ngày thì không tốt.
Đó là ý kiến của mình.

3 Likes

Làm game mới có động lực chớ, kiểu như là làm xong chơi cái mình vừa làm(do chính tay mình tạo ra nên sẽ vui và sẽ có đọng lực hok lập trình), giống như mk hồi tiểu học toàn làm game bằng scratch.

1 Like

Ý mình là ở trường hợp cụ thể này,
bạn ấy đã làm cái game caro sau 4 ngày học,
bạn ấy làm sớm quá, trong khi tư duy lập trình chưa hoàn thiện, nên game có rất nhiều sai sót và khó cải tiến

Nếu bây giờ vừa học vừa cố gắng cải thiện cái code này thì không hiệu quả, tốn thời gian,
nên học xong căn bản, học hướng đối tượng rồi đập đi làm lại, sẽ dễ hơn là vô fix cái đống bùi nhùi đang có, ý mình là vậy.
Cũng giống như bạn xây nhà trên nền đất không có móng, thì chỉ được nhà cấp 4, lên 2 3 tấm là sập ngay.
Muốn chặt cây nhanh và hiệu quả, thì trước tiên phải mài rìu cho bén.

Mà post này hình như cũng lỗi thời rồi,
chỉ là chia sẻ kinh nghiệm cho những bạn mới cũng đang trong hoàn cảnh tương tự.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?