[Homework] JavaScript Basics - Въведение в JavaScript - ноември 2014
Ето моите решения.
Не съм гледал условията на задачите, така че ще си позволя на сляпо една забележка.
Хубаво е, че в 4-та задача си ползвал функция, но има едно неписано правило за функциите, и то е, че трябва да нямат side-effects. Твоята функция се казва calcCircleArea() и аз примерно, като човек, който ти ползва програмата, бих очаквал да калкулира и return-ва съответната стойност, а то се оказва, че не стига, че не return-ва нищо, ами и създава параграфи в страницата ми :)
Разбира се, за конкретната задача не е проблем, просто го казвам, за да го имаш предвид занапред. Една функция трябва да прави само едно нещо и това нещо да се подразбира от името й.
Много добре описано е това в една от най-добрите книги, които съм чел до момента - Clean Code в темата за функции "Have no side-effects"
А..? От кога и за кога са тези задачи?
Аз ли нещо не съм в час..
Споко, човекът просто е решил да мине малко напред с материала и си е решил първото домашно. Страницата на курса вече е направена и са сложени домашните (поне първите 3).
Къде е тази страница?
Направих и последната задача - Falling Rocks
Кодът ми определено е доста некачествен, поради скорошното ми превключване към JS и тъй като все още не знам много много за добрите практики при писане на JS код. Освен това, не съм се занимавал да оптимизирам играта като добавям резултат и да направя геймплея малко по-цивилизован.
Nonetheless, приемам критики относно кода и как бих могъл да го подобря.
Здрасти, линка се чупи, провери го пак. :)
Благодаря че ми каза :) Оправих ги.
Много добре си го направил. Като препоръка по-добре ще изглежда ако цвета на играчите се различава. Ако може го направи когато има победител да не може да се играе повече по board-а. Сега ако X спечели и продължа да играя и направя линия с О, то изписва, че О печели.
Да, и аз го забелязах и утре ще се помъча да го оправя, междувременно ще се радвам ако някой може да даде някакви насоки :) Това с цветовете също е добра идея
Здравейте,
Ако може, някой да сподели как се е справил с задача 5 от домашното?
Аз доста време и нерви загубих, но нещо не ми се получава toUpperCase на string в резултата, както е по условие - все ми дава грешка! Това ми е решението Problem 5. Decimal to Hexadecimal, и работи до метода toUpperCase, т.е. с малки букви всичко е точно!
Предварително, благодаря на отзовалите се и вярвам, че трябва да си помогаме взаимно!
Здрасти,
на 10 ред:
alert(num.toString(16).toUpperCase);
ти липсват едни скоби () след .toUpperCase
трябва да е .toUpperCase());
Незнам дали тук е мястото да задам този въпрос,но имам проблем с Visual Studio и не мога да си направя домашното,защото след инсталирането на Node.JS ми отваря JS-файловете на конзолата,но не се справям със задачите,в които се изисква HTML-документ,който трябва да тръгне през браузъра.Моля за помощ някой да ми подскаже как да си създам HTML + JS и да ги отворя през браузър.До сега ползвах nodepad++ за HTML и Visual Studio не ми е много ясно....
Не е нужно да пускаш html-a през VS. Може директно да си го отвориш в browser-a. Ако все пак искаш да го пускаш през VS погледни до какво решение стигнах ТУК
Как да го отворя директно през браузъра?Не мога да отворя линка ,който си пуснал-дава ми грешка.
Ако трябва да направя домашното,не трябва ли да е в един солюшън в VS и към всяка задача,където е необходимо по условие,да създавам HTML + JS?Например още в 1-ва....? Как трябва да бъде решена - с JS-файл от VS и HTML от nodepad++?!.......Не мога да се оправя....и от лекциите никъде не видях как става?!!!...Открих къде създавам HTML в VS,но как да го накарам да работи...
Я пробвай сега да отвориш линка. Много дразни това чупене на линковете във форума...
Иначе не за всички задачи ти трябва html файл. Там, където е конзолна задачата не ти трябва html. Реално като предаваш дадено домашно трябва да имаш най-много 3 вида файлове - JS, HTML и CSS. А как ще ги напишеш тези файлове ти си решаваш. На конзолните задачи ти трябва единствено JS файл, който да стартираш. В линка, който ти дадох, има описано как да execute-неш JS файла. От друга страна в задачите изискващи html процедираш както в html-css курса. Създаваш си трите вида файлове и в html-a линкваш css-a и js-a. CSS-a знаеш как се линква, а JS се линква точно преди затварящия так </body> чрез
<script src="..."></script>
Проверяващия на задачите с html лесно ще се оправи - просто стартира html файла. Конзолните задачи ще ги пусне чрез node.js конзолата.
Проблемът ти да не може да стартираш html файлове през VS е защото правиш project от тип Node.js console application. В този случай VS не само не може да стартира html файлове, но intelliscene и autocomplete се чупят за Javascript файловете като цяло. Заради това в другата тема съм описал какъв проект да се създаде, така че да няма този проблем.
"Открих къде създавам HTML в VS,но как да го накарам да работи... " - той html файла си работи. Отиваш в папката на компютъра и го отваряш с double click.
Ето ги и моите решения.
Малко решения и от мен - Link to Git
Tic-Tac-Toe-то се чупи през git preview но като я стартирам от папката на лаптопа си работи нормално. Не ми е ясно защо се получава така но не мисля и да се занимавам, че пак няма да има време за всички домашни.
Сега като я пробвах забелязах, че на едно квадратче мога да цъкам докато изхабя всичките 9 хода за играта. Всеки път като цъкам на това квадратче се променя от О на X.
Да бе, верно, че е така. Изобщо не съм се сетил даже за тази възможност
За да се прихване този случай трябва да се добави още една проверка за стойността на щракнатата клетка. Ако е -1 (с тази стойност се инициализира масива в началото) да е възможно да се пише в клетката а ако не е -1 да не може. Ако остане време ще се позанимая да го коригирам.
Edit: Всъщност го коригирах, то не някакъв rocket science.
Можете ли да ми кажете, защо не ми се получава този код на 5-та задача? Излиза ми същото число в alert window, което въведа в prompt.
Ако пробвам друг начин, пък на числото 256, ми излиза 100...
var enter = prompt("Enter a number");
var hex = enter.toString(16);
hex = parseInt(hex);
if (enter != null){
alert(hex);
}
Парсни си входа, защото той е стринг:
var enter = parseInt(prompt("Enter a number"));
Направих го но не ми излизат в шестнайсетична, излиза ми примерно на 256, отговор 100. Пробвах и с кодовете на другите и същото. Не разбирам каква може да е причината.