Генерация подземелий в QBasic с удовольствием
Материал из RLGClub :: Клуб любителей рогаликов
Я был удивлен, что генерация произвольных темниц легко достигается многократной устанавкой "L" произвольных размеров, каждый с произвольной 90 градусной ориентацией, повсюду на карта. Вот результаты.
Этот метод не гарантирует, что все области - проходимы. Вы получаете много каверн, которые могут быть хорошими или плохими в зависимости от игры...
##################################################################### ##################################################################### ################### ####### ######### ####### ########## # ########## ################### ### ### ######## ####### ### ###### # ########## ######## ######### ### ## ### ### ##### ### ###### # ### ###### ######## ## ## # ## ## # # ###### ######## ## # ### # ## ## ### ## # # ##### ## # # # # ##### #### #### # # # # ### ## ## # # ##### ###### # # # ## # # ## # # ##### #### ## # ## # # # # #### # # # ##### ##### # ### # # ### ## # ## ##### ####### ##### ###### # # # # ## # ## ### ###### ##### ## #### # ##### ###### # ##### ##### # ############ ##### # ## # # ########### ########### ##### ##### ############## ########### # ########################## ###### ###### ########################## ############################ ###### ##################################################################### ##################################################################### ##################################################################### ####### #################### ################################ ####### ####### ################ ### ### ############### ########### ####### ####### ############# ## ### ### ## #### # ##### #### ###### ####### ####### ######## ### ## ### ### ## ### ### # #### ## ### ####### ### ####### # # ### ##### # ### # ## ## # # # ## ##### ### # # ## # # ## #### ## # #### # # ## # # ## ## # # #### ## # #### # ## # ## ## # # # # ######## ###### # # ## # ### # # # ######## ####### #### ## # ## ##### ########### #### # ##### ### ### ##### ## ##### ### ## #### # ##### ######## ## ## ###### # ### ## ####### # ### #### # # ##### ######## ##### # ###### # #### ## ####### # ###### ##### ######### ######## ####### ################## ####### # ############ ######### ########################################### ######################### ##################################################################### ##################################################################### ##################################################################### ######################### ##### #################################### ######################## ##### ############# ##################### ####### ############### ##### ######### ### # ################### ##### ### ###### ## # # # ## ## ### # ### ############### ##### # # # ### # # ## ## ###### ##### # # ## ## ### # ####### ###### ##### # ### ## ### # ###### #### ##### ### ## #### # # ## ## ### ##### ####### # # ## # ## ## ## # # ## # ##### #### ## ## # # ## ###### # ### ### ## ## #### ###### # ##### ### #### # ### ###### ##### ##### #### ### ### # ### ###### ### ###### # ###### ###### ##### ##### #### ### ### ## #### ###### ########## # ###### ###### ########### ############ ############## ########### ## ####### ################## ############ ############## ########### ## ####### #####################################################################
RANDOMIZE TIMER DIM a(70, 20) begin: CLEAR CLS FOR l = 1 TO 150 x = INT(RND * 59) + 6 y = INT(RND * 9) + 6 d = INT(RND * 4) a(x, y) = 1 SELECT CASE d CASE 0 FOR i = 1 TO INT(RND * 5) a(x + i, y) = 1 a(x, y - i) = 1 NEXT i CASE 1 FOR i = 1 TO INT(RND * 5) a(x + i, y) = 1 a(x, y + i) = 1 NEXT i CASE 2 FOR i = 1 TO INT(RND * 5) a(x - i, y) = 1 a(x, y - i) = 1 NEXT i CASE 3 FOR i = 1 TO INT(RND * 5) a(x - i, y) = 1 a(x, y + i) = 1 NEXT i END SELECT NEXT l FOR row = 1 TO 19 FOR col = 1 TO 69 IF a(col, row) = 0 THEN PRINT "#"; ELSE PRINT " "; END IF NEXT col PRINT NEXT row WHILE INKEY$ = "" WEND GOTO begin
Автор: R.Alan Monroe.
Источник: неизвестен.
Перевел: Дмитрий О. Бужинский, 28.02.2006.