Чи впаде Джиммі з його платформи?


29

Попередня історія

Знайомтесь з моїм другом Джиммі:

/o\

Джиммі - маленький персонаж, який любить стояти на платформах. Ось Джиммі безпечно стоїть на платформі:

         /o\
  -------------

Тепер у Джиммі хороше почуття рівноваги, тому він може спокійно стояти однією ногою від платформи, наприклад:

   /o\
    -------------------

Хоча якщо він стоїть з двома або більше частинами кузова від платформи, він впаде. Обидва ці приклади, коли Джиммі впаде:

/o\                                       /o\
  ----------        ----------------------   

Змагання

Ваше завдання полягає в тому, щоб написати програму, щоб визначити, задавши рядок з платформою і положенням Джиммі, чи може Джиммі стояти на платформі без падіння.

  • Вхідні дані: Два рядки, що показують положення Джиммі та положення платформи під ним. Це може бути з двох окремих входів, одного входу або масиву якогось типу.

    1. Ви можете приймати дані в будь-якій розумній формі, включаючи функції та стандартний ввід. До жорсткого кодування вдайтеся лише в тому випадку, якщо ваша мова не підтримує інші способи введення.
  • Вихід: Булеві значення true та false, або цілі числа 1 або 0, щоб відображати істинно / false відповідно.

    1. Булеве значення базується на тому, чи може Джиммі залишитися на платформі чи ні - правда, якщо Джиммі може залишитися на платформі, або помилковим, якщо він відвалиться.
  • Розмір платформи довільний і може змінюватися за бажанням. Ваша програма повинна це враховувати.

    1. Платформа не може бути дорівнює нулю, і платформа повинна бути повною (жодних отворів у платформі).

    2. Пам'ятайте, що Джиммі відвалюється, коли дві його частини тіла звисають з платформи. Частина тіла - це один ASCII характер його тіла.

    3. Пробіл пробілів в кінці платформи не обов'язковий, але ваша програма повинна враховувати обидві ситуації, коли після платформи є пробіли та де немає.

  • Пам’ятайте про стандартні лазівки , які заборонені.

Тестові справи

         /o\               ✔️ TRUE
  -------------

/o\                        ✔️ TRUE
 ----------

                    /o\    ❌ FALSE
  ------------------

               /o\         ❌ FALSE
  -------

    /o\                    ❌ FALSE
     -

Оцінка балів

Це , тому виграє найменший байт.

Таблиця лідерів

