14.12.2014, 16:12
|
Аспирант
|
|
Регистрация: 11.11.2014
Сообщений: 48
|
|
такнашел еще интересное задание по циклам).
Цитата:
|
Шахматная доска
Напишите программу, создающую строку, содержащую решётку 8х8, в которой линии разделяются символами новой строки. На каждой позиции либо пробел, либо #. В результате должна получиться шахматная доска.
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
|
|
|
14.12.2014, 16:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
kaflan,
на форуме есть ответы
Сообщение от kaflan
|
Шахматная доска
|
если поискать ))) но интереснее же самому
|
|
14.12.2014, 18:15
|
Аспирант
|
|
Регистрация: 11.11.2014
Сообщений: 48
|
|
var spc = " ";
var num = "#";
var lines = +prompt("число линий", 8);
var row = +prompt("число символов в строке включая ' ' ",8);
var result = "";
for(var i = 0; i < lines; i++ ) {
for(var n = 0; n < row; n++) {
if (row%2==0) {
if (lines%2 == 0) {
result += num;
} else {
result += spc;
}
} else{ if(line % 2 == 0) {
result+=spc;
}else {
result+=num;
}
}
}
console.log(result);
}
как то так. вот) склепал ) еще не тестил но кажеться я на правильном пути постигания матана в джава скрипте)
http://jsfiddle.net/Kaflan/qd0gLenn/8/ ох матан идет тугенько.... путаюсь пока с двумя циклами которые должны давать , результат результата пока нет, того что нужен нет доски а есть не понятная штука. годный инструмент для создания рандомной карты...
Последний раз редактировалось kaflan, 14.12.2014 в 21:20.
Причина: очепятки, матан идет туго
|
|
15.12.2014, 11:37
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Жутко усложняешь. Весь перебор можно уместить в пять строк.
И поработай над форматированием, оно у тебя жутко хромает, читать невозможно)
|
|
15.12.2014, 12:51
|
Аспирант
|
|
Регистрация: 11.11.2014
Сообщений: 48
|
|
я учусь. кароче не значит, читабельне.
Сообщение от Erolast
|
Жутко усложняешь. Весь перебор можно уместить в пять строк.
И поработай над форматированием, оно у тебя жутко хромает, читать невозможно)
|
ПОработать над форматированием?.... ок. просто не успел нажать tidy up. и все норм читаеться... 5 строкэто здорово, но это будет наверное малопонятная для начинающего формула. Пример очень хорош.
http://jsfiddle.net/Kaflan/qd0gLenn/11/ вот подскажи как укоротить чтобы даже новичек понял код
Последний раз редактировалось kaflan, 15.12.2014 в 15:20.
Причина: сделал
|
|
15.12.2014, 13:20
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
просто не успел нажать tidy up.
|
Надо уметь нормально форматировать без всяких tidy up, самому ж удобней будет.
Цитата:
|
и все норм читаеться...
|
А могло бы намного лучше.
Цитата:
|
5 строкэто здорово, но это будет наверное малопонятная для начинающего формула.
|
Да нет, все элементарно:
var result = "\n";
for (var row = 1; row <= 8; row++) {
for (var cell = 1; cell <= 8; cell++) {
result += (row % 2 == cell % 2) ? "#" : " "; //Можно еще побитово - (row & 1 == cell & 1)
}
result += "\n";
}
console.log(result);
Вообще, есть золотое правило - чем код короче, тем он лучше.
Последний раз редактировалось Erolast, 15.12.2014 в 13:25.
|
|
15.12.2014, 15:50
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Erolast
|
Вообще, есть золотое правило - чем код короче, тем он лучше.
|
ты бы пояснил, что имеешь в виду.
вот золотые правила: http://habrahabr.ru/post/144611/. Но там нет SOLID, так что принципов может быть немного больше
|
|
15.12.2014, 16:24
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Имею в виду, что чем короче код, тем проще его писать, читать, вспомнить и расширять. Естественно, я не о количестве символов, а о количестве логики.
|
|
15.12.2014, 17:03
|
Аспирант
|
|
Регистрация: 11.11.2014
Сообщений: 48
|
|
Сообщение от Erolast
|
Да нет, все элементарно:
|
спасибо я покадо такого немогу додуматься.... а поводу краткости... тут палка двух концов, если функция не рекурсивная то такой код хорошо, но если рекурсивная функция глубокая то это может немного поламать читабельность
|
|
15.12.2014, 17:12
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
а поводу краткости... тут палка двух концов, если функция не рекурсивная то такой код хорошо, но если рекурсивная функция глубокая то это может немного поламать читабельность
|
Чо? При чем тут рекурсия?
|
|
|
|