Đối với trò chơi của tôi, tôi bắt đầu với cảnh tiêu chuẩn “bạn thức dậy ở một nơi xa lạ”, nơi tôi đang tìm kiếm thông tin đầu vào cơ bản của người dùng. Đầu tiên, đây là phần đầu của chức năng cũng như các bộ mô tả ban đầu và một menu ngắn
def intro[]:
print["Last night, you went to sleep in your own home."]
print["Now, you wake up to an unfamiliar environment."]
print["As your eyes flutter open, darkness greets you. Your surroundings are blind to you."]
print["You are sat on a bed, and a wall hugs your back. Beside you is a table, whose outline you can vaguely determine."] print["1 - to check under the bed"]
print["2 - to check the table"]
Tiếp theo, chúng ta sẽ đọc trong đầu vào. Tuy nhiên do người dùng không nhất thiết phải tuân theo quy tắc nhập chữ số nên chúng ta cần test đầu vào. Chúng ta cần đảm bảo rằng các chữ số là số nguyên, chúng là các số một và hai và giá trị thực tế là một số nguyên
Để làm điều này, chúng tôi sẽ kiểm tra trong một vòng lặp. Chúng tôi sẽ “thử” phân tích cú pháp đầu vào thành một số nguyên và nếu điều đó không hiệu quả, chúng tôi sẽ nhắc người dùng nhập một giá trị số nguyên. Mặt khác, nếu nó là một số nguyên khác một hoặc hai, nó khuyến khích người dùng chọn một trong các chữ số đó
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
Bây giờ chúng tôi đã có đầu ra, trong trò chơi cá nhân của tôi, tôi có thêm một danh sách thiết lập câu chuyện
print[""]
print["The note reads:"]
print["My dearest participant,"]
print[" If you notice, the door contains a padlock with a three digit code."]
print[" You will find this code hidden within the room, and must solve it. You shall find three numbers, and must order them correctly."]
print[" I wish you the best of luck."]
print["Sincerely, your gracious host."]print[""]
print["You examine the room and see:"]
Đó là mã cuối cùng cho tệp giới thiệu. Tiếp theo, chúng ta sẽ cần thiết lập menu
Viết thực đơn
Đối với tệp menu này, chúng tôi sẽ cần chuyển một danh sách các mục để chọn. Chúng tôi cũng sẽ gửi lời nhắc người dùng. Trong vòng lặp “for”, chúng tôi sẽ in từng mục trong danh sách đó. Khi chúng ta có những thứ đó, chúng ta sẽ sử dụng vòng lặp “while” để kiểm tra đầu vào, giống như chúng ta đã làm trong tệp giới thiệu. Một lần nữa, chúng tôi sẽ nhắc người dùng sửa thông tin nhập của họ vào danh sách kết quả dự kiến
def menu[list, question]:
for item in list:
print[list.index[item], item]
while True:
result = input[question]
try:
result = int[result]
break
except:
print["Selection must be whole number between 0-9:"]
return result
Bây giờ chúng ta đã hoàn thành tệp menu, chúng ta có thể viết tệp tiếp theo, tệp này sẽ chứa các mục bên trong menu
Viết tệp searchItem
Đối với tệp này, chúng ta nên bao gồm tất cả các phần tử còn lại sẽ tham gia vào menu. Mục tiêu của trò chơi là tìm các số ẩn của mã ổ khóa, vì vậy menu sẽ bao gồm mọi mục có khả năng tìm kiếm, cũng như cánh cửa chứa ổ khóa. Đầu tiên, chúng tôi sẽ khai báo Cửa, nơi chúng tôi sẽ cần chuyển mã để kiểm tra xem người chơi có đoán đúng không. Mã được chèn sẽ cần kiểm tra từng chữ số, giống như trong hai tệp trước. Vì trò chơi sẽ ở trong một vòng lặp, nên chúng tôi cũng cần phá vỡ vòng lặp bằng cách gửi xác nhận tích cực nếu mã chính xác và mã nào đó để tiếp tục vòng lặp nếu mã không chính xác
def Door[code]:
print["You walk to the door. The rotary padlock contains three digits. You enter a code"]
while True:
try:
option1 = int[input["Digit one: "]]
break
except:
print["Digit one must be a whole number between 0-9:"]
while True:
try:
option2 = int[input["Digit two: "]]
break
except:
print["Digit two must be a whole number between 0-9:"]
while True:
try:
option3 = int[input["Digit three: "]]
break
except:
print["Digit three must be a whole number between 0-9:"]
chosenCode = int[str[option1] + str[option2] + str[option3]]
print[""]
if chosenCode == code:
print["You hear a click, and the padlock shifts. As you press open the door a rush of fresh, warm air caresses your face. At last, you are free."]
return [1]
else:
print["You jiggle the padlock, but to no avail. The code is incorrect."]
return[0]
Tiếp theo, chúng tôi tạo mục tìm kiếm đầu tiên của mình. Chúng tôi cần gửi lựa chọn số menu cho mặt hàng đó, sau đó là vị trí mã đầu tiên để kiểm tra và cũng là đoạn mã đầu tiên nếu đó là vị trí chính xác
def Window[choice, codeLocation, codeValue]:
print[""]
print["You look at the window. It's dark, and damp. Mold grows along the edges and you cannot see through its musty panes."]
if choice == codeLocation:
print["Carved into the edging, you see the number " + str[codeValue] + "."]
print[""]
else:
print["You find no code."]
print[""]
Cửa sổ là lựa chọn đầu tiên. Như bạn có thể thấy, hầu hết mã đều dựa trên văn bản và do đó, nó có thể được thay đổi thành bất cứ thứ gì bạn muốn. Mã tiếp theo sẽ xử lý lựa chọn ba lô
def Backpack[choice, codeLocation, codeValue]:
print[""]
print["The backpack is your personal bag. Strange. You thought you lost it weeks ago."]
if choice == codeLocation:
print["Within the front pocket, you see the number " + str[codeValue] + " written on a crumpled note."]
print[""]
else:
print["You find no code."]
print[""]
Văn bản có thể đơn giản hoặc mô tả như bạn muốn. Bây giờ, chúng ta sẽ làm việc trên phần bình hoa
def Vase[choice, codeLocation, codeValue]:
print[""]
print["A dark blue vase holds roses that seem to have died long ago."]
if choice == codeLocation:
print["On the base, you see the number " + str[codeValue] + "."]
print[""]
else:
print["You find no code."]
print[""]
Như bạn có thể thấy, mã rất chuẩn cho các chức năng này. Nhưng một lần nữa, chúng có thể có độ dài bất kỳ mà cá nhân bạn muốn cho trò chơi của mình
________số 8Bây giờ chúng ta đã đi được nửa chặng đường lựa chọn các mặt hàng của tôi. Tôi quyết định làm chín trong số chúng, nhưng bạn có thể làm ít hơn nếu bạn muốn
def Painting[choice, codeLocation, codeValue]:
print[""]
print["Has Mona Lisa always been this creepy? Her eyes peer into you, her smile gleams as if she knows the fate that awaits you unless you find the code."]
if choice == codeLocation:
print["Painted in the corner, you see the number " + str[codeValue] + "."]
print[""]
else:
print["You find no code."]
print[""]
Một số tùy chọn chắc chắn mang tính mô tả hơn những tùy chọn khác, nhưng đó là niềm vui khi tận hưởng sự sáng tạo
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
0Một điều cần lưu ý, để ngăn nhiều mã sử dụng cùng một vị trí, có một danh sách được xác định trước về vị trí mà mỗi đoạn mã có thể được tìm thấy trong
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
1Gần đến nơi, chỉ còn hai mục nữa. Điều này có khả năng chứa đoạn mã thứ ba, nhưng không phải đoạn mã thứ hai hoặc thứ nhất như đã giải thích trước đây
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
2Đây sẽ là mục cuối cùng của chúng tôi
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
3Bây giờ, chúng tôi sẽ sẵn sàng tạo tệp cuối cùng, đây sẽ là tệp chính
Viết tệp chính
Trong tệp này, chúng tôi sẽ nhập tất cả các tệp khác, cũng như tạo mã ngẫu nhiên và khai báo trò chơi. Điều đầu tiên chúng ta cần làm là nhập mô-đun ngẫu nhiên
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
4Với việc đã nhập đó, giờ đây chúng tôi có thể nhập tất cả các chức năng trong mỗi tệp mà chúng tôi đã viết
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
5Để tạo mã, chúng tôi sẽ khai báo ba đoạn mã được tạo bởi các số nguyên ngẫu nhiên từ 0 đến 9. Chúng tôi cũng sẽ cần thêm chúng lại với nhau cho mã. Tiếp theo, chúng ta cần tạo danh sách các mặt hàng của mình. Sau đó, chúng tôi sẽ khai báo các vị trí mà các đoạn mã có thể có trong. Nhớ lại rằng để giữ cho chúng không bị trùng lặp, chúng tôi giữ các vị trí tiềm năng trong một tập hợp tiềm năng riêng biệt
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
6Bây giờ, chúng tôi đã sẵn sàng để bắt đầu trò chơi
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
7Cuối cùng, chúng tôi bắt đầu vòng lặp trò chơi. Nó sẽ tiếp tục chạy cho đến khi người dùng tìm đúng mã hoặc đoán đúng. Để xem lựa chọn của người chơi, hãy gọi menu và đặt nó trong một biến. Sau đó, lựa chọn nằm trong phần if/elif/else lớn hơn, nơi chúng tôi có thể gửi thông tin chi tiết phù hợp đến mục menu. Chúng tôi cũng sẽ cần gửi số lựa chọn và vị trí mã để chúng có thể được kiểm tra xem mặt hàng đó có ở đúng vị trí hay không. Chúng tôi cũng cần gửi đoạn mã trong trường hợp đúng. Bất cứ thứ gì không liên quan đến vật phẩm sẽ được gửi đến cửa để kiểm tra ổ khóa. Nếu mã trả về chính xác được trả về, cho biết người chơi đã nhập đúng mã ổ khóa, thì chúng tôi sẽ phá vỡ vòng lặp. Nếu không, trò chơi tiếp tục
while True:
bedOrWall = input[]
try:
if int[bedOrWall] == 1:
print["Under the bed, you feel a note. But you cannot see to examine it."]
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
break
elif int[bedOrWall] == 2:
print["You check the table and find a lamp. With a loud click, your surroundings are illuminated."]
print["You also check under the bed and find a note."]
break
else:
print["Enter either 1 or 2:"]
except:
print["Value must be whole number 1 or 2:"]
8Và đó là mã trò chơi dựa trên văn bản tùy chỉnh cuối cùng của chúng tôi
Thời gian để chơi game
Giới thiệu
Mở menu đầu tiên
Kiểm tra các địa điểm đầu tiên
Kiểm tra các địa điểm tiếp theo
Kiểm tra các địa điểm tiếp theo
Kiểm tra các địa điểm tiếp theo
Kiểm tra vị trí cuối cùng và cửa
Mã ổ khóa không thành công
Kiểm tra mục nhập của người dùng
Mã khóa thành công
Phần kết luận
Không phải là mã phức tạp nhất và nhiều giá trị được mã hóa cứng hơn, mà là một cú hích tốt từ quá khứ đối với tôi. Phần hay nhất của nó là với một vài kỹ năng đơn giản này, chúng ta có thể tạo ra nhiều loại trò chơi dựa trên văn bản. Bởi vì rất nhiều mô tả được mã hóa cứng, cốt truyện có thể là sự kết hợp của bất kỳ thể loại nào. Tôi hy vọng bạn thích trải nghiệm viết trò chơi này, cũng như chuyến đi ngược dòng ký ức của tôi. Cho đến lần sau, chúc mừng