- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
// до рефакторинга
if(!y) {
if(!x) {
if(grid[pos+1] || grid[pos+fieldWidth])
ret = true;
} else if(x == fieldWidth - 1) {
if(grid[pos - 1] || grid[pos+fieldWidth])
ret = true;
} else {
if(grid[pos-1] || grid[pos+1] || grid[pos+fieldWidth])
ret = true;
}
} else if(y == fieldHeigth - 1) {
if(!x) {
if(grid[pos+1] || grid[pos-fieldWidth])
ret = true;
} else if(x == fieldWidth - 1) {
if(grid[pos - 1] || grid[pos-fieldWidth])
ret = true;
} else {
if(grid[pos-1] || grid[pos+1] || grid[pos-fieldWidth])
ret = true;
}
} else {
if(!x) {
if(grid[pos+1] || grid[pos+fieldWidth] || grid[pos-fieldWidth])
ret = true;
} else if(x == fieldWidth - 1) {
if(grid[pos - 1] || grid[pos+fieldWidth] || grid[pos+fieldWidth])
ret = true;
} else {
if(grid[pos - 1] || grid[pos+fieldWidth] || grid[pos-fieldWidth] || grid[pos + 1])
ret = true;
}
}
// после рефакторинга
bool ret = getGridPoint(x-1, y) || getGridPoint(x+1, y) || getGridPoint(x, y-1) || getGridPoint(x, y+1))
Код одного из моих друзей. Проверяет закрашена ли хотя бы одна клеточка вокруг указанной...
defecate-plusplus 20.08.2012 21:29 # +1
bormand 20.08.2012 21:34 # 0
defecate-plusplus 20.08.2012 21:49 # +8
если по существу - странная задача, в "клеточке" хранится чуть ли не bool, отсутствие клетки эквивалентно пустому значению в оной, соседние диагональные клетки не рассматриваются
да и стиль исходного ГК, кхм, автору даже было западло скопипастить 26 строку в 29 (явный косяк в третьем условии) - он это все руками набивал
ставлю диагноз, внимание на экран - @bormand занимается репетиторством по информатике
bormand 20.08.2012 21:57 # +2
Валидация поля для кроссворда. В клетках именно bool, на диагональное соседство всем пофиг, а клетки за границами с чистой совестью можно считать равными false.
> автору даже было западло скопипастить 26 строку в 29
Хм, вот внимательность то... а я даже до половины не дочитал.
> занимается репетиторством по информатике
Только для друзей и только бесплатно ;)
HaskellGovno 20.08.2012 22:01 # +2
bormand 20.08.2012 22:02 # +1
vistefan 21.08.2012 08:25 # 0
bormand 21.08.2012 08:36 # 0
system("pause") в тестовых проектах или лабах - ну а почему бы и нет, главное чтобы в продакшен не попало, и других людей этому не учили.
А в данном случае хватило подсказки "а почему бы тебе не запилить метод get(), который будет возвращать false при выходе за границы, и ячейку массива в противном случае".
Lure Of Chaos 21.08.2012 06:21 # +1
bormand 21.08.2012 08:21 # 0
wildscliss 21.08.2012 10:15 # 0
defecate-plusplus 21.08.2012 10:18 # +4
@
сразу отвечай
сказали же - ипонский кроссворд, не нужны там диагональные клетки
victor-homyakov 23.08.2012 12:32 # +4