ti-enxame.com

Quais técnicas são usadas em resolver problemas de golfe de código?

"Regular" Golf vs. Código Golf:

Ambos são competições. Ambos têm um conjunto bem definido de regras, que eu deixarei de fora para simplificar. Ambos têm metas bem definidas; Em suma, "use menos hits/personagens do que seus concorrentes".

Para ganhar partidas, os golfistas atléticos confiam em

  • equipamento
    • Algumas situações pedem uma cunha de areia; outros, um ferro 9.
  • técnicas
    • A unidade funciona melhor quando seus pés são sobre a largura do ombro e seus braços estão relaxados.
  • e estratégias [.____]
    • Claro, você pode levar esse atalho direto para o buraco ... Mas você realmente quer arriscar o risco de água ou a bunker de areia quando essas árvores estão no caminho e o vento é tão forte? Pode ser melhor percorrer o longo caminho.

O que os golfistas de código que são analógicos para os equipamentos, técnicas e estratégias de golfistas atléticos?

A resposta da amostra para obter isso: Use o clube direito! Escolha o golfscript em vez de C #.

4
Pops

Eu diria que o conhecimento profundo das esquisities sintáticas da sua ajuda de idioma. Aqui é um que eu encontrei em Ruby Ao fazer um pouco de código de golfe:

Ao invés de

require "sequel"
require "nokogiri"
require "chronic"

Você pode fazer algo assim:

 body_of_your_program if %w{sequel nokogiri chronic}.each{|i| require i}

Com esse tipo de coisa, você também pode escrever incrivelmente elaborada Ruby one-forers!

Em Ruby e perl, você também recebe as variáveis ​​mágicas como "$ _" que podem ser usados ​​para fazer todo tipo de magia com cordas e regexes. Seus dados não são cordas? Bem, você pode quer transformá-lo em cordas.

Obviamente, em C, o pré-processador é seu amigo.

3
Tom Morris

Dependendo do desafio do código de golfe, basta começar, codificando-o. Não Mather a quantidade de caractere inicial, é o primeiro passo. Tentar codificar do zero com o menor caractere pode simplesmente tornar mais difícil. Depois disso, procure onde você pode otimizar seu código (use 1 variável de caractere, faça operação de encadeamento, etc.). Esta parte envolve dominar a linguagem em que você está fazendo o código de golfe, melhor você sabe, mais você saberá o ajuste que economizará personagens.

Exemplo dessa estratégia/técnica:
https://stackoverflow.com/questions/3173415/code-golf-2d-platformer/3173614#3173614

Quanto ao equipamento, para a maioria dos desafios de código de golfe, o equipamento ideal é usar uma linguagem personalizada feita apenas para o desafio. Às vezes, essa linguagem já existe, às vezes você pode simplesmente inventar e codificar um intérprete.

1
HoLyVieR