- 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))
Код одного из моих друзей. Проверяет закрашена ли хотя бы одна клеточка вокруг указанной...
если по существу - странная задача, в "клеточке" хранится чуть ли не bool, отсутствие клетки эквивалентно пустому значению в оной, соседние диагональные клетки не рассматриваются
да и стиль исходного ГК, кхм, автору даже было западло скопипастить 26 строку в 29 (явный косяк в третьем условии) - он это все руками набивал
ставлю диагноз, внимание на экран - @bormand занимается репетиторством по информатике
Валидация поля для кроссворда. В клетках именно bool, на диагональное соседство всем пофиг, а клетки за границами с чистой совестью можно считать равными false.
> автору даже было западло скопипастить 26 строку в 29
Хм, вот внимательность то... а я даже до половины не дочитал.
> занимается репетиторством по информатике
Только для друзей и только бесплатно ;)
system("pause") в тестовых проектах или лабах - ну а почему бы и нет, главное чтобы в продакшен не попало, и других людей этому не учили.
А в данном случае хватило подсказки "а почему бы тебе не запилить метод get(), который будет возвращать false при выходе за границы, и ячейку массива в противном случае".
@
сразу отвечай
сказали же - ипонский кроссворд, не нужны там диагональные клетки