Java - 1331 ไบต์, 618 ไบต์และ 504 ไบต์
ที่นี่มันอยู่ในจาวา สิ่งที่ยอดเยี่ยมคือมันสวยและอ่านง่าย คุณอาจทดลองเปลี่ยนSHIFT
ตัวแปรเป็น 0 และมันจะเป็นควิน คุณสามารถเปลี่ยนเป็นค่าใดก็ได้ที่คุณต้องการรวมถึงค่าลบและมันจะเปลี่ยนรหัสตาม
public class Quinex {
private static final int SHIFT = 1;
private static String next(String now, boolean mangles) {
String sb = "";
for (char c : now.toCharArray()) {
if (!mangles && c == 87) {
sb += next(String.valueOf(SHIFT), true);
} else {
sb += (char) ((mangles ? c : c == 94 ? 10 : c == 64 ? 34 : c) + SHIFT);
}
}
return sb;
}
public static void main(String... args) {
System.out.println(next(TEXT, false) + next(TEXT, true) + new String(new char[] { 34, 59, 10, 125 }));
}
private static final String TEXT = "public class Quinex {^^ private static final int SHIFT = W;^^ private static String next(String now, boolean mangles) {^ String sb = @@;^ for (char c : now.toCharArray()) {^ if (!mangles && c == 87) {^ sb += next(String.valueOf(SHIFT), true);^ } else {^ sb += (char) ((mangles ? c : c == 94 ? 10 : c == 64 ? 34 : c) + SHIFT);^ }^ }^ return sb;^ }^^ public static void main(String... args) {^ System.out.println(next(TEXT, false) + next(TEXT, true) + new String(new char[] { 34, 59, 10, 125 }));^ }^^ private static final String TEXT = @";
}
อย่างไรก็ตามข้อเสียเปรียบเพียงอย่างเดียวในคลาสก่อนหน้าคือการขึ้นบรรทัดใหม่ซึ่งไม่ได้รับอนุญาตในสเป็กคำถาม (อยู่นอกช่วง 32 ถึง 125) ดังนั้นฉันให้ที่นี่เป็นรุ่น golfed ที่ไม่มีการแบ่งบรรทัด คุณสามารถแก้ไขค่าของS
ตัวแปรเพื่อเปลี่ยนการเปลี่ยนแปลง มี 618 ไบต์:
class Q{static String g(String p,int m){int S=1;String u="";for(char c:p.toCharArray()){if(m==0&&c==87){u+=g(String.valueOf(S),1);}else{u+=(char)((m>0?c:c==64?34:c)+S);}}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T="class Q{static String g(String p,int m){int S=W;String u=@@;for(char c:p.toCharArray()){if(m==0&&c==87){u+=g(String.valueOf(S),1);}else{u+=(char)((m>0?c:c==64?34:c)+S);}}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T=@";}
แน่นอนถ้าเราวางการปรับค่าออฟเซ็ตและ hardcode ค่าของการเปลี่ยนแปลงอย่างละเอียดเราสามารถทำเวอร์ชั่นกอล์ฟที่สมบูรณ์ด้วยขนาด 504 ไบต์:
class Q{static String g(String p,int m){String u="";for(char c:p.toCharArray()){u+=(char)((m>0?c:c==64?34:c)+1);}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T="class Q{static String g(String p,int m){String u=@@;for(char c:p.toCharArray()){u+=(char)((m>0?c:c==64?34:c)+1);}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T=@";}