Тексттик укмуштуу оюн куруу
Сөздөрдү дүйнөгө айландырабыз: бөлмөлөр, инвентарь жана маанилүү тандоолор
input, if / elif / else, циклдер, тизмелер, сөздүктөр жана функциялар -- бир кичинекей, бүткөн оюн куруу үчүн.
- бөлмөлөрдүн картасын сөздүктө сактоо,
- бөлмөнү көрсөтүү жана оюнчунун кадамын
inputаркылуу окуу, - бөлмөдөн бөлмөгө
if/elif/elseменен өтүү, - инвентарды тизмеде жүргүзүү,
- оюнду
whileцикли менен иштетүү жана жеңиш / жеңилүү шарттары менен аяктоо, - кодду кичине функцияларга бөлүп тартиптүү кылуу.
1. Тексттик укмуштуу оюн деген эмне?
Өзүң жолду тандай турган оюн-китепти элестет. Сен бетти окуйсуң, ал жерде: «эшикти ачуу үчүн 12-бетке өт; качуу үчүн 30-бетке өт» деп жазылган. Мындан ары эмне болорун сен чечесиң. Тексттик укмуштуу оюн ошондой эле, бирок беттерди компьютер сактайт жана барактайт.
Ар бир тексттик укмуштуу оюндун үч жөнөкөй бөлүгү бар:
- Бөлмөлөр -- сен боло турган жерлер, ар биринин сүрөттөмөсү жана чыгуулар топтому бар.
- Оюнчу -- сен азыр кайдасың жана өзүң менен эмнени алып жүрөсүң.
- Цикл -- бөлмөнү көрсөт, кадамды сура, жооп бер жана жеңгениңге же жеңилгениңе чейин кайталай бер.
Биз муну бөлүкчө-бөлүкчө курабыз. Жакшы жаңылык: керектүү ар бир куралды сен буга чейин билесиң. Биз аларды жөн гана бириктиребиз.
2. Карта: сөздүктөгү бөлмөлөр
Сөздүк нерселерди аты боюнча сактайт. Бул карта үчүн эң ылайыктуу: ар бир бөлмөнүн аты, сүрөттөмөсү жана чыгуулар тизмеси бар. Ар бир бөлмөнүн ичине кичине чыгуулар сөздүгүн да салсак болот.
rooms = {
"Hall": {
"desc": "You are in a bright entrance hall.",
"exits": {"north": "Kitchen", "east": "Library"}
},
"Kitchen": {
"desc": "A warm kitchen. Something smells nice.",
"exits": {"south": "Hall"}
},
"Library": {
"desc": "Tall shelves full of dusty books.",
"exits": {"west": "Hall"}
}
}
Муну мазмун катары окучу. rooms["Hall"] залдын маалыматын берет. rooms["Hall"]["exits"] болсо анын чыгууларын гана берет: {"north": "Kitchen", "east": "Library"}. Демек, залда туруп түндүккө барсаң, ашканага жетесиң.
rooms[0]), аны оңой чаташтырасың. Сөздүк менен аларды чыныгы аты боюнча издейсиң (rooms["Kitchen"]), бул жөнөкөй текст сыяктуу окулат.