Xin chào và chào mừng.
Tôi muốn cung cấp một minh chứng giải pháp cho thách
thức trước đây của chúng tôi đang triển khai một trò chơi đoán và loại số.
Vì vậy, hãy đưa ra mã , đóng dự
án hiện tại của tôi và tạo một dự án mới.
Dự án mới này, tôi vừa tham gia để gọi trò chơi đoán số.
Nó sẽ là một ứng dụng giao diện điều khiển.
Vì vậy, tôi sẽ chỉ gọi nó là đoán số.
Và những gì tôi sẽ làm trong để bắt đầu dự án này Tôi sẽ khai báo các
biến của mình.
Tôi luôn thích tuyên bố và đó là các biến của tôi ở trên cùng.
Nhưng tôi cũng sẽ sử dụng trình tạo số ngẫu nhiên.
Vì vậy, tôi muốn đảm bảo rằng Tôi có một vài bao gồm.
Stdlib đã ở đó theo mặc định.
Vì vậy, tất cả những gì tôi cần làm là thêm thời gian. h vì một lần nữa điều này dành cho bộ
tạo số ngẫu nhiên.
Điều này về cơ bản dành cho ghế máy phát số ngẫu nhiên.
Các biến khác mà tôi Điều cần thiết trong chương trình này là tôi muốn
lưu trữ các số ngẫu nhiên của mình.
Vì vậy, tôi sẽ chỉ nói số ngẫu nhiên, tôi sẽ khởi tạo số đó thành 0
cho đến khi tôi lấy nó từ thư viện thực tế.
Vì vậy, khai báo khởi tạo.
Tôi sẽ tạo một biến để lưu trữ dự đoán từ người dùng và tôi sẽ
khởi tạo dự đoán đó bằng 0.
Tôi sẽ tạo một biến khác đó sẽ là số
lần đoán, số lượng hiện tại của dự đoán hoặc thực sự
tôi nên nói số lần đoán tối đa, tối đa số lần đoán và tôi sẽ khởi tạo số này thành
5 vì họ chỉ có thể đoán 5 lần.
Tôi cũng phải tạo ra một thời gian để tôi có thể sử dụng nó cho trình
tạo số ngẫu nhiên của mình.
Vì vậy, tôi sẽ chỉ nói thời gian t.
Điều đầu tiên tôi muốn làm trước khi yêu cầu người dùng nhập liệu là tôi
muốn tạo số ngẫu nhiên.
Tôi đoán tôi có thể làm điều này sau khi yêu cầu người dùng để nhập liệu nhưng thật dễ dàng
để thực hiện điều đầu tiên bạn làm.
Vì vậy, tôi sẽ khởi tạo trình tạo số ngẫu nhiên, tôi sẽ đưa ra một
bình luận nhỏ ở đó.
Hãy chắc chắn rằng bạn sử dụng tốt và có ý nghĩa tên và đảm bảo bạn thụt lề.
Nó sẽ sử dụng chức năng srand đó mà tôi đã nói đến trong bài giảng.
Bạn chỉ có thể vượt qua nó về cơ bản trong một hạt giống.
Vì vậy, tôi sẽ nói là không dấu, và tôi sẽ chỉ chuyển vào biến t của tôi.
Điều này sẽ có được thời gian là một hàm lấy thời gian hiện tại.
Tôi sẽ vượt qua trong t để nó gieo nó và sau đó tôi sẽ kết thúc nó.
Bây giờ tôi thực sự cần lấy trình tạo số ngẫu nhiên, vì vậy tôi
sẽ nói lấy số ngẫu nhiên.
Và tất cả những điều này sẽ làm là gán một biến cho những gì
được trả về từ hàm rand.
Vì vậy, hãy giả sử số ngẫu nhiên biến cục bộ của
tôi bằng và sử dụng toán tử gán cho biết rand đang gọi một hàm.
Bạn không cần biết bất kỳ điều gì trong số này, nhưng tôi sẽ gieo nó bằng 21.
Điều này sẽ đảm bảo rằng sự ngẫu nhiên của tôi số chỉ từ 0 đến 20.
Bây giờ tôi sẽ chỉ xuất ra một một vài thông báo lên màn hình để người
dùng biết họ đang làm gì.
Vì vậy, tôi sẽ làm một ứng dụng in và tôi sẽ nói rằng đây là một trò chơi đoán.
Và sau đó tôi cũng sẽ nói với họ
rằng tôi đã chọn lại một số từ 0 đến 20, để họ được thông báo.
Và sau đó là 0 và 20 mà bạn phải đoán và kết thúc nó bằng nguồn cấp dữ liệu dòng.
Bây giờ tôi đã nói với họ những gì tôi muốn trong trò chơi, tôi sẽ thực sự
bắt đầu lặp lại.
Và tôi sẽ lặp lại cho đến khi số lần đoán bằng 5.
Vì vậy, những gì tôi thực sự muốn là tôi muốn xóa số lượng phỏng
đoán của mình ở đây, nhưng Tôi không muốn khởi tạo.
Tôi muốn khởi tạo trong vòng lặp của mình chỉ để cho bạn thấy rằng tôi có thể làm điều đó.
Nếu tôi đã khởi tạo nó ở đó, trước dấu chấm phẩy đầu tiên trong vòng lặp for, tôi có
thể giữ nó trống.
Vì vậy, ví dụ, tôi có thể làm một cái gì đó như thế này, khởi tạo nó ở đây.
Và sau đó trong vòng lặp for của tôi, tôi sẽ chỉ cần đặt dấu chấm phẩy vì
tôi không cần thực hiện khởi tạo.
Bởi vì hãy nhớ, trong vòng lặp for của chúng
tôi, điều đầu tiên bạn có trước dấu chấm phẩy là khởi tạo của biến điều khiển vòng lặp.
Tôi đã khởi tạo nó rồi vì vậy tôi không cần phải làm
điều đó, nhưng tôi không muốn làm điều đó.
Tôi sẽ chỉ tuyên bố nó ở đây và tôi sẽ khởi
tạo nó ở đây.
Tôi sẽ nói tối đa số lần đoán bằng 5.
Đó là biến điều khiển vòng lặp của tôi, Tôi sẽ khởi tạo nó.
Tôi sẽ nhảy ra khỏi lặp lại nếu đạt đến số lần đoán
tối đa của tôi.
Vì vậy, ở đây tôi sẽ nói thực sự tôi sẽ viết nó theo một cách khác.
Tôi sẽ viết nó để vòng lặp đi từ 5 đến 0.
Vì vậy, số lớn nhất của tôi bằng 5.
Sẽ tốt hơn nếu đổi tên biến này.
Hãy đổi tên nó và nói số lần đoán.
Và số lần đoán sẽ bắt đầu là 5.
Và tôi sẽ làm điều này đi ngược lại.
Và khi số lần đoán là 0, Tôi muốn nhảy ra khỏi vòng lặp.
Vì vậy, điều kiện thoát khỏi vòng lặp của tôi, Tôi sẽ nói rằng số
lần đoán lớn hơn 0.
Xem những gì tôi đang làm ở đây.
Tôi sẽ chỉ nhảy ra khỏi lặp lại nếu tôi không còn đoán nữa.
Vì vậy, nếu tôi lớn hơn 0, tôi sẽ ở trong vòng lặp.
Và điều cuối cùng tôi muốn cung cấp trong vòng lặp for sau khi dấu hai chấm
khí hậu thứ hai là sửa đổi của biến điều khiển vòng lặp đó.
Vì vậy, tôi sẽ chỉ làm một trừ đi số lần đoán.
Và những gì bạn nên chú ý trong vòng lặp for này là
tôi đang bắt đầu ... Tôi gần như sắp lùi lại.
Tôi đang bắt đầu từ 5 tuổi và sắp về 0.
Đối với tất cả các ví dụ chúng tôi cung cấp trong bài giảng, chúng tôi bắt đầu từ 0 và chúng tôi đi lên.
Nhưng bạn có thể làm cả hai, nó không quan trọng.
Bạn vẫn đang lặp lại ở đây 5 lần.
Bây giờ tôi muốn hiển thị một thông báo cho họ
biết họ còn bao nhiêu lần thử.
Vì vậy, tôi sẽ nói printf, và thực sự tôi sẽ kết hợp toán tử bậc ba ở
đây vì chúng tôi đã không sử dụng nó.
Không cần phải làm theo cách này, nhưng tôi sẽ làm theo cách này chỉ để
cho bạn thấy bạn như thế nào có thể sử dụng toán tử bậc ba.
Vì vậy, đây tôi sẽ in ra bạn còn lại phần trăm d.
Phần trăm d sẽ là số lần đoán và tr phần trăm bằng
nhau, nó sẽ thay đổi.
Nó sẽ được thử hoặc nó sẽ được thử.
Và vì vậy tôi sẽ thay đổi những gì được hiển thị dựa trên
số lượng phỏng đoán tôi còn lại.
Nếu số lượng dự đoán bằng 1.
Tôi không muốn lên kế hoạch thử, một cố gắng là trái, điều đó không có ý nghĩa.
Tôi muốn in thử một lần.
Vì vậy, ở đây tôi sẽ sử dụng toán tử cấp ba hay chính xác hơn
là toán tử điều kiện.
Tôi sẽ nói nếu số lần đoán bằng 1, sau đó đặt số lần đoán bằng
y, sau đó đặt thành IES.
Và tôi sẽ in nó những gì phần trăm s đang làm, bất cứ điều gì
được trả lại ở đây.
Vì vậy, điều này sẽ trở lại hoặc là một IES và hiển thị thông tin chính
xác.
Vì vậy, tôi đã làm điều đó chỉ để một chút ưa thích
chỉ cho bạn cách bạn có thể sử dụng thiết bị đầu cuối, in ra thông tin đúng.
Sau khi tôi in ra số trong số lần thử cuối cùng, sau đó tôi muốn yêu
cầu họ nhập một dự đoán.
Vì vậy, tôi sẽ đưa ra một số thông
tin và chỉ cần nói printf, chỉ cần nhập một dự đoán và điều này sẽ có một nguồn cấp dữ liệu dòng.
Vì vậy, hãy nhập một dự đoán, và sau đó tôi sẽ để đọc dự đoán đó bằng cách sử dụng scanf, chúng tôi biết cách
đọc từ bàn phím.
Nó sẽ là một số nguyên, vì vậy tôi sẽ thực hiện phần trăm d và
tôi sẽ đưa nó vào biến đoán.
Vì vậy, tôi cần sử dụng ký hiệu và.
Bây giờ tôi phải kiểm tra.
Tôi phải kiểm tra xem đoán rằng Tôi là điều mà tôi quan tâm.
Vì vậy, ở đây chúng tôi có một điều kiện thoát khác.
Tôi sẽ sử dụng câu lệnh if.
Tôi sẽ nói nếu đoán bằng số ngẫu nhiên của tôi, tôi muốn
làm gì?
Vâng, trước tiên tôi muốn in ra ngoài và nói với họ
rằng họ đã đoán đúng.
Vì vậy, tôi sẽ in ra, xin chúc mừng, bạn đã đoán nó.
Tôi muốn làm gì nữa nếu họ đoán đúng?
Tôi muốn thoát khỏi vòng lặp.
Vậy làm cách nào để thoát khỏi vòng lặp?
Tôi có thể nghỉ ngơi.
Tôi có thể nghỉ ngơi, điều đó sẽ nhảy ra khỏi vòng lặp của tôi.
Bây giờ nếu nó không bằng nhau, vậy Tôi muốn thêm một cái khác nếu.
Nếu nó không bằng nhau, tôi muốn kiểm tra đảm bảo rằng họ đã xác thực số.
Vì vậy, trước khi tôi nói bạn có thể có một vòng lặp lồng nhau để xác thực để họ
nhập lại, bạn không cần phải làm điều đó, bạn có thể chỉ cần
có một câu lệnh f.
Vì vậy, ở đây tôi muốn xác nhận số lượng.
Nếu nó không bằng số ngẫu nhiên, tôi muốn
đảm bảo rằng nó nằm trong khoảng từ 0 đến 20.
Vì vậy, nếu dự đoán nhỏ hơn 0 hoặc chúng tôi đang sử
dụng một toán tử logic hoặc 2 thanh song song hoặc đoán là lớn hơn 20 về cơ bản
đang kiểm tra một phỏng đoán không hợp lệ.
Nếu đúng như vậy và tôi thì không sẽ sử dụng một dấu ngoặc đơn vì tôi chỉ
có một câu lệnh ở đây, dấu ngoặc là tùy chọn nếu bạn chỉ
có một câu lệnh.
Vì vậy, nếu họ nhập dự đoán không hợp lệ, tất cả những gì tôi sẽ làm là printf.
Tôi sẽ in ra tôi đã nói số nằm trong khoảng từ 0 đến 20.
Và những gì sẽ xảy ra ở đây là không có gì.
Nó sẽ in thôi hết và nó sẽ
chuyển sang lần lặp tiếp theo.
Nó sẽ cho họ biết làm thế nào nhiều lần thử họ đã bỏ đi và
nó sẽ bắt đầu phỏng đoán.
Bây giờ nếu bạn không muốn hợp lệ các số nếu họ đã nhập các
số hợp lệ không được tính là phỏng đoán, thì bạn có thể có một vòng lặp lồng nhau.
Nhưng nếu họ bước vào thứ 25, nó vẫn sẽ được tính là một phỏng đoán.
Vì vậy, tôi chỉ nói rằng tôi đặt một số từ 0 đến 20.
Nếu họ đã nhập một số hợp lệ nhưng nó không đúng, đó sẽ
là mệnh đề khác.
Ở đây, tôi chỉ nói, xin lỗi, nhầm số và tôi sẽ cho họ
biết liệu đó là lớn hơn hoặc thấp hơn.
Và tôi có thể sử dụng chim ba ba ở đây, nhưng tôi sẽ không sử dụng.
Vì vậy, chúng ta hãy thêm một nếu ở đây.
Khác nếu ngẫu nhiên lớn hơn đoán xem tôi muốn in cái gì?
Tôi muốn in ra, xin lỗi phần trăm d là sai, phần trăm d sẽ là dự đoán của họ.
Số của tôi là phần trăm s là từ đầu tiên.
Nếu ngẫu nhiên lớn hơn, số của tôi lớn hơn.
Con số của tôi lớn hơn thế, và tôi không sử dụng
bất kỳ phần trăm nào và tôi chỉ có một nguồn cấp dữ liệu dòng.
Khác nếu số ngẫu nhiên thấp hơn dự đoán, sau đó tôi muốn nói với họ rằng nó
thấp hơn.
Vì vậy, tôi có thể sao chép và dán điều tương tự.
Tôi có thể nói xin lỗi, số sai rồi, số của tôi ít hơn thế.
Và một lần nữa, bạn thực sự có thể đặt 2 ifs khác.
Bạn có thể có một cái khác nếu và
bạn thực sự có thể tạo một câu lệnh điều kiện ở đây.
Bạn có thể có toán tử bậc ba, nhưng tôi sẽ sử dụng 2 ifs khác và nói rằng
nó nhỏ hơn thế.
Và sau đó sẽ là nó, điều đó sẽ kết thúc vòng lặp.
Và nếu chúng ta ra ngoài vòng lặp và chúng tôi đã không đoán
chính xác và chúng tôi đã vượt quá số lần thử của mình, thì tôi sẽ
nói với họ rằng họ đã có 5 lần thử và họ không đoán số và tôi
sẽ cho họ biết số.
Vì vậy, kết quả cuối cùng cho người dùng để nói họ không thắng trò chơi và cho họ biết
con số là bao nhiêu.
Vậy là bạn đã thử 5 lần và không thành công, số là số ngẫu nhiên.
Được rồi, vậy điều đó có hợp lý không?
Chúng tôi đang làm rất nhiều thứ ở đây.
Chúng tôi đang sử dụng câu lệnh if, else các câu lệnh trong một vòng lặp và chúng tôi đang
triển khai trò chơi số.
Và điều cuối cùng là chúng ta trở lại từ chức năng chính.
Vì vậy, hãy tiếp tục và biên dịch và bạn nên làm gì
trong toàn bộ bài tập này?
Bạn nên thử nghiệm và làm việc trong một đoạn nhỏ.
Bạn có lẽ nên có bắt đầu làm việc đầu tiên chỉ cần
lấy số ngẫu nhiên để làm việc sau đó thử nghiệm và biên dịch và thử nghiệm.
Sau đó, bắt đầu vòng lặp của bạn.
Đảm bảo rằng vòng lặp của bạn chỉ chạy số lần đoán, tối đa 5 lần và sau đó lấy nó
để làm việc và kiểm tra.
Sau đó hỏi người dùng câu trả lời một số thông tin, có được điều đó để
làm việc và kiểm tra.
Sau đó, so sánh với thời điểm thoát nếu họ đoán đúng, kiểm tra và sau đó viết câu lệnh
if của bạn thử nghiệm, đó là cách tôi sẽ triển khai.
Vì vậy, hãy xây dựng cái này và xem nó có biên dịch không.
Hy vọng rằng, tôi đã không mắc phải bất kỳ sai lầm nào.
Tôi sẽ nói xây dựng.
Tôi có lỗi, tôi có số không hợp lệ.
Nó phải là số ngẫu nhiên, không phải ngẫu nhiên vì đó là tên
của biến của tôi.
Và lần này tôi có 0 lỗi 2 cảnh báo.
Tôi có một phần trăm d mong đợi một số int phù hợp.
Tôi đã quên đặt ra số ngẫu nhiên hoặc đoán.
Dự đoán ở đây và đoán và một trong những khác.
Tôi muốn nói với họ rằng họ đoán Xin lỗi bạn đã đoán sai, không cần phải làm điều
này, nhưng chỉ cần một điều tốt đẹp nhỏ.
Bây giờ hãy xây dựng nó bởi vì bạn luôn muốn sửa chữa các cảnh báo của bạn.
Bạn muốn có 0 cảnh báo 0 lỗi.
Bây giờ khi chúng tôi chạy cái này, chúng tôi phải kiểm tra.
Và có nhiều bài kiểm tra khác nhau trường hợp bạn muốn chạy ở đây.
Bạn sẽ muốn chạy nhiều thử nghiệm vì hãy nhớ rằng không bao giờ tốt nếu
chỉ kiểm tra một thứ.
Vì vậy, ở đây nó nói rằng đây là một phỏng đoán
trò chơi, tôi đã chọn một số từ 0 đến 20, bạn phải đoán, bạn còn 5 lần thử.
Vì vậy, tôi sẽ đưa vào 16.
Xin lỗi, 16 là sai, số ít hơn thế.
Tôi sẽ thử dùng nó 8.
8 là sai, ít hơn thế.
Tôi sẽ làm 4.
4 là sai, số của tôi lớn hơn thế.
Ồ, tôi đã phạm sai lầm, tôi đã không đọc nó đầu tiên.
Vì vậy, nó lớn hơn 8.
Hãy thử 12.
Tôi chỉ còn 2 lần thử.
Tôi đoán đúng với 12.
Vì vậy, nó nói lời chúc mừng.
Nhưng bạn cũng muốn thử một lần thất bại.
Bạn muốn kiểm tra một vài thứ ở đây, nhưng ở đây hãy để tôi kiểm tra và tôi
sẽ nói suy đoán của mình và Tôi sẽ chỉ đưa vào số 0.
0 là sai.
Tôi sẽ tiếp tục đặt 0, và ở đó tôi đoán tôi đã sai 5 lần.
Nó nói rằng bạn đã có 5 lần thử và không thành công.
Con số mà bạn muốn đoán là 3.
Vì vậy, nó hoạt động.
Bây giờ chúng ta hãy kiểm tra để đảm bảo những gì sẽ xảy ra nếu chúng tôi nhập các số không hợp lệ.
nếu tôi nhập 45.
Tôi đã nói con số là 0 và 20.
Vì vậy, đó là một trường hợp thử nghiệm khác và nó được tính là một lần thử.
Nếu tôi không muốn tài khoản đó là hãy thử, nó có thể có một vòng lặp lồng nhau.
Tôi nghĩ đó là về nó.
Chúng tôi đã thử nghiệm tất cả các trường hợp.
Chúng tôi đã thử nghiệm các trường hợp bạn đã đoán thành công.
Chúng tôi đã thử nghiệm trường hợp bạn đã không đoán thành công.
Và chúng tôi đã thử nghiệm trường hợp bạn đã nhập một số không hợp lệ.
Có lẽ thử nghiệm duy nhất khác sẽ đảm bảo rằng nó đang nói lớn hơn và thấp hơn, mà tôi nghĩ rằng chúng tôi đã thử
nghiệm trong lần đầu tiên sẽ thực sự cho chúng
tôi biết để nhập thấp hơn hoặc lớn hơn.
Vì vậy, chúng ta hãy thử điều đó.
Vì vậy, vào thời điểm này khi tôi bước vào tuổi 20, nó nói ít hơn là tốt.
Bây giờ tôi sẽ nhập 10 và tôi đoán nó.
Vì vậy, tôi đoán họ nhanh chóng.
Nhưng chúng ta sẽ thấy ít hơn và lớn hơn trong cùng một sản lượng.
Hãy thử lại, và ngẫu nhiên số đang hoạt động vì tôi đang tạo các số
khác nhau mỗi lần tôi chạy chương trình.
20 là sai.
Bây giờ chúng ta hãy thử 19.
Hãy thử 1 và nó lớn hơn thế.
Vì vậy, tôi thấy lớn hơn và ít hơn.
Vì vậy, tôi khá chắc chắn rằng nó đang hoạt động.
Nhìn có vẻ khá tốt đối với tôi.
Một điều bạn nên chú ý có một lỗi nhỏ trong chương
trình, tôi đã kiểm tra bạn.
Vì vậy, khi bạn chạy nó bởi vì chúng tôi có lần đột nhập này, nó vẫn sẽ in
ra rằng tôi đã thất bại mặc dù khi tôi đã thành công.
Vì vậy, bạn nên chú ý rằng trong đầu ra trước
đó, tôi đoán đúng số.
Đó là lời chúc mừng được in ra.
Nhưng sau đó nó cũng in ra tôi không thành công, điều đó có vẻ không đúng.
Vậy cách khắc phục đó là bạn không có đột phá, bạn muốn
có một sự trở lại.
Và bây giờ khi nó trở lại
nó sẽ không in ra ở dòng 39 nếu bạn thắng.
Nó sẽ không in ra rằng bạn đã thất bại.
Vì vậy, một bài kiểm tra cuối cùng và bạn nên đã nắm bắt được điều này
sớm hơn, nhưng khi chúng tôi xây dựng và chúng tôi đoán đúng, nó sẽ không hiển thị lỗi.
Vì vậy, chúng tôi có thể tiết kiệm thời gian chạy và khi chúng tôi chạy cái này, bạn có 5 lần đoán.
Tôi sẽ nói 10, ít hơn thế.
Chúng tôi sẽ nói 6, và tôi đoán nó.
Và bạn sẽ nhận thấy ở đó nó nói lời chúc mừng.
Chúng tôi không thấy sản lượng bổ sung đó điều đó nói rằng tôi cũng đã thất bại.
Vì vậy, bạn muốn chắc chắn rằng bạn thêm giá trị đó vào dòng
30 để chương trình chạy chính xác.
Bạn có thể thêm một câu lệnh if khác nếu bạn muốn làm như
vậy mà không in ra printf, có thể đã có một thời gian nghỉ tại đây và sau đó
tại printf, bạn có thể kiểm tra xem có bao nhiêu lần đoán số đếm bạn cũng phải xác định xem nó có
nhỏ hơn 5 hay không thì xin chúc mừng.
Nhưng một lỗi nhỏ ở đó, và hy vọng bạn nhận thấy nó trong
quá trình thử nghiệm, việc quay trở lại sẽ sửa chữa nó.
Vì vậy, một chương trình nhỏ gọn gàng.
Tôi hy vọng điều này đã giúp bạn học được một rất nhiều về vòng lặp và tất cả
các tuyên bố quyết định của bạn và thực sự giải quyết vấn đề.
Hy vọng rằng bạn đã hiểu được điều này và thiết kế cái này trước
khi bạn thực sự bắt đầu viết mã, điều đó luôn quan trọng.
Hi vọng điêu nay co ich.
Tôi sẽ cung cấp mã nguồn để bạn có thể so sánh nó và xem và phân tích nó.
Cảm ơn bạn.