30/09/2018, 20:59
Game Chiếc Nón Kỳ Diệu Trên C
Mình đang viết game Chiếc nón kỳ diệu trên C. Có vấn đề mình cần mọi người trợ giúp?
thay vì nó ra:
H----
-A—
–N--
—O-
-----I
mà mình muốn ra HANOI thì làm sao?
Bài liên quan
Mình không hiểu ý bạn lắm ?
:v Bạn dùng mảng lưu kết quả như thế nào?
Ở trên mình nghĩ chắc bạn khởi tạo lại mảng mỗi lần lặp?
Nói chung là xin code để tìm lỗi dễ hơi
bạn lưu từ cần đoán là HANOI vào 1 mảng tĩnh,sau đó đếm phần tử của mảng tĩnh đó để cáp phát động cho 1mảng,mảng này dùng để lưu các từ đoán đúng của người chơi-> để so sánh vs mảng HANOI,mảng động này ban đầu khởi tạo gt cho các phần tử là’*’.Tiếp theo,khi người chơi đoán 1 chữ nếu đúng(cần viết 1 hàm kt sự có mặt của từ ng chơi đoán) thì thay đổi gt của mảng động.Trò chơi này mình đã làm rồi,nếu bạn có thắc mắc gì thìinhf sẵn lòng trả lời
Thêm cái
system("color B")
cho đẹp xíu Dùng mảng xử lý problems này nhé!Code của mình đây. Mọi người xem sai chỗ nào nhé!
theo mình nghĩ thì nếu muốn in ra kết quả những chữ cái đã đoán đúng thì dùng một mảng nữa có độ lớn trùng với mảng câu trả lời, mảng này có 2 giá trị 0 và 1, 0 là chưa đoán đc còn 1 là đoán đc. Lúc in ra kết quả thì xét mảng này là biết đoán đc chữ nào thôi
Mình cũng nghĩ như bạn Giang Son Nguyen là tạo 1 mảng nữa có độ dài tương tự như mảng trả lời, theo như trên là quatrinh[] = “-----”. Mỗi 1 lần khi bạn đoán 1 chữ cái thì sẽ check trong mảng trả lời xem có từ đó ko, nếu có thì thay chữ cái đó vào mảng quatrinh[] (vị trí có thể lấy từ mảng trả lời hoặc bạn từ điền vào), nếu không thì thôi. Mỗi lần bạn chỉ cần in mảng quatrinh[] ra thôi
Mình hiểu rồi! Cảm ơn bạn
Ngoài ra bạn có thể tạo ra một chuỗi toàn các dấu trừ cùng kích thước với “HANOI”. khi đoán trúng thì dấu trừ biến thành kí tự cùng vị trí trong “HANOI”. Khi in ra bạn chỉ việc in chuỗi đó ra.
Cách dùng mảng bool cũng khá hay, tự mình không nghĩ ra được :>
Mình củng từng làm bài này nên chia sẻ cho bạn:
còn đây là nội dung file1.txt để cùng thư mục với file .exe bạn nhé
FACEBOOK
CHELSEA
MANCHESTERCITY
MANCHESTERUNITED
LIVEPOOL
BARCELONA
REALMADRID
ARSENAL
Vậy vd như HANOI thì có chuoi[] = ‘-----’. Nếu đoán trúng chữ H thì dấu “-” đầu tiên thay thế bằng chữ H. Làm sao để in ra 4 dấu “-” còn lại. Còn nếu đoán trúng chữ N thì làm sao để ra zậy: --N–.
Vd cho chuỗi s[] = “HOCHIMINH” có chiều dài 9.
-Nếu đoán trúng chữ H thì làm sao để in ra như thế này:
H–H----H
–Nếu đoán trúng chữ I thì làm sao để in ra như thế này:
H–HI-I-H
Dòng này là sao bạn? Với biến ý nghĩa của biến right
cách dễ nhất là bạn làm 1 cái mảng
int char_count[26][100]
tức là mảng 2 chiều 26 dòng 100 cột, với quy ước là không có từ nào quá 98 ký tự. Trong đóchar_count[0]
cho biết về thông tin số chữ A có trong từ đang hỏichar_count[1]
cho biết về thông tin số chữ B có trong từ đang hỏichar_count[2]
cho biết về thông tin số chữ C có trong từ đang hỏi…
char_count[25]
cho biết về thông tin số chữ Z có trong từ đang hỏichar_count[i]
là mảng 1 chiều 100 số nguyên, trong đó:số nguyên đầu tiên
[0]
chỉ có giá trị 0 hoặc 1, cho biết là ký tự thứ i đã được người chơi chọn hay chưa.số nguyên thứ hai
[1]
chứa số lượng ký tự thứ i có trong từ đang hỏi, nếu ko có thì có giá trị 0.các số nguyên còn lại chứa vị trí ký tự thứ i xuất hiện trong từ đang hỏi.
ví dụ cho từ “HOCHIMINH”, mảng
char_count
ban đầu sẽ mang giá trịviết lại cho gọn là
khi người chơi đoán chữ H (lưu ở
char guess
, từ đang đoán ban đầu làsecret
mang giá trị---------
char_count[guess-'A'][0]
: nếu là 0 thì tiếp tục, nếu là 1 thì output là đã đoán chữ H rồi.char_count[guess-'A'][1]
: nếu là 0 thì output “Không có chữ H”. nếu lớn hơn 0 thì duyệt lần lượtchar_count[guess-'A'][j]
với j = 2 tớichar_count[guess-'A'][1] + 1
, ví dụ ở đây là từ 2 tới 4, ta có các index lần lượt là 0, 3, 8, gánsecret[0] = guess
,secret[3] = guess
,secret[8] = guess
. Thu đượcH--H----H
, xuất chuỗi này ra.rồi cứ thế mà chạy, tới khi hết limit thì người chơi thua, hoặc thêm 1 biến đếm số lượng chữ cái đã được mở, nếu mở hết thì người chơi thắng.
Đúng rồi! Bạn có thể chỉ mình cách làm dc ko?