Ви можете переглянути таблицю лідерів цієї публікації, розгорнувши віджет / фрагмент нижче. Для того, щоб ваша публікація була включена до рейтингу, вам потрібен заголовок ( # header text) з такою інформацією:

  • Назва мови (закінчте її комою ,чи тире -), а потім ...

  • Кількість байтів як останнє число, яке з’явиться у вашому заголовку.

Наприклад, JavaScript (ES6), 72 bytesє дійсним, але Fortran, 143 bytes (8-bit)недійсним, оскільки кількість байтів не є останнім номером у заголовку (ваша відповідь буде розпізнана як 8 байт - не користуйтеся цим).

<!-- Run the snippet to see the leaderboard. Report any bugs to @xMikee1 on Github -->    <iframe src="https://xmikee1.github.io/ppcg-leaderboard/?id=187586" width="100%" height="100%" style="border:none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>


Чи можемо ми припустити пробіл пробілів після Джиммі? Крім того, якщо ви дозволяєте масиви символів, у деяких мовах вони повинні бути залиті пробілом.
Нік Кеннеді

@NickKennedy Вам потрібно буде врахувати пробіл пробілів або відсутність пробілів. Я не встановлював суворих правил щодо цього.
connectyourcharger

12
Заголовок - "буде падіння платформи Джиммі ", і вам потрібно вивести ", щоб Джиммі залишився на платформі". Це очікувана поведінка?
tsh

6
Чи можете ви переформатувати свої тестові справи, щоб полегшити їх копіювання та вставлення?
Кудлатий

2
Чи допускається заміна правдиво-хибних значень? (тобто результат справжній, коли Джиммі падає, і хибний, коли цього не відбувається?)
Містер Xcoder

Відповіді:


20

Желе , 6 байт

n⁶Sċ2Ẓ

Спробуйте в Інтернеті!

Пояснення:

n⁶Sċ2Ẓ  args: z (e.g. [['/', 'o', '\\'], [' ', '-']] => 0)
        implicit return value: z ([['/', 'o', '\\'], [' ', '-']])
n⁶      dyad-nilad pair ([[1, 1, 1], [0, 1]])
 ⁶       4th command-line argument or space [4th CLA assumed absent] (' ')
n        vectorized inequality ([[1, 1, 1], [0, 1]])
  S     reduction by addition with base case 0 ([1, 2, 1])
   ċ2   dyad-nilad pair (1)
    2    literal (2)
   ċ     number of occurrences of right in left (1)
     Ẓ  primality (0)

26
Іноді мені цікаво, як далеко просунулося людство, побачивши, що в 6 байтах можна перевірити, чи хтось зійде з платформи на свою приреченість.
IMustBeSomeone

4
@IMustBeSomeone, якщо я зійду з платформи до своєї приреченості, я хотів би, щоб хтось швидкий сказав мені!
Кудлатий

18
@Shaggy Мені завжди здавалося, що це смішно, коли люди робили виклики зі вступом: "Оскільки ми не хочемо витрачати занадто багато часу на X, код повинен бути якомога короткішим", навіть незважаючи на те, що код-гольф та продуктивність є в більшості випадків протилежними. Якщо ми можемо зберегти байт, що йде від до , який піклується про продуктивність, ми отримаємо байт! ; pO ( n n )O(log(n))O(nn)
Кевін Круїссен

1
Я не знаю, Jelly, але чому Sсума підсумовує стовпці замість рядків? : S Якщо я правильно подивився на вікі, код робить: n⁶перевірте для кожного символу, що він не дорівнює пробілу (тобто ['/o\\', ' -'] -> [[1,1,1],[0,1]]); Sсписок підсумків (але чомусь це підсумовує стовпці замість рядків .. так [[1,1,1],[0,1]] -> [1,2,1]); ċ2порахуйте кількість 2с; перевірте, чи це просте значення (тобто 2 або 3), після того, як результат виводиться неявно. Але я б очікував [[1,1,1],[0,1]]підсумувати [3,1]..
Кевін Кройсейсен

1
@KevinCruijssen Sеквівалентний 0;+/Ɗ, тобто зменшення додаванням (яке векторизується) з початковим значенням 0. §робить те, що ви очікували Sзробити.
Ерік Аутгольфер

19

JavaScript (ES6), 38 байт

Вводиться як " (a)(b). Повертає або .01

a=>b=>b[a.search`o`]=='-'&/--/.test(b)

Спробуйте в Інтернеті!

Як?

Ми шукаємо положення середньої частини "o"тіла Джиммі в першій струні і перевіряємо, чи є тире в другій струні в тому ж положенні.

b[a.search`o`] == '-'

Єдиний випадок, коли Джиммі був би небезпечний у цій ситуації, - це платформа з єдиним тире:

/o\
 -

Тож ми додатково переконаймося, що платформа має ширину щонайменше :2

/--/.test(b)

JavaScript (ES6), 36 байт

Альтернативна версія, якщо припустити, що під Джиммі завжди є або тире, або пробіли (тобто вхід прямокутний).

a=>b=>b[a.search`o`]!=0&/--/.test(b)

Спробуйте в Інтернеті!

Користується тим, що примус до числового значення дорівнює для пробілу, а NaN - для тире.0


Ого. Чи можете ви пояснити, як це працює?
connectyourcharger

@connectyourcharger Я додав пояснення.
Арнольд

3
Геніальність! Відповіді JS зазвичай не такі короткі.
connectyourcharger


@Oliver не вдасться"/o\\\n__"
tsh

10

Excel, 67 45 44 байт

=(MID(A2,FIND("o",A1),1)="-")*(TRIM(A2)>"-")

Покладіть Джиммі A1, на майданчик A2.

Перевірено 2 умови:

  • Чи є тулуб Джиммі ( o) на платформі?
  • Це платформа більше, ніж просто -?

1
@Keeta Правки протягом перших п'яти хвилин не відображаються в історії редагування.
Фонд позову Моніки

З обмеженого тестування, яке я зробив, я думаю, що ви можете змінитись <>на>
Тейлор Скотт

9

Python 3, 88 43 байт

Введення подається у вигляді списку, що містить два рядки: перший рядок - це перший рядок; другий рядок - другий рядок.

lambda a:sum(1-(" "in i)for i in zip(*a))>1

Спробуйте в Інтернеті!

Інша версія, прив’язка до 43 байтів (я не зміг отримати її коротше 43):

lambda a,b:b[a.find("/"):][:3].count("-")>1

Спробуйте в Інтернеті!

Вниз на 42 байти завдяки підказці Джо Кінга.

Стара версія:

lambda s:sum((s.split("\n")[1]+" "*len(s))[i]=="-"and s[i]!=" "for i in range(len(s)))>1

-2 байти завдяки сріотчілізму О'Заїку.

Це спрацьовує, взявши два окремих введення, а потім з'єднавши відповідні літери. Він підраховує кількість пар, де жоден символ не є пробілом, а потім повертає True, якщо це число більше 1.


8

Perl 6 , 18 байт

{?/''B|Bq/}o&[~^]

Спробуйте в Інтернеті!

Бере два параметри і повертає булевий рівень того, чи залишиться Джиммі на платформі. Це працює, використовуючи XORing двох ліній разом і перевіряючи, чи якась частина Джиммі все ще знаходиться на платформі.

Пояснення:

             &[~^]   # String XOR operator
{          }o        # Combined with the anonymous function
 ?/       /          # That checks for the regex match
   ''B              # Unprintable, B, which is "/o" ~^ "--"
       |Bq           # Or B, q, which is "o\" ~^ "--"


6

Хаскелл , 34 байти

a#b=[1|(p,'-')<-zip a b,p>' ']>[1]

Спробуйте в Інтернеті!

Я отримав цей, поєднуючи мою техніку нижче з відповіддю іншої haskell .

Haskell , 45 байт

x#'-'|x/=' '=1
x#y=0
(((>1).sum).).zipWith(#)

Спробуйте в Інтернеті!

Це підраховує кількість частин кузова (непробільних символів), які знаходяться на вершині платформи, а потім перевіряє, що це більше ніж 1. Причина, коли ми рахуємо частини кузова на платформі, а не частини кузова, - це те, що zipWithбуде рубати верхню лінію бути довжиною дна і, таким чином, може відрізати частини тіла Джиммі. Це заважає нам робити щось подібне cycle" "до заміщення списку.


1
Ви не можете зменшити на 2 байти, перетворивши на інфікс?
Коул

1
@cole Так, я тільки робив редагування, коли ви коментували :)
Пшеничний майстер

4

MathGolf , 6 14 байт

`^@╞^αmÆû-oñ╧╙

Спробуйте в Інтернеті!

Для обліку крайового випадку, представленого Ніком Кеннеді, довелося додати 8 байт.

Перевіряє, чи "-o-"не є підряд з блискавковим рядком обох рядків та рядком-блискавкою, де перший рядок введення видалено перший символ. Вважає вхідні дані двома окремими рядками, єдиною зміною є те, що символ вводиться як /o\\, оскільки \\це правильний спосіб введення зворотної косої риски в рядку в MathGolf.

Пояснення

`                duplicate the top two items
 ^               zip top two elements on stack
  @              rrot3
   ╞             discard from left of string/array
    ^            zip top two elements on stack
     α           wrap last two elements in array
      mÆ         explicit map using 5 operators
        û-oñ     push "-o" and palindromize to make "-o-"
            ╧    pop a, b, a.contains(b)
                 map block ends here
             ╙   max of list

О, це кращий підхід, ніж моя відповідь MathGolf . Після втручання я знову розділив його на частини розміром 2 замість того, щоб безпосередньо перевіряти наявність "-o-".
Кевін Крейссен


@NickKennedy гарний улов! Я побачу, як я можу виправити код та оновити публікацію, як тільки вона пройде. Це, ймовірно, додасть кілька байтів, що шкода.
maxb

3

05AB1E (спадщина) , 9 8 7 байт

ζðм2ùgp

-1 байт завдяки @ Mr.Xcoder з наближенням ðм2ù.

Введіть як список двох рядків.

Працює лише в застарілій версії 05AB1E, оскільки ζможе перенести список рядків, а також двовимірний список символів, тоді як ζу новій версії 05AB1E працює лише з двовимірним списком символів.

Спробуйте в Інтернеті або перевірте всі тестові випадки .

Пояснення:

ζ        # Zip/transpose; swapping rows/columns, with space as default filler
 ðм      # Remove all spaces from each string
   2ù    # Only leave strings of size 2
     g   # Count how many there are left
      p  # Check if this is a prime (2 or 3)
         # (after which the result is output implicitly)

1
Ваш заголовок порушує таблицю лідерів, смх :)
connectyourcharger

