|
18 | 18 | "martini", |
19 | 19 | "nuritwin", |
20 | 20 | "marutaring", |
21 | | - "tetroctb" |
| 21 | + "tetroctb", |
| 22 | + "bramble" |
22 | 23 | ], |
23 | 24 | { |
24 | 25 | //--------------------------------------------------------- |
|
38 | 39 | play: ["shade", "unshade", "number"] |
39 | 40 | } |
40 | 41 | }, |
41 | | - "MouseEvent@cocktail,nuritwin,marutaring,tetroctb": { |
| 42 | + "MouseEvent@cocktail,nuritwin,marutaring,tetroctb,bramble": { |
42 | 43 | inputModes: { |
43 | 44 | edit: ["border", "number", "clear", "info-blk"], |
44 | 45 | play: ["shade", "unshade", "info-blk"] |
45 | 46 | } |
46 | 47 | }, |
47 | | - "MouseEvent@cocktail,martini,tetroctb#2": { |
| 48 | + "MouseEvent@cocktail,martini,tetroctb,bramble#2": { |
48 | 49 | dispInfoBlk: function() { |
49 | 50 | var cell = this.getcell(); |
50 | 51 | this.mousereset(); |
|
124 | 125 | enableSubNumberArray: true, |
125 | 126 | disableAnum: true |
126 | 127 | }, |
127 | | - "Cell@chocona,hinge,heyablock,cocktail,tetroctb": { |
| 128 | + "Cell@chocona,hinge,heyablock,cocktail,tetroctb,bramble": { |
128 | 129 | minnum: 0 |
129 | 130 | }, |
130 | 131 | "Cell@martini": { |
|
302 | 303 | } |
303 | 304 | }, |
304 | 305 |
|
305 | | - "AreaShadeGraph@chocona,tetroctb": { |
| 306 | + "AreaShadeGraph@chocona,tetroctb,bramble": { |
306 | 307 | enabled: true |
307 | 308 | }, |
308 | 309 | "AreaShadeGraph@nuritwin,marutaring": { |
|
338 | 339 | "AreaStoneGraph@stostone": { |
339 | 340 | coloring: true |
340 | 341 | }, |
341 | | - "AreaUnshadeGraph@heyablock,martini": { |
| 342 | + "AreaUnshadeGraph@heyablock,martini,bramble": { |
342 | 343 | enabled: true |
343 | 344 | }, |
344 | 345 | "AreaUnshadeGraph@martini#1": { |
|
357 | 358 | "AreaRoomGraph@martini": { |
358 | 359 | hastop: false |
359 | 360 | }, |
360 | | - "AreaShade8Graph@cocktail,martini,tetroctb": { |
| 361 | + "AreaShade8Graph@cocktail,martini,tetroctb,bramble": { |
361 | 362 | enabled: true |
362 | 363 | }, |
363 | 364 |
|
|
661 | 662 | "doneShadingDecided" |
662 | 663 | ] |
663 | 664 | }, |
664 | | - "AnsCheck@shimaguni,stostone,heyablock,cocktail,martini": { |
| 665 | + "AnsCheck@bramble#1": { |
| 666 | + checklist: [ |
| 667 | + "checkShadeCellExist+", |
| 668 | + "checkOverShadeCell", |
| 669 | + "checkSideAreaShadeCell", |
| 670 | + "checkConnectUnshadeOutside", |
| 671 | + "checkAdjacentSingle", |
| 672 | + "checkShadeCellCount", |
| 673 | + "checkConnect8Shade", |
| 674 | + "doneShadingDecided" |
| 675 | + ] |
| 676 | + }, |
| 677 | + "AnsCheck@shimaguni,stostone,heyablock,cocktail,martini,bramble": { |
665 | 678 | checkSideAreaShadeCell: function() { |
666 | 679 | this.checkSideAreaCell( |
667 | 680 | function(cell1, cell2) { |
|
1152 | 1165 | this.checkOneArea(this.board.sblk8mgr, "csDivide"); |
1153 | 1166 | } |
1154 | 1167 | }, |
| 1168 | + "AnsCheck@bramble": { |
| 1169 | + checkOverShadeCell: function() { |
| 1170 | + this.checkAllArea( |
| 1171 | + this.board.sblkmgr, |
| 1172 | + function(w, h, a, n) { |
| 1173 | + return a <= 2; |
| 1174 | + }, |
| 1175 | + "csGt2" |
| 1176 | + ); |
| 1177 | + }, |
| 1178 | + checkConnect8Shade: function() { |
| 1179 | + this.checkOneArea(this.board.sblk8mgr, "csDivide"); |
| 1180 | + }, |
| 1181 | + checkAdjacentSingle: function() { |
| 1182 | + var bd = this.board; |
| 1183 | + for (var c = 0; c < bd.cell.length; c++) { |
| 1184 | + var cell = bd.cell[c]; |
| 1185 | + if (cell.bx >= bd.maxbx - 1 || cell.by >= bd.maxby - 1) { |
| 1186 | + continue; |
| 1187 | + } |
| 1188 | + |
| 1189 | + var bx = cell.bx, |
| 1190 | + by = cell.by; |
| 1191 | + var clist = bd |
| 1192 | + .cellinside(bx, by, bx + 2, by + 2) |
| 1193 | + .filter(function(cc) { |
| 1194 | + return cc.sblk && cc.sblk.clist.length === 1; |
| 1195 | + }); |
| 1196 | + if (clist.length !== 2) { |
| 1197 | + continue; |
| 1198 | + } |
| 1199 | + |
| 1200 | + this.failcode.add("shDiag"); |
| 1201 | + if (this.checkOnly) { |
| 1202 | + break; |
| 1203 | + } |
| 1204 | + clist.seterr(1); |
| 1205 | + } |
| 1206 | + }, |
| 1207 | + checkConnectUnshadeOutside: function() { |
| 1208 | + var bd = this.board; |
| 1209 | + for (var r = 0; r < bd.ublkmgr.components.length; r++) { |
| 1210 | + var clist = bd.ublkmgr.components[r].clist; |
| 1211 | + var d = clist.getRectSize(); |
| 1212 | + if ( |
| 1213 | + d.x1 === 1 || |
| 1214 | + d.x2 === bd.maxbx - 1 || |
| 1215 | + d.y1 === 1 || |
| 1216 | + d.y2 === bd.maxby - 1 |
| 1217 | + ) { |
| 1218 | + continue; |
| 1219 | + } |
| 1220 | + this.failcode.add("csLoop"); |
| 1221 | + if (this.checkOnly) { |
| 1222 | + break; |
| 1223 | + } |
| 1224 | + clist.seterr(1); |
| 1225 | + } |
| 1226 | + } |
| 1227 | + }, |
1155 | 1228 |
|
1156 | 1229 | FailCode: { |
1157 | 1230 | bkShadeDivide: "bkShadeDivide", |
|
0 commit comments