Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.12.2014, 16:12
Аспирант
Отправить личное сообщение для kaflan Посмотреть профиль Найти все сообщения от kaflan
 
Регистрация: 11.11.2014
Сообщений: 48

такнашел еще интересное задание по циклам).
Цитата:
Шахматная доска

Напишите программу, создающую строку, содержащую решётку 8х8, в которой линии разделяются символами новой строки. На каждой позиции либо пробел, либо #. В результате должна получиться шахматная доска.

# # # #
 # # # #
# # # #
 # # # #
# # # #
 # # # #
# # # #
 # # # #
Ответить с цитированием
  #12 (permalink)  
Старый 14.12.2014, 16:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

kaflan,
на форуме есть ответы
Сообщение от kaflan
Шахматная доска
если поискать ))) но интереснее же самому
Ответить с цитированием
  #13 (permalink)  
Старый 14.12.2014, 18:15
Аспирант
Отправить личное сообщение для kaflan Посмотреть профиль Найти все сообщения от kaflan
 
Регистрация: 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. Причина: очепятки, матан идет туго
Ответить с цитированием
  #14 (permalink)  
Старый 15.12.2014, 11:37
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Жутко усложняешь. Весь перебор можно уместить в пять строк.
И поработай над форматированием, оно у тебя жутко хромает, читать невозможно)
Ответить с цитированием
  #15 (permalink)  
Старый 15.12.2014, 12:51
Аспирант
Отправить личное сообщение для kaflan Посмотреть профиль Найти все сообщения от kaflan
 
Регистрация: 11.11.2014
Сообщений: 48

я учусь. кароче не значит, читабельне.
Сообщение от Erolast Посмотреть сообщение
Жутко усложняешь. Весь перебор можно уместить в пять строк.
И поработай над форматированием, оно у тебя жутко хромает, читать невозможно)
ПОработать над форматированием?.... ок. просто не успел нажать tidy up. и все норм читаеться... 5 строкэто здорово, но это будет наверное малопонятная для начинающего формула. Пример очень хорош.
http://jsfiddle.net/Kaflan/qd0gLenn/11/ вот подскажи как укоротить чтобы даже новичек понял код

Последний раз редактировалось kaflan, 15.12.2014 в 15:20. Причина: сделал
Ответить с цитированием
  #16 (permalink)  
Старый 15.12.2014, 13:20
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 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.
Ответить с цитированием
  #17 (permalink)  
Старый 15.12.2014, 15:50
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Erolast
Вообще, есть золотое правило - чем код короче, тем он лучше.
ты бы пояснил, что имеешь в виду.

вот золотые правила: http://habrahabr.ru/post/144611/. Но там нет SOLID, так что принципов может быть немного больше
Ответить с цитированием
  #18 (permalink)  
Старый 15.12.2014, 16:24
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Имею в виду, что чем короче код, тем проще его писать, читать, вспомнить и расширять. Естественно, я не о количестве символов, а о количестве логики.
Ответить с цитированием
  #19 (permalink)  
Старый 15.12.2014, 17:03
Аспирант
Отправить личное сообщение для kaflan Посмотреть профиль Найти все сообщения от kaflan
 
Регистрация: 11.11.2014
Сообщений: 48

Сообщение от Erolast
Да нет, все элементарно:
спасибо я покадо такого немогу додуматься.... а поводу краткости... тут палка двух концов, если функция не рекурсивная то такой код хорошо, но если рекурсивная функция глубокая то это может немного поламать читабельность
Ответить с цитированием
  #20 (permalink)  
Старый 15.12.2014, 17:12
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
а поводу краткости... тут палка двух концов, если функция не рекурсивная то такой код хорошо, но если рекурсивная функция глубокая то это может немного поламать читабельность
Чо? При чем тут рекурсия?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск