From 77a7dcdf69d12ae61fdbdf6977488d988f4688d5 Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Thu, 19 Dec 2024 23:42:53 +0100 Subject: [PATCH] game almost working --- constant.c | 209 ++++++++++++++++++++++++++++------------------------- constant.h | 2 +- script.awk | 2 +- sokoban.c | 58 +++++++++++---- 4 files changed, 156 insertions(+), 115 deletions(-) diff --git a/constant.c b/constant.c index c578bc6..5addbeb 100644 --- a/constant.c +++ b/constant.c @@ -5,7 +5,17 @@ #include "constant.h" -board _level_1 = { +board_t _level_0 = { + 7, 5, + "##### " + "#@ # " + "# #$###" + "# $ ..#" + "#######", + "Tutorial", + 0, 0, 0, 0, 0}; + +board_t _level_1 = { 19, 11, " ##### " " # # " @@ -21,7 +31,7 @@ board _level_1 = { "1", 0, 0, 0, 0, 0}; -board _level_2 = { +board_t _level_2 = { 14, 10, "############ " "#.. # ###" @@ -36,7 +46,7 @@ board _level_2 = { "2", 0, 0, 0, 0, 0}; -board _level_3 = { +board_t _level_3 = { 17, 10, " ######## " " # @# " @@ -51,7 +61,7 @@ board _level_3 = { "3", 0, 0, 0, 0, 0}; -board _level_4 = { +board_t _level_4 = { 19, 14, " ########" " # ....#" @@ -70,7 +80,7 @@ board _level_4 = { "4", 0, 0, 0, 0, 0}; -board _level_5 = { +board_t _level_5 = { 17, 13, " ##### " " # #####" @@ -88,7 +98,7 @@ board _level_5 = { "5", 0, 0, 0, 0, 0}; -board _level_6 = { +board_t _level_6 = { 12, 11, "###### ### " "#.. # ##@##" @@ -104,7 +114,7 @@ board _level_6 = { "6", 0, 0, 0, 0, 0}; -board _level_7 = { +board_t _level_7 = { 13, 12, " ##### " " ####### ##" @@ -121,7 +131,7 @@ board _level_7 = { "7", 0, 0, 0, 0, 0}; -board _level_8 = { +board_t _level_8 = { 16, 16, " #### " " # ###########" @@ -142,7 +152,7 @@ board _level_8 = { "8", 0, 0, 0, 0, 0}; -board _level_9 = { +board_t _level_9 = { 17, 14, " #######" " # ...#" @@ -161,7 +171,7 @@ board _level_9 = { "9", 0, 0, 0, 0, 0}; -board _level_10 = { +board_t _level_10 = { 19, 16, " ### #############" "##@#### # #" @@ -182,7 +192,7 @@ board _level_10 = { "10", 0, 0, 0, 0, 0}; -board _level_11 = { +board_t _level_11 = { 19, 15, " #### " " #### # # " @@ -202,7 +212,7 @@ board _level_11 = { "11", 0, 0, 0, 0, 0}; -board _level_12 = { +board_t _level_12 = { 17, 13, "################ " "# # " @@ -220,7 +230,7 @@ board _level_12 = { "12", 0, 0, 0, 0, 0}; -board _level_13 = { +board_t _level_13 = { 17, 13, "################ " "# # " @@ -238,7 +248,7 @@ board _level_13 = { "12X", 0, 0, 0, 0, 0}; -board _level_14 = { +board_t _level_14 = { 19, 13, " ######### " " ## ## ###### " @@ -256,7 +266,7 @@ board _level_14 = { "13", 0, 0, 0, 0, 0}; -board _level_15 = { +board_t _level_15 = { 18, 16, " ####### " " ####### # " @@ -277,7 +287,7 @@ board _level_15 = { "14", 0, 0, 0, 0, 0}; -board _level_16 = { +board_t _level_16 = { 17, 16, " ######## " " # # # " @@ -298,7 +308,7 @@ board _level_16 = { "15", 0, 0, 0, 0, 0}; -board _level_17 = { +board_t _level_17 = { 14, 15, "##### " "# ## " @@ -318,7 +328,7 @@ board _level_17 = { "16", 0, 0, 0, 0, 0}; -board _level_18 = { +board_t _level_18 = { 16, 14, " ########## " " #.. # # " @@ -337,7 +347,7 @@ board _level_18 = { "17", 0, 0, 0, 0, 0}; -board _level_19 = { +board_t _level_19 = { 19, 13, " ########### " " # . # # " @@ -355,7 +365,7 @@ board _level_19 = { "18", 0, 0, 0, 0, 0}; -board _level_20 = { +board_t _level_20 = { 19, 16, " ###### " " # @#### " @@ -376,7 +386,7 @@ board _level_20 = { "19", 0, 0, 0, 0, 0}; -board _level_21 = { +board_t _level_21 = { 19, 16, " ########## " "##### #### " @@ -397,7 +407,7 @@ board _level_21 = { "20", 0, 0, 0, 0, 0}; -board _level_22 = { +board_t _level_22 = { 19, 16, " ########## " "##### #### " @@ -418,7 +428,7 @@ board _level_22 = { "20X", 0, 0, 0, 0, 0}; -board _level_23 = { +board_t _level_23 = { 15, 15, "######### " "# # " @@ -438,7 +448,7 @@ board _level_23 = { "21", 0, 0, 0, 0, 0}; -board _level_24 = { +board_t _level_24 = { 19, 16, "###### #### " "# ####### #####" @@ -459,7 +469,7 @@ board _level_24 = { "22", 0, 0, 0, 0, 0}; -board _level_25 = { +board_t _level_25 = { 19, 14, " ####### " " # # #### " @@ -478,7 +488,7 @@ board _level_25 = { "23", 0, 0, 0, 0, 0}; -board _level_26 = { +board_t _level_26 = { 19, 16, "############### " "#.......... .#### " @@ -499,7 +509,7 @@ board _level_26 = { "24", 0, 0, 0, 0, 0}; -board _level_27 = { +board_t _level_27 = { 19, 16, "#### " "# ############## " @@ -520,7 +530,7 @@ board _level_27 = { "25", 0, 0, 0, 0, 0}; -board _level_28 = { +board_t _level_28 = { 19, 16, "#### " "# ############## " @@ -541,7 +551,7 @@ board _level_28 = { "25X", 0, 0, 0, 0, 0}; -board _level_29 = { +board_t _level_29 = { 15, 12, " ####### " " # # ##### " @@ -558,7 +568,7 @@ board _level_29 = { "26", 0, 0, 0, 0, 0}; -board _level_30 = { +board_t _level_30 = { 19, 13, " ################# " " #... # # ##" @@ -576,7 +586,7 @@ board _level_30 = { "27", 0, 0, 0, 0, 0}; -board _level_31 = { +board_t _level_31 = { 17, 15, " ##### " " ##### # " @@ -596,7 +606,7 @@ board _level_31 = { "28", 0, 0, 0, 0, 0}; -board _level_32 = { +board_t _level_32 = { 19, 13, "##### " "# ## " @@ -614,7 +624,7 @@ board _level_32 = { "29", 0, 0, 0, 0, 0}; -board _level_33 = { +board_t _level_33 = { 19, 14, " ########### " " # # # " @@ -633,7 +643,7 @@ board _level_33 = { "30", 0, 0, 0, 0, 0}; -board _level_34 = { +board_t _level_34 = { 18, 16, " #### " " # ######### " @@ -654,7 +664,7 @@ board _level_34 = { "31", 0, 0, 0, 0, 0}; -board _level_35 = { +board_t _level_35 = { 13, 15, " #### " " ##### # " @@ -674,7 +684,7 @@ board _level_35 = { "32", 0, 0, 0, 0, 0}; -board _level_36 = { +board_t _level_36 = { 12, 15, "############" "## ## #" @@ -694,7 +704,7 @@ board _level_36 = { "33", 0, 0, 0, 0, 0}; -board _level_37 = { +board_t _level_37 = { 14, 15, " ######### " " #.... ## " @@ -714,7 +724,7 @@ board _level_37 = { "34", 0, 0, 0, 0, 0}; -board _level_38 = { +board_t _level_38 = { 19, 16, "############ ######" "# # # ###....#" @@ -735,7 +745,7 @@ board _level_38 = { "35", 0, 0, 0, 0, 0}; -board _level_39 = { +board_t _level_39 = { 19, 16, " ##### " "##### ###### # " @@ -756,7 +766,7 @@ board _level_39 = { "36", 0, 0, 0, 0, 0}; -board _level_40 = { +board_t _level_40 = { 19, 15, "########### " "#...... #########" @@ -776,7 +786,7 @@ board _level_40 = { "37", 0, 0, 0, 0, 0}; -board _level_41 = { +board_t _level_41 = { 19, 15, "########### " "#...... #########" @@ -796,7 +806,7 @@ board _level_41 = { "37X", 0, 0, 0, 0, 0}; -board _level_42 = { +board_t _level_42 = { 11, 11, " #### " "####### @# " @@ -812,7 +822,7 @@ board _level_42 = { "38", 0, 0, 0, 0, 0}; -board _level_43 = { +board_t _level_43 = { 19, 16, " ######" " #############....#" @@ -833,7 +843,7 @@ board _level_43 = { "39", 0, 0, 0, 0, 0}; -board _level_44 = { +board_t _level_44 = { 17, 16, " ############ " " # ##" @@ -854,7 +864,7 @@ board _level_44 = { "40", 0, 0, 0, 0, 0}; -board _level_45 = { +board_t _level_45 = { 19, 15, " ##### " " ## ## " @@ -874,7 +884,7 @@ board _level_45 = { "41", 0, 0, 0, 0, 0}; -board _level_46 = { +board_t _level_46 = { 18, 13, " ######## " " #### ######" @@ -892,7 +902,7 @@ board _level_46 = { "42", 0, 0, 0, 0, 0}; -board _level_47 = { +board_t _level_47 = { 18, 13, " ######## " " #### ######" @@ -910,7 +920,7 @@ board _level_47 = { "42X", 0, 0, 0, 0, 0}; -board _level_48 = { +board_t _level_48 = { 19, 11, " ####### " " ##### # #### " @@ -926,7 +936,7 @@ board _level_48 = { "43", 0, 0, 0, 0, 0}; -board _level_49 = { +board_t _level_49 = { 19, 15, " ##### " " # # " @@ -946,7 +956,7 @@ board _level_49 = { "44", 0, 0, 0, 0, 0}; -board _level_50 = { +board_t _level_50 = { 16, 14, "##### #### " "#...# # #### " @@ -965,7 +975,7 @@ board _level_50 = { "45", 0, 0, 0, 0, 0}; -board _level_51 = { +board_t _level_51 = { 14, 16, "########## " "# #### " @@ -986,7 +996,7 @@ board _level_51 = { "46", 0, 0, 0, 0, 0}; -board _level_52 = { +board_t _level_52 = { 18, 11, " #### " " ######### ## " @@ -1002,7 +1012,7 @@ board _level_52 = { "47", 0, 0, 0, 0, 0}; -board _level_53 = { +board_t _level_53 = { 13, 16, " ######### " " #*.*#*.*# " @@ -1023,7 +1033,7 @@ board _level_53 = { "48", 0, 0, 0, 0, 0}; -board _level_54 = { +board_t _level_54 = { 16, 15, " #### " " # ## " @@ -1043,7 +1053,7 @@ board _level_54 = { "49", 0, 0, 0, 0, 0}; -board _level_55 = { +board_t _level_55 = { 19, 16, " ############ " " ##.. # # " @@ -1064,7 +1074,7 @@ board _level_55 = { "50", 0, 0, 0, 0, 0}; -board _level_56 = { +board_t _level_56 = { 19, 16, " ############ " " ##.. # # " @@ -1085,7 +1095,7 @@ board _level_56 = { "50X", 0, 0, 0, 0, 0}; -board _level_57 = { +board_t _level_57 = { 14, 12, " ######### " " # # " @@ -1102,7 +1112,7 @@ board _level_57 = { "51X", 0, 0, 0, 0, 0}; -board _level_58 = { +board_t _level_58 = { 19, 17, " ########" " #......#" @@ -1124,7 +1134,7 @@ board _level_58 = { "52X", 0, 0, 0, 0, 0}; -board _level_59 = { +board_t _level_59 = { 20, 12, "####################" "# ###" @@ -1141,7 +1151,7 @@ board _level_59 = { "53X", 0, 0, 0, 0, 0}; -board _level_60 = { +board_t _level_60 = { 20, 12, "####################" "# # # # #@#" @@ -1158,7 +1168,7 @@ board _level_60 = { "54X", 0, 0, 0, 0, 0}; -board _level_61 = { +board_t _level_61 = { 20, 12, "####################" "# @## # ##" @@ -1175,7 +1185,7 @@ board _level_61 = { "55X", 0, 0, 0, 0, 0}; -board _level_62 = { +board_t _level_62 = { 20, 12, "####################" "# # ## # @###" @@ -1192,7 +1202,7 @@ board _level_62 = { "56X", 0, 0, 0, 0, 0}; -board _level_63 = { +board_t _level_63 = { 20, 12, "####################" "#@ ### # # #" @@ -1209,7 +1219,7 @@ board _level_63 = { "57X", 0, 0, 0, 0, 0}; -board _level_64 = { +board_t _level_64 = { 20, 12, "####################" "##... ## # # #" @@ -1226,7 +1236,7 @@ board _level_64 = { "58X", 0, 0, 0, 0, 0}; -board _level_65 = { +board_t _level_65 = { 20, 12, "####################" "# # #@# ## #####" @@ -1243,7 +1253,7 @@ board _level_65 = { "59X", 0, 0, 0, 0, 0}; -board _level_66 = { +board_t _level_66 = { 20, 12, "####################" "# # # #" @@ -1260,7 +1270,7 @@ board _level_66 = { "60X", 0, 0, 0, 0, 0}; -board _level_67 = { +board_t _level_67 = { 20, 12, "####################" "# ###..### #" @@ -1277,7 +1287,7 @@ board _level_67 = { "61X", 0, 0, 0, 0, 0}; -board _level_68 = { +board_t _level_68 = { 20, 12, "####################" "# # # # # # #" @@ -1294,7 +1304,7 @@ board _level_68 = { "62X", 0, 0, 0, 0, 0}; -board _level_69 = { +board_t _level_69 = { 20, 12, "####################" "#....# # # #" @@ -1311,7 +1321,7 @@ board _level_69 = { "63X", 0, 0, 0, 0, 0}; -board _level_70 = { +board_t _level_70 = { 20, 12, "####################" "#....### #" @@ -1328,7 +1338,7 @@ board _level_70 = { "64X", 0, 0, 0, 0, 0}; -board _level_71 = { +board_t _level_71 = { 20, 12, "####################" "# # @#...###" @@ -1345,7 +1355,7 @@ board _level_71 = { "65X", 0, 0, 0, 0, 0}; -board _level_72 = { +board_t _level_72 = { 20, 12, "####################" "# # #...#@ #" @@ -1362,7 +1372,7 @@ board _level_72 = { "66X", 0, 0, 0, 0, 0}; -board _level_73 = { +board_t _level_73 = { 20, 12, "####################" "#####@###.##...## #" @@ -1379,7 +1389,7 @@ board _level_73 = { "67X", 0, 0, 0, 0, 0}; -board _level_74 = { +board_t _level_74 = { 20, 12, "####################" "#@ # # #" @@ -1396,7 +1406,7 @@ board _level_74 = { "68X", 0, 0, 0, 0, 0}; -board _level_75 = { +board_t _level_75 = { 20, 12, "####################" "# # # # ##" @@ -1413,7 +1423,7 @@ board _level_75 = { "69X", 0, 0, 0, 0, 0}; -board _level_76 = { +board_t _level_76 = { 20, 12, "####################" "# # # # # # #" @@ -1430,7 +1440,7 @@ board _level_76 = { "70X", 0, 0, 0, 0, 0}; -board _level_77 = { +board_t _level_77 = { 20, 12, "####################" "# # # ## ##" @@ -1447,7 +1457,7 @@ board _level_77 = { "71X", 0, 0, 0, 0, 0}; -board _level_78 = { +board_t _level_78 = { 20, 12, "####################" "# ....# ####" @@ -1464,7 +1474,7 @@ board _level_78 = { "72X", 0, 0, 0, 0, 0}; -board _level_79 = { +board_t _level_79 = { 20, 12, "####################" "# # #@ # #" @@ -1481,7 +1491,7 @@ board _level_79 = { "73X", 0, 0, 0, 0, 0}; -board _level_80 = { +board_t _level_80 = { 20, 12, "####################" "# # ##### #" @@ -1498,7 +1508,7 @@ board _level_80 = { "74X", 0, 0, 0, 0, 0}; -board _level_81 = { +board_t _level_81 = { 20, 12, "####################" "# # # # #@#" @@ -1515,7 +1525,7 @@ board _level_81 = { "75X", 0, 0, 0, 0, 0}; -board _level_82 = { +board_t _level_82 = { 20, 12, "####################" "# # # # #@## # #" @@ -1532,7 +1542,7 @@ board _level_82 = { "76X", 0, 0, 0, 0, 0}; -board _level_83 = { +board_t _level_83 = { 20, 15, "####################" "# ## # # #" @@ -1552,7 +1562,7 @@ board _level_83 = { "77X", 0, 0, 0, 0, 0}; -board _level_84 = { +board_t _level_84 = { 14, 13, "###### ##### " "# # # # " @@ -1570,7 +1580,7 @@ board _level_84 = { "77SL", 0, 0, 0, 0, 0}; -board _level_85 = { +board_t _level_85 = { 19, 12, " ########### " " # # " @@ -1587,7 +1597,7 @@ board _level_85 = { "78X", 0, 0, 0, 0, 0}; -board _level_86 = { +board_t _level_86 = { 19, 12, "############# " "# # " @@ -1604,7 +1614,7 @@ board _level_86 = { "79X", 0, 0, 0, 0, 0}; -board _level_87 = { +board_t _level_87 = { 19, 13, " #################" "###@## ...#" @@ -1622,7 +1632,7 @@ board _level_87 = { "80X", 0, 0, 0, 0, 0}; -board _level_88 = { +board_t _level_88 = { 19, 13, " #####" " ########## #" @@ -1640,7 +1650,7 @@ board _level_88 = { "81X", 0, 0, 0, 0, 0}; -board _level_89 = { +board_t _level_89 = { 17, 13, " ###### " " #### # " @@ -1658,7 +1668,7 @@ board _level_89 = { "82X", 0, 0, 0, 0, 0}; -board _level_90 = { +board_t _level_90 = { 17, 13, "####### #########" "# # # ## #" @@ -1676,7 +1686,7 @@ board _level_90 = { "83X", 0, 0, 0, 0, 0}; -board _level_91 = { +board_t _level_91 = { 16, 12, "####### " "# ##########" @@ -1693,7 +1703,7 @@ board _level_91 = { "84X", 0, 0, 0, 0, 0}; -board _level_92 = { +board_t _level_92 = { 20, 16, "############ " "# # ## " @@ -1714,7 +1724,7 @@ board _level_92 = { "85X", 0, 0, 0, 0, 0}; -board _level_93 = { +board_t _level_93 = { 17, 10, "################ " "# #@ # # " @@ -1729,7 +1739,7 @@ board _level_93 = { "86X", 0, 0, 0, 0, 0}; -board _level_94 = { +board_t _level_94 = { 16, 14, " ##### " " #### ## #####" @@ -1748,7 +1758,7 @@ board _level_94 = { "87X", 0, 0, 0, 0, 0}; -board _level_95 = { +board_t _level_95 = { 17, 16, "############# " "#........#### " @@ -1769,7 +1779,7 @@ board _level_95 = { "88X", 0, 0, 0, 0, 0}; -board _level_96 = { +board_t _level_96 = { 20, 17, " ################## " " # $ ...#.##" @@ -1791,7 +1801,7 @@ board _level_96 = { "89X", 0, 0, 0, 0, 0}; -board _level_97 = { +board_t _level_97 = { 20, 16, "####################" "#..# # #" @@ -1817,10 +1827,13 @@ board_t *getlevel (int id) board_t *pt = NULL; switch (id) { - case -1 + case -1: printf ("level: [1..97]\n"); pt = (board_t *)(-1); break; + case 0: + pt = &_level_0; + break; case 1: pt = &_level_1; break; diff --git a/constant.h b/constant.h index 258a35f..f97d35d 100644 --- a/constant.h +++ b/constant.h @@ -3,7 +3,7 @@ #include "type.h" -board_t *getboard (char *name); +board_t *getlevel (int id); #endif /* __CONSTANT_H__ */ diff --git a/script.awk b/script.awk index 79ee7d4..e3c0b7d 100644 --- a/script.awk +++ b/script.awk @@ -22,7 +22,7 @@ function format(tab, width, height) { sub(/Title: /, "") title=$0 nblevels++ - printf "board _level_%d = {\n", nblevels + printf "board_t _level_%d = {\n", nblevels printf " %d, %d,", nbrows, nblines format(tab, nbrows, nblines) printf " \"%s\",\n", title diff --git a/sokoban.c b/sokoban.c index 3bf0843..3e72f87 100644 --- a/sokoban.c +++ b/sokoban.c @@ -1,13 +1,14 @@ /* depend: */ /* cflags: */ -/* linker: debug.o display.o function.o -lcurses */ -/* doslnk: debug.o display.o function.o -lpdc~1 */ -/* winlnk: debug.o display.o function.o -lpdcurses */ +/* linker: constant.o debug.o display.o function.o -lcurses */ +/* doslnk: constant.o debug.o display.o function.o -lpdc~1 */ +/* winlnk: constant.o debug.o display.o function.o -lpdcurses */ #include #include #include +#include "constant.h" #include "debug.h" #include "display.h" #include "function.h" @@ -17,7 +18,7 @@ char *progname = NULL; char *version = "0.1"; char *filename = NULL; /* .sok */ -char *levels = "level.skb"; +int level = 0; int savelen = 12; int scale = 1; int wide = 0; @@ -31,16 +32,17 @@ char *help = " Move down cursor\n" " Move right cursor\n" " Quit\n" + " Restart level\n" " Save file\n" ; int usage (int ret) { FILE *fd = ret ? stderr : stdout; - fprintf (fd, "usage: %s [-c] [-f file] [-h] [-l file] [-s int] [-v int] [-w]\n", progname); + fprintf (fd, "usage: %s [-c] [-f file] [-h] [-l int] [-s int] [-v int] [-w]\n", progname); fprintf (fd, " -f: file name (%s)\n", (filename) ? filename : "none"); fprintf (fd, " -h: help message\n"); - fprintf (fd, " -l: level library (%s)\n", levels); + fprintf (fd, " -l: level (%d)\n", level); fprintf (fd, " -s: scale [0..3] (%d)\n", scale); fprintf (fd, " -v: verbose level (%d)\n", verbose); fprintf (fd, " -w: wide board (%d)\n", wide); @@ -82,10 +84,10 @@ int main (int argc, char *argv[]) case 'l': arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL; if (arg == NULL) { - VERBOSE (ERROR, fprintf (stderr, "%s: no file specified\n", progname)); + VERBOSE (ERROR, fprintf (stderr, "%s: no level specified\n", progname)); return usage (1); } - levels = arg; + level = atoi (arg); break; case 's': arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL; @@ -132,6 +134,14 @@ int main (int argc, char *argv[]) VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", filename)); return 1; } + } else { + board_t *temp = getlevel (level); + if (temp == (board_t *)(-1)) { + return 0; + } + if (temp) { + board = copyboard (temp); + } } if (board == NULL) { VERBOSE (ERROR, fprintf (stderr, "no board defined\n")); @@ -171,15 +181,16 @@ int main (int argc, char *argv[]) int mode = 0; int stop = 0; int dir = -1; + board_t *current = copyboard (board); while (!stop) { char *ptr = NULL; if (dir >= 0) { - movesokoban (board, dir); + movesokoban (current, dir); dir = -1; } - boardwindow (board); - mode = endofgame (board); + boardwindow (current); + mode = endofgame (current); int ch = getch (); switch (ch) { @@ -187,8 +198,17 @@ int main (int argc, char *argv[]) case '\n': case '\r': if (mode == 1) { - // load next level - stop = 1; + freeboard (current); + level++; + board_t *temp = getlevel (level); + if (temp) { + freeboard (board); + board = copyboard (temp); + setscale (board, scale); + current = copyboard (board); + } else { + stop = 1; + } } break; case KEY_UP: @@ -209,8 +229,17 @@ int main (int argc, char *argv[]) break; case KEY_ESC: case 'q': + freeboard (current); stop = 1; break; + case KEY_BACKSPACE: + case KEY_DELETE: + case 127: + case '\b': + case 'r': + freeboard (current); + current = copyboard (board); + break; case 's': savename = savewindow (savelen, xsave, ysave); if (savename != NULL) { @@ -236,8 +265,7 @@ int main (int argc, char *argv[]) /* test: sokoban.exe -f nofile.sok 2>&1 | grep "can't read file" */ /* test: sokoban.exe -f bogus.sok 2>&1 | grep 'incorrect file' */ /* test: sokoban.exe -h | grep usage */ -/* test_: sokoban.exe -l nofile.skb 2>&1 | grep "can't read library" */ -/* test_: sokoban.exe -l bogus.skb 2>&1 | grep 'incorrect library' */ +/* test: sokoban.exe -l 2>&1 | grep specified */ /* test: sokoban.exe -s 2>&1 | grep specified */ /* test: sokoban.exe -v 2>&1 | grep missing */ /* test: sokoban.exe _ 2>&1 | grep invalid */ -- 2.30.2