@connectyourcharger Ах, мабуть, тому, що я завжди посилаюсь bytesна сторінку коду, щоб ви знали, що вона не закодована в UTF-8, але натомість використовує спеціальне кодування. ;) Якщо ви хочете, я можу відредагувати свою відповідь, щоб поставити кодування нижче заголовка, але, чесно кажучи, код лідерів повинен бути в змозі впоратися з ним.
Кевін Круїссен

Мені здається, мені потрібно додати спеціальний регістр для 05AB1E - це одна з єдиних мов, яка має проблеми з кодовою сторінкою. Виправити вхідне скоро-ish.
connectyourcharger

1
Намагаються придумати модифікований регулярний вираз. Наразі це буде постійною помилкою. Якщо ви хочете зробити свій внесок, ось такий сценарій: github.com/xMikee1/ppcg-leaderboard/edit/master/docs/script.js . Можливо, мені доведеться повністю переробляти байти, які аналізують.
connectyourcharger

Ви не можете змінити URL, щоб https://github.com/Adriandmen/05AB1E/wiki/Codepage?7він став останнім номером 7, не відміняючи URL-адресу?
LF


3

Dyalog APL Extended, 11 10 8 байт

21⊥∧⌿⍤<

Спробуйте в Інтернеті!

Пояснення:

21⊥∧⌿⍤<  a monadic train
       <  Compare the input with the implicit prototype element - a space.
          Returns a boolean matrix of characters that are greater than 0x20
    ∧⌿⍤   and-reduce that, i.e. places where both Jimmy and a platform is
  1      base 1 decode, aka sum - the amount of body parts over the platform
2        is that greater-or-equal to 2?

-2 завдяки Адаму.



3

Excel, 36 байт

=LEN(TRIM(MID(A2,FIND("/",A1),3)))>1

Джиммі A1, на платформі в A2.

Знаходить позицію Джиммі та займає 3 байти платформи та обробляє пробіли. Якщо отримана довжина платформи досить довга, Джиммі стоїть.


3

EXCEL, 94 71 байт. VBA (Excel), 87 байт

A1= Джиммі, A2= платформа

-23 байт. Дякую @Wernisch

=(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)*(TRIM(A2)<>"-")

?[(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)]*(len(replace([A2]," ",""))>1)


1
Ви не можете використовувати trimзамість цього len(replace?
Верніш

ой! які ніколи не тонуть мені в голові. haha Спасибі @Wernisch :)
remoel

3

/// , 85 93 87 байт

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ 

Спробуйте в Інтернеті!

Вихід 1, якщо Джиммі в безпеці. Інакше нічого не виводиться. (Unary 1 і 0.) Оскільки немає іншого способу взяти вхід у ///, його потрібно жорстко закодувати:

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ //<INPUT HERE> 

Наприклад:

/\/o\\/(o)// 
/
//
/// (o) /(o)// (o)-/(o)//- -/--//(o) - ///) ///)-///o///(-/1//-///(///)//         /o\
  ------------- 

( Спробуйте в Інтернеті! )

Зверніть увагу на пробіл після <INPUT HERE>.

Пояснення:

ПРИМІТКА! Код пояснення неможливо запустити через коментарі. Зауваження укладені фігурними дужками. Також в оригінальному коді використовується гольф, де //його замінюють ~. Цей код пропущено з пояснення.

/\/o\\/(o)/            {replace Jimmy with a Jimmy with curvy arms, because slashes are hard to manipulate in this language}
/ 
/
/                      {remove unneeded spaces after Jimmy, but before the floor}

/
//                     {get rid of the line break

/ (o) /(o)/            {remove all the spaces before both Jimmy and the floor}
/ (o)-/(o)/            {for each floor tile, remove it and one space before Jimmy. This detects whether Jimmy lines up with the floor.}
                       {If Jimmy is before the floor, then there will be extra floor.}
                       {If Jimmy is behind the floor, then there will be extra spaces before Jimmy.}
/- -/--/               {Handle the case where there is a hole beneath Jimmy but he is still well-supported}

/(o) - //              {Handle the case where only Jimmy's head is on the floor. The space at the end of the code is necessary for this.}
/) //                  {The rest of the substitutions clean up the result and handle each of the possible results that could exist at this point}
/)-//
/o//
/(-/1/
/-//
/(//
/)//


              /o\   
               --
 {there is a space right before this comment. The comment is only here to make the space visible and explain itself.}

  • +8 байт, щоб виправити помилку
  • -6 байт, застосовуючи стандартний ///трюк для гольфу.

1
Вихідний код схожий на дивні емоджи. \\ (о) - (о) //
tsh


2

Haskell, 59 байт

f a b=sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2

Спробуйте в Інтернеті!

Функція називається так: f "/o\\ " " -- "

Як це працює (для f "/o\\" " -"):

b++cycle" "- Додає нескінченну кількість пробілів після того, bщоб переконатися, що Джиммі завжди знаходиться над a -або ( " -"" - ..."

zip a$b++cycle" "- З’єднує обидва рядки разом ( [('/',' '), ('o','-'), ('\\',' ')])

(p,q)<-zip a$b++cycle - Для кожної пари зі списком

[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']- Створює список 1s, довжина якого - кількість пар, що відповідають умовам:

elem p"/o\\"- Персонаж у верхній струні - одна з частин тіла Джиммі. (Задоволено всіма трьома парами в цьому прикладі)

q==' '- Символ у нижньому рядку - пробіл. (Задоволений ('/', ' ')і ('\\', ' '))

Отже, пара повинна бути такою, де одна з частин тіла Джиммі знаходиться над простором.

Оскільки в цьому прикладі дві пари задовольняють обом умовам, список є [1,1]

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']- Візьміть суму тих 1s (тобто довжину списку), яка в цьому прикладі 2.

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2- Перевірте, чи менше частин тіла над простором менше 2. У цьому прикладі це не так, щоб Джиммі відвалився. :(


Я просто думав, що дам вам знати, що ваша відповідь допомогла мені скоротити власну відповідь . Тож дякую!
Пшеничний майстер


2

Котлін, 60 байт

fun String.c(b:String)=zip(b){i,j->i>' '&&j>' '}.count{it}>1

Пояснення:

fun String.c  # Define an extension function on string, so we don't have to provide a first argument (and we also have string method calls for free)
(b:String)    # Pass the second string as argument
=             # Shorthand syntax for fun body
zip(b)        # Essentially a.zip(b). Creates a List<Pair> by joining both arrays. 
              # Takes care of trailing whitespace, because it will be the size of the smaller array
{i,j->        # Declare a transformer lambda as second function argument
i>' '&&j>' '} # This essentially translates to: If i!=' ' and j=='-'
.count{it}    # Count the true values
>1

Ласкаво просимо в Code Golf! Це, звичайно, дуже приємна перша відповідь.
connectyourcharger

2

/// , 57 байт

/|/\/\///\/o\\/J| J/J*|
/|* /|  -/  | /|*-/|--/!|-/|*/|J|

Спробуйте в Інтернеті!

Додайте вхід до кінця програми для запуску. Повертає порожній рядок, якщо Джиммі впаде з платформи, а інший рядок - знак оклику.

  • /|/\/\//замінює |на //, що робить код як коротшим, так і більш читабельним ( |використовується для розмежування кожної заміни)
  • /\/o\\/J| J/J*/замінює Джиммі Jна стислість і змінює простір ліворуч від нього *праворуч від нього
  • Наступна заміна позбавляється від нових рядків.
  • /* /| -/ | //скасовує *s та пробіл зліва від платформи. Якщо залишилося два або більше пробілів, Джиммі відпадає зліва, а платформа видаляється. Ця частина також видаляє будь-який пробіл праворуч від платформи.
  • /*-/|--/!/скасовує *s та довжину платформи. Якщо залишилося щонайменше два -, Джиммі не падає праворуч, тому їх замінюють символом a !.
  • /-/|*/|J// видаляє кожен залишився символ, який не є !


1

Сітківка 0,8,2 , 16 байт

 (.*¶).
$1
¶ ?--

Спробуйте в Інтернеті! Посилання включає тестовий набір. Пояснення:

+`^ (.*¶).
$1

Хоча в першому рядку все ще є пробіл, і обидва рядки все ще мають більше одного символу, видаліть пробіл та перший символ наступного рядка. Примітка. Це передбачає, що після Джиммі не залишається місця. +1 байт потрібен, якщо потрібно дозволити пробіл.

¶ ?--

Перевірте, чи є принаймні два шматки платформи під Джиммі.



1

Рубін 2,5,3, 44 байти

->a,b{a.zip(b).map(&:join).grep(/\S-/).size>1}

Вхід прийнято як два масиви. Безумовно, не найдобріший для гольфу підхід (див. Відповідь ГБ), але мені подобається будь-яке привід використовувати цю zipфункцію.


1

PowerShell , 63..55 53 байти

-1 байт завдяки маззі

param($j,$f)''+($f|% t*y|?{$j[$i++]-gt32})-match'- -'

Спробуйте в Інтернеті!

Вводиться як два рядки.

Розгорнуто:

param($j,$f)            #Take $jimmy and $floor
''+                     #Implicitly converts next part to string
($f |% ToCharArray      #Convert $f to a char[] and...
    |?{                 #Only take the chars where...
        $j[$i++]-gt32   #The same indexed char in $j's ASCII # is > ' ' i.e. only get /o\
     }
)-match'- -'            #Arrays.ToString are joined with a space and we need 2 -'s

Ага. Я ніколи не вважав PowerShell чудовою мовою для гольфу, але, мабуть, це насправді не так вже й погано.
connectyourcharger

@connectyourcharger Це може зробити досить акуратні речі з трубопроводом, але, безумовно, є кілька областей, де це великий біль у попці.
Веська

Я ніколи не переймався цим вчитися через ці больові причини.
connectyourcharger

1
приємно!
відступіть

1

C # (Visual C # Interactive Compiler) , 44 40 39 байт

-4 байти завдяки Джо Кінгу

a=>b=>a.Zip(b,(x,y)=>x>y?y:0).Sum()>109

Спробуйте в Інтернеті!


40 байт, що працює
Jo King

Не дуже працює; tio.run/##Sy7WTS7O/…
CharlesS

@CharlesS Я вважаю, що я це виправив і зберег байт у процесі
Термін дії закінчився

@ExpiredData так, приємно!
CharlesS

1

Пітон 3,7 , 71 56 байт

lambda s:sum(j in'/o\\'and p=='-'for j,p in zip(*s))>1

Дуже проста версія і найкоротша, яку я міг би придумати, використовуючи цей підхід. Input s- це список з двох рядків, перший для рядка Jimmy, другий для платформи. Застебніть символів, які знаходяться один над одним, а потім перевірте, чи -не нижче частини Джиммі як мінімум у двох випадках.

EDIT: Зменшено на досить багато байтів завдяки Blue!


1
Привіт, Ласкаво просимо до Code Golf! Кілька речей: можливо, ви хочете вказати формат введення у своїй відповіді (схоже, sмає бути два списки, один для jimmy і один для платформи?). Крім того, є кілька місць, де можна зберегти байти: замість підсумовування списку ви можете підсумовувати необроблений ітератор (видалити дужки); замість перевірки >=2перевірити >1; ви можете підсумовувати Trueі Falseподобатись 1 і 0, не потрібно якщо інакше. Нарешті, перш ніж публікувати нову відповідь тією ж мовою, слід переглянути попередні, щоб побачити, чи можете ви вдосконалитись.
Блакитний

@Blue Привіт, велике спасибі! І так, я буду пам'ятати про це в майбутньому. :)
Майкл

1

Шеврон, 84 87 байт

>^__>^j
^i<<0
^i<<^i+1
^h<^i>^j
->+2??^h=/
->-3
>^__>^p
^q<^i|2>^p
->+2??^q<--
><0
><1

Це досить нова мова мого власного творіння - інтерпретатор прототипів, документація та приклади програм можна знайти на веб- сайті https://github.com/superloach/chevron .

Пояснення:

  • >^__>^j - прийняти Jimmy як TXT вхід
  • ^i<<0 - індекс ініціалізації до 0
  • ^i<<^i+1 - індекс приросту
  • ^h<^i>^j - отримати характер джимі в індексі
  • ->+2??^h=/ - вистрибнути з петлі на лівій нозі Джиммі
  • ->-3 - перехід до початку циклу
  • >^__>^p - прийняти платформу як TXT-вхід
  • ^q<^i|2>^p - вирізати 3 символи під Jimmy
  • ->+2??^q<-- - якщо два тире під джиммі, перескочіть до виходу на біг
  • ><0 - хибний вихід
  • ><1 - правдовий вихід

Я усвідомлюю, що мій код не справляється з одноіменними випадками платформи - оновлена ​​версія буде відредагована незабаром.
Superloach



0

V , 18 байт

0vt/"_dj.d3lVkp0#x

Спробуйте в Інтернеті!

Виведіть пробіл лише у випадку падіння платформи Jimmy. Виведіть щось непробільне місце, якщо Джиммі залишиться на платформі.


Не використовувати Ctrl або Esc у Vim - це смішно.
tsh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.