Print Deck of Cards

Здравейте,
Пак имам проблем с друга задача от loop контеста- Print Deck of Cards. Във visual studio code изглежда, че кода работи, но judge ми дава само 60/100. Това е моят код:
https://pastebin.com/uU6Fz1bH

Може ли някой да ме насочи къде греша. Благодаря предварително!

Това е условието:
Write a program that reads a card sign(as a string ) from the console and generates and prints all possible cards from a standard deck of 52 cards up to the card with the given sign(without the jokers). The cards should be printed using the classical notation (like 5 of spades, A of hearts, 9 of clubs; and K of diamonds).

  • The card faces should start from 2 to A ( 10 is 10).
  • Print each card face in its four possible suits: clubs , diamonds , hearts and spades .

Input

  • On the only line, you will receive the sign of the card to which, including, you should print the cards in the deck.

Output

  • The output should follow the format bellow(assume our input is 5 ):
2 of spades, 2 of clubs, 2 of hearts, 2 of diamonds
3 of spades, 3 of clubs, 3 of hearts, 3 of diamonds
...
5 of spades, 5 of clubs, 5 of hearts, 5 of diamonds

Здрасти,
резултатът от arr +=deck[i] + " of " + suits[y] +", "; за всеки запис на всеки ред би изглеждал г.д. така :
2 of spades, 2 of clubs, 2 of hearts, 2 of diamonds,
Т.к. ползваш array би трябвало да имаш готов метод/функция за Join, но не съм сигурен за JS.
Също трябва да си подредиш боите в масива както са дадени в примера -> [spade, clubs, hearts, diamonds], а не [‘clubs’, ‘diamonds’, ‘hearts’, ‘spades’].
Здраво!

1 Like

Здравей- благодаря за отговора. Смених подреждането на боите, но пак ми дава 60/100 wrong answer. За задачата аз използвам nested loops (for within a for), защо да ми е необходима join функция - можеш ли да ми обясниш защо nested loops не сработва? По принцип контеста е за loops, така че мисля се предполага, че не трябва да се използват функции.

Здрасти,
с JS не съм се занимавал и изхождам от гледната точка на type-safe език, така че не съм на 100% сигурен.
Бих предположил, че една причина за грешки е кгоато х е от вале до асо, т.е. не е число - това ще има отношение в първия for.
Друго нещо, което сега забелязвам е, че за всяко i на ново се декларира arr, което нз дали не зачиства нещата, които преди това си вкарал в него.
Ако някой друг с фактически опит в JS се включи ще е най-ефикасно, но пробвай и с нещата, които ти написах :slight_smile:
Успех!

Здрасти, според мен проблемът е в този ред:

for(deck[i]; deck[i]<=x; i++)

Реално при карта различна от 2 до 10 (примерно А), кодът не работи правилно (изкарва картите само от 2 до 10), тъй като не знае реално как точно да действа с буквите (A, J, K, Q). Аз честно да си кажа съм направил с един цикъл, но е супер, че го правиш както е искано в условието (мисля, че и решението на Ники беше доста подобно):

https://pastebin.com/e561zeWZ

Ако ти се занимава, може да го преработиш да е с 2 цикъла, както е и твоята идея.

Поздрави,
Алекс

1 Like

Благодаря, проработи!