92 Глава 4 • Введение в 2D-графику
- int starty = (y / 3) * 3;
- for (int i = startx; i < startx + 3; i++) {
- for (int j = starty; j < starty + 3; j++) {
- if (i == x && j == y)
25 continue;
- int t = getTile(i, j);
- if (t != 0)
- c[t - 1] = t;
- }
30 }
- // сжатие
- int nused = 0;
- for (int t : c) {
- if (t != 0)
35 nused++;
- }
- int c1[] = new int[nused];
- nused = 0;
- for (int t : c) {
40 if (t != 0)
- c1[nused++] = t;
- }
- return c1;
- }
Мы начинае� � �а��ива из девяти нулей� В �троке 4 �ы проверяе� в�е тайлы�
принадлежа�ие то�у же �оризонтал�но�у ряду� что и теку�ий� и� е�ли тайл не
пу�той� �ы �охраняе� е�о �ифру в �а��иве�
В �троке 12 �ы делае� то же �а�ое для в�ех тайлов вертикал�ной �троки� в �тро�
ке 20 — то же �а�ое для тайлов блока три на три�
По�ледний ша�� который начинает�я в �троке 32� — �то �жатие нулей в �а��иве
перед е�о возвра�ение�� Мы делае� �то для то�о� чтобы ко�анда
array .length
�о�ла
быт� и�пол�зована для бы�тро�о определения количе�тва заполненных тайлов�
которые види�ы в теку�ей пози�ии�
Разное
Для завершения реализа�ии на� понадобят�я е�е не�кол�ко �лужебных функ�
�ий и пере�енных�
easyPuzzle
�
mediumPuzzle
и
hardPuzzle
— наши закодированные
�оловоло�ки Su��ku для про�то�о� �редне�о и вы�око�о уровней �ложно�ти �оот�
Su��ku для про�то�о� �редне�о и вы�око�о уровней �ложно�ти �оот�
для про�то�о� �редне�о и вы�око�о уровней �ложно�ти �оот�
вет�твенно�
Достарыңызбен бөлісу: