Golf Dennis เครื่องวัดอุณหภูมิ


74

เดนนิสทำให้ในจำนวนมากของความพยายามของชุมชนนี้รวมทั้งเป็นผู้ดูแล , นักออกแบบภาษาและการให้บริการของTIO

แต่น่าเสียดายที่เขาสี่ปีลูกสาวได้เป็นหวัดเพื่อให้พวกเราทุกคนช่วยให้เขาติดตามการฟื้นตัวของเธอ (มันอาจจะเป็นได้อย่างรวดเร็ว) โดยการให้เขาด้วยเครื่องวัดอุณหภูมิ :

.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'

เนื่องจากเดนนิสไม่มีเวลาในการอ่านรหัสมากนักคุณต้องทำให้สั้นที่สุดเท่าที่จะทำได้


13
รูปร่างเตือนให้ฉันรู้จักการทดสอบการตั้งครรภ์มากขึ้น
Magic Octopus Urn

3
@carusocomputing ว่าเขาใช้ความพยายามอย่างมาก บางทีสิ่งที่เขาทำนั้นง่ายสำหรับเขาจริงๆ เขาเคยเอ่ยถึงมันยากไหม?
Adám

8
อืมหวังว่าเธอจะหายดี ยังไงก็ตามผมให้ 100 รางวัลให้กับผู้ที่จะทำให้การทำงานเครื่องวัดอุณหภูมิ! : P
Matthew Roh


5
@SIGSEGV มันน่ากลัว
Magic Octopus Urn

คำตอบ:


16

เยลลี่ , 90 89 84 83 82 ไบต์

-1 ไบต์ขอบคุณ Erik the Outgolfer (แทนที่10ด้วย)

15r1×€9,5+“£Ȧ“¡^’d⁵Dj€€”.j€⁾- Uz⁶ZUj@€⁾||
“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’ṃ“.| '-”s7ŒBs5j¢Y

ลองออนไลน์!

อย่างไร?

15r1×€9,5+“£Ȧ“¡^’d⁵Dj€€”.j€⁾- Uz⁶ZUj@€⁾|| - Link 1, body: no arguments
15r1                                      - inclusive range(15,1)      = [15,14,...,2,1]
      9,5                                 - pair nine with five        = [9,5]
    ×€                                    - multiply for €ach          = [[135,75],[126,70],...,[18,10],[9,5]]
          “£Ȧ“¡^’                         - list of base 250 numbers   = [941,345]
         +                                - addition                   = [[1076,420],[1067,415],...,[959,355],[950,350]]
                 d⁵                       - div&mod 10                 = [[[107,6],[42,0]],[[106,7],[41,5]],...,[[95,9],[35,5]],[[95,0],[35,0]]]
                   D                      - convert to decimal lists   = [[[[1,0,7],6],[[4,2],0]],[[[1,0,6],7],[[4,1],5]],...,[[[9,5],9],[[3,5],5]],[[[9,5],0],[[3,5],0]]]
                       ”.                 - literal '.'
                    j€€                   - join €ach for €ach         = [[[1,0,7,'.',6],[4,2,'.',0]],[[1,0,6,'.',7],[4,1,'.',5]],...,[[9,5,'.',9],[3,5,'.',5]],[[9,5,'.',0],[3,5,'.',0]]]
                           ⁾- <space      - literal ['-',' ']
                         j€               - join €ach                  = [[1,0,7,'.',6,'-',' ',4,2,'.',0],[1,0,6,'.',7,'-',' ',4,1,'.',5],...,[9,5,'.',9,'-',' ',3,5,'.',5],[9,5,'.',0,'-',' ',3,5,'.',0]]
                              U           - upend (reverse each)       = [[0,'.',2,4,' ','-',6,'.',7,0,1],[5,'.',1,4,' ','-',7,'.',6,0,1],...,[0,'.',5,3,' ','-',9,'.',5,9],[0,'.',5,3,' ','-',0,'.',5,9]]
                               z⁶         - transpose space filler     = [[0,5,...,5,0],['.','.',...,'.','.'],[2,1,...,5,5],[4,4,...,3,3],[' ',' ',...,' ',' '],['-','-',...,'-','-'],[6,7,...,9,0],['.','.',...'.','.'],[7,6,...,5,5],[0,0,...,9,9],[1,1,...,' ',' ']]
                                 Z        - transpose                  = [[0,'.',2,4,' ','-',6,'.',7,0,1],[5,'.',1,4,' ','-',7,'.',6,0,1],...,[5,'.',5,3,' ','-',9,'.',5,9,' '],[0,'.',5,3,' ','-',0,'.',5,9,' ']]
                                  U       - upend                      = [[1,0,7,'.',6,'-',' ',4,2,'.',0],[1,0,6,'.',7,'-',' ',4,1,'.',5],...,[' ',9,5,'.',9,'-',' ',3,5,'.',5],[' ',9,5,'.',0,'-',' ',3,5,'.',0]]
                                      ⁾|| - literal ['|','|']
                                   j@€    - join €ach (reversed @rgs)  = [['|',1,0,7,'.',6,'-',' ',4,2,'.',0,'|'],['|',1,0,6,'.',7,'-',' ',4,1,'.',5,'|'],...,['|',' ',9,5,'.',9,'-',' ',3,5,'.',5,'|'],['|',' ',9,5,'.',0,'-',' ',3,5,'.',0,'|']]
                                          -                  effectively ["|107.6- 42.0|","|106.7- 41.5|","|105.8- 41.0|","|104.9- 40.5|","|104.0- 40.0|","|103.1- 39.5|","|102.2- 39.0|","|101.3- 38.5|","|100.4- 38.0|","| 99.5- 37.5|","| 98.6- 37.0|","| 97.7- 36.5|","| 96.8- 36.0|","| 95.9- 35.5|","| 95.0- 35.0|"]

“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’ṃ“.| '-”s7ŒBs5j¢Y - Main link: no arguments   (using "..." below to represent lists of characters)
“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’                  - base 250 number     =  1694125525350532761476179586378844141697690917975
                        “.| '-”          - literal ['.','|',' ',"'",'-']
                       ṃ                 - base decompression  =  ".------|      |      '-.    .-'   -'---. -    | -    |--    |      '--"
                               s7        - split into 7s       =  [".------","|      ","|      ","'-.    ",".-'   -","'---. -","    | -","    |--","    |  ","    '--"]
                                 ŒB      - bounce (vectorises) =  [".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-.","'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]
                                   s5    - split into 5s       = [[".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-."],["'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]]
                                      ¢  - call last link (1) as a nilad
                                     j   - join                = (using "..." below to represent mixed-type lists from the result of ¢)
                                                               = [".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-.","|107.6- 42.0|","|106.7- 41.5|","|105.8- 41.0|","|104.9- 40.5|","|104.0- 40.0|","|103.1- 39.5|","|102.2- 39.0|","|101.3- 38.5|","|100.4- 38.0|","| 99.5- 37.5|","| 98.6- 37.0|","| 97.7- 36.5|","| 96.8- 36.0|","| 95.9- 35.5|","| 95.0- 35.0|","'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]
                                       Y - join with newlines  = :
                                                                 .-----------.
                                                                 |           |
                                                                 |           |
                                                                 '-.       .-'
                                                                 .-'   -   '-.
                                                                 |107.6- 42.0|
                                                                 |106.7- 41.5|
                                                                 |105.8- 41.0|
                                                                 |104.9- 40.5|
                                                                 |104.0- 40.0|
                                                                 |103.1- 39.5|
                                                                 |102.2- 39.0|
                                                                 |101.3- 38.5|
                                                                 |100.4- 38.0|
                                                                 | 99.5- 37.5|
                                                                 | 98.6- 37.0|
                                                                 | 97.7- 36.5|
                                                                 | 96.8- 36.0|
                                                                 | 95.9- 35.5|
                                                                 | 95.0- 35.0|
                                                                 '---. - .---'
                                                                     | - |
                                                                     |---|
                                                                     |   |
                                                                     '---'

12

แบตช์ 325 ไบต์

@echo off
for %%l in ("|           |" "|           |" "'-.       .-'" ".-'   -   '-.")do echo %%~l
set/ac=42,d=5
for /l %%f in (1076,-9,950)do call:c %%f
for %%l in ("'---. - .---'" "    | - |" "    |---|" "    |   |" "    '---'")do echo %%~l
exit/b
:c
set f= %1
set/ac-=!d,d=5-d
echo ^|%f:~-4,-1%.%f:~-1%- %c%.%d%^|

11

SOGL , 98 97 ไบต์

▼⅜¦┌Υ   υl←│Γφγ⅔3wο╚°⁸ofč√&@⁶‘O’⁴∫ |O:9L/*’a6L/+;-l4=?@o}oƧ- o12/*’ ;-o |o"ģ⌠℮Ζ║Kgš‰¶¶ksθ○╤Ƨ%←└⅟ΟS‘

หมายเหตุ: 3 ช่องว่างใกล้กับการเริ่มต้นโปรแกรมเป็นแท็บ

คำอธิบาย:

...‘O                                                  output the beginning part
     ’⁴∫                                               repeat 15 times, pushing (0-indexed iteration)
         |O                                            output in a new line "|"
           :                                           duplicate the iteration
            9L/                                        push 0.9 (9/10)
               *                                       multiply [0.9 and the iteration]
                ’a6L/+                                 push 107.6 (107+6/10)
                      ;-                               reverse subtract (107.6 - 0.9*iteration)
                        l4=?  }                        if length is 4
                            @o                           output a space
                               o                       output the number
                                Ƨ- o                   output "- "
                                    12/                push 0.5 (1/2)
                                       *               multiply that by iteration
                                        ’              push 42
                                          ;-           reverse subtract (42-0.5*iteration)
                                            o          output that
                                              |o       output "|"
                                                "...‘  push the ending part

เพื่อประหยัดหนึ่งไบต์ฉันทำให้มันดันสตริงสิ้นสุดทุกครั้งในลูปเพื่อที่มันจะได้ผลลัพธ์ออกมาหนึ่งครั้ง


4
เดนนิสต้องการให้คุณเพิ่มวิธีทดลองใช้ออนไลน์เพื่อให้เขาไม่ต้องใช้เวลาห่างจากลูกสาวของเขาในการหาคอมไพเลอร์ SOGL
owlswipe

1
SOGL ไม่เคยหยุดที่จะสร้างความประทับใจให้ฉันด้วยการบีบอัดของมัน
Kritixi Lithos

1
@owlswipe ในขณะที่ SOGL กำลังพัฒนาอย่างหนัก (เช่นในไม่ช้าฉันจะปล่อยรุ่นที่แบ่งโปรแกรมทั้งหมดด้วยฟังก์ชั่นหรือการบีบอัด (ฉันหวังว่ามันจะเป็นครั้งสุดท้าย)) การลองใช้สิ่งต่างๆทางออนไลน์จะไม่สำคัญ
dzaima

2
@dzaima ฉันไม่ทราบว่าคุณสร้าง SOGL เป็นการส่วนตัว! นั่นจึงเย็นสบายอภัยอย่างมากที่ไม่ได้มีคอมไพเลอร์ :))
owlswipe

9

V , 113 ไบต์

i|1076- 420|14ñÙ9l5ñÎeé.$hé.
ç|9/á 
o'³-. - .³-'
| - |
|³-|
|³ |
'³-'4>3kHO.±±-.
|±± |Ùo'-.· .-'
.-'³ -³ '-.

ลองออนไลน์!

hexdump:

00000000: 697c 3130 3736 2d20 3432 307c 1b31 34f1  i|1076- 420|.14.
00000010: d939 186c 3518 f1ce 65e9 2e24 68e9 2e0a  .9.l5...e..$h...
00000020: e77c 392f e120 0a6f 27b3 2d2e 202d 202e  .|9/. .o'.-. - .
00000030: b32d 270a 7c20 2d20 7c0a 7cb3 2d7c 0a7c  .-'.| - |.|.-|.|
00000040: b320 7c0a 27b3 2d27 1b34 3e33 6b48 4f2e  . |.'.-'.4>3kHO.
00000050: b1b1 2d2e 0a7c b1b1 207c 1bd9 6f27 2d2e  ..-..|.. |..o'-.
00000060: b720 2e2d 270a 2e2d 27b3 202d b320 272d  . .-'..-'. -. '-
00000070: 2e                                       .

ตีกอล์ฟระหว่างทาง!


1
เดนนิสไม่เข้าใจว่ารหัสนั้นทำงานอย่างไร แต่ชื่นชมว่ามันใช้งานได้ดีในไม่กี่ไบต์
owlswipe

@ Wowswipe ฉันสงสัยมัน เรากำลังพูดถึงเดนนิสที่นี่; เขารู้ว่าทุกอย่างทำงานอย่างไร ; p
Kevin Cruijssen

@KevinCruijssen อาจจะ :)) ฉันไม่รู้เลยว่ามันทำงานอย่างไร!
owlswipe

@owlswipe ฉันไม่ดังนั้นฉันเห็นด้วยที่จะสามารถใช้คำอธิบาย :)
Kevin Cruijssen

7

PHP, 187 ไบต์

การจัดเก็บช่องว่าง 4 รายการในตัวแปรช่วยประหยัด 7 ไบต์

<?=".-----------.
|",$f="    ","$f   |
|$f$f   |
'-.$f   .-'
.-'   -   '-.
";for($n=85;--$n>69;)printf("|%5.1f-%5.1f|
",$n*.9+32,$n/2);echo"'---. - .---'
$f| - |
$f|---|
$f|   |
$f'---'";

ลองออนไลน์!

PHP, 188 ไบต์

<?$s=".000--.
|1223|1223'-.12.-'
.-'1-1'-.
4";for($n=85;--$n>69;)$t.=sprintf("|%5.1f-%5.1f|
",$n*.9+32,$n/2);$s.="'0. - .0'
2| - 32|032|132'0'";echo strtr($s,["---","   ","    ","|
",$t]);

ลองออนไลน์!

PHP, 220 ไบต์

<?=gzinflate(base64_decode("XZBJCkUhDAT3niI7VzbOw908/O/EwIMviCnLQBukbyFc+db9o5jgNVIM3KwSd9S+khdmkl6Rr9LEIhUMo4Ft9FzHIWV3HdnouYaSpB13FdXouYJG2u4yupE6OewgLXNytmYhPbc0S5vupmYhPTc0SxvuhmYhZf0t58H/gWcMNgHSfRXvvLLJiE2B734="));

ลองออนไลน์!

PHP, 247 ไบต์

<?=bzdecompress(base64_decode("QlpoNDFBWSZTWREU1+kAAEnYgEiQQIN/4AAEMAC6bDTRA1NBtqglJ7VIA0AJNSEAAXhknxmxdEkbQhoFWMYrEL1cASWoMYgwHEpJJJKZmZ638CwPCeQHBCLKs3qj1vvz37lF4trWtWviLC4wJoHJywEMA8GmAh2WwUSEom/JeNAioiokhJa9V5bL02pVVVXw+EiwPxdyRThQkBEU1+k="));

ลองออนไลน์!



4

/// , 261 ไบต์

/`/\/\///i/|
|`~/---`_/   `+/- `f/.5`z/.0`(/i10`)/i 9`!/|
    |/
.--~~~.
|  ___i  ___|
'-. __.-'
.-'_-_'-.
|107.6+42z(6.7+41f(5.8+41z(4.9+40f(4.0+40z(3.1+39f(2.2+39z(1.3+38f(0.4+38z)9f+37f)8.6+37z)7.7+36f)6.8+36z)5.9+35f)5.0+35z|
'~. - .~'
    | - !~!_|
    '~'

ลองออนไลน์!

ทำงานโดยใช้สิ่งที่เกิดขึ้นทั่วไปเช่น---แทน ไม่มีอะไรแฟนซี



3

Mathematica 247 Bytes

อืม ... เหมือนกับ PHP

Uncompress@"1:eJxtkLsNAyEQRM+d4OgiRssf2rBTR27ADdCG+/WAODYxEkL7eKDR3N+fx/N7Ow5YXXiJ893o6n/BabFG2HMAHhws97n+cFKQrYke0hfIKAQO6QIJdYJtRDQCUSNCJthGgLMmNDU8/ATbcAgEVQ1BnGAZpvE1QbkM0+pISrCNMpKGrEYeSQm2kUbSkNRIIymBrILYJfsY3c6CZnUEfQ+80eEq1swG+eYH1XhZzA=="

3

JavaScript (ES6), 198 ไบต์

การจัดรูปแบบตัวเลขเป็นค่าใช้จ่ายเล็กน้อยใน JS และดูเหมือนว่าฉันจะติดอยู่ที่จำนวนไบต์นี้ คุณชนะในครั้งนี้ PHP! ;-)

let f =

_=>`.222--.
|56|
|56|
'-.7.-'
.-'3-3'-.
000000000111111'2. - .2'
4| - |
4|2|
4|3|
4'2'`.replace(/\d/g,n=>['|'+(s=F(32+.9*i)+`- ${F(i--/2)}|
`),'| '+s,'---'][n]||' '.repeat(n),i=94,F=v=>v.toFixed(1))

console.log(f())


1
ฉันหวังว่าคุณจะไม่โกรธที่ฉันสามารถประหยัดได้ 8 ไบต์ขึ้นไป ขอบคุณสำหรับคำเตือนให้ลองใช้วิธีที่สองกับstrtr
JörgHülsermann

1
@ JörgHülsermannไม่ต้องกังวล! :) ทำได้ดี!
Arnauld

3

Japt , 106 ไบต์

[".{6î-}
|
'-.
.-'   -"y y 9"'
-
-
-
.|||'
  - -
--- -"y]·mê0R d9FÆ"|{S+(#k6-9*X)t4n)i.J}- {½*Xn84)x1}|"÷

ทดสอบออนไลน์!

ต้องขอขอบคุณ@obarakonที่ได้รับรหัสการทำงานตั้งแต่แรกและได้เล่นกอล์ฟสักหน่อย

คำอธิบาย

ก่อนอื่นเรามีข้อมูล :

[                                     // Create an array of:
  ".{6î-}\n|\n'-.\n.-'   -"           //   This string ({6î-} inserts 6 hyphens),
  y y                                 //   transposed twice to pad it with spaces;
  9                                   //   the number 9;
  "'\n-\n-\n-\n.|||'\n  - -\n--- -"   //   and this string,
  y                                   //   transposed once.
]·                                    // Join the array with newlines.

สิ่งนี้ทำให้เรา

.------
|      
'-.    
.-'   -
9
'---. -
    | -
    |--
    |  
    '--

9นั่นคือครึ่งทางด้านซ้ายของเครื่องวัดอุณหภูมิที่มีรูปสี่เหลี่ยมผืนผ้าหลักแทนที่ด้วย 9โปรดทราบว่าทุกบรรทัดจะมีเบาะที่มีช่องว่างยกเว้นหนึ่งที่มี

m  R   // Map each line with the function
 ê     //   ê, or "bounce"; mirrors the string about its last character ("abc" -> "abcba").
       // (The 0 is just filler because `m` expects the `R` to be the third parameter)

ผลสุทธิคือมันสะท้อนครึ่งซ้ายของเทอร์โมมิเตอร์ไปทางขวา:

.-----------.
|           |
'-.       .-'
.-'   -   '-.
9
'---. - .---'
    | - |    
    |---|    
    |   |    
    '---'    

ตอนนี้เรามีส่วนศิลปะ ASCII แล้วสิ่งที่เราต้องทำก็คือใส่ในสี่เหลี่ยมผืนผ้าหลัก:

d9FÆ  "|{S+(#k 6-9*X)t4n)i.J}- {½ *Xn84)x1}|"Ã ·
d9FoX{"|{S+(1076-9*X)t4n)i.J}- {.5*Xn84)x1}|"} qR

  FoX{  ...  }        // Create the range [0...15), and map each item X to
"|{ ... }- { ... }"   //   this string, with the two blanks filled in with...

S+(1076-9*X)t4n)i.J
   1076-9*X           //   Calculate 1076 - 9*X. This gives us °F * 10.
S+(        )t4n)      //   Prepend a space and take only the last 4 chars.
                      //   This pads the entries under 100°F to the correct length.
                i.J   //   Insert a decimal point before the last char.
                      //   This turns e.g. "1076" to "107.6".

.5*Xn84)x1
   Xn84               //   Take 84 - X.
.5*    )              //   Multiply it by 0.5. This gives us °C.
        x1            //   Convert to a string with exactly 1 decimal point.

                qR    // Join the resulting array with newlines.
d9                    // In the thermometer art, replace "9" with the resulting string.

และนั่นจะสรุปเซสชันการสร้าง ASCII ของเรา ปรับในสัปดาห์หน้าเพื่อดูรายการศิลปะ ASCII แบบสั้นเพิ่มเติมที่เขียนใน Japt!


2

ถ่าน , 62 ไบต์

←⁶↓.↓²'-.¶.-'¶↓¹⁵'³↓.↓³'²M²↖¹↑×¹⁹-‖OM⁵¦¹⁶←E¹⁵⮌⁺⁺⁺⁹⁵×·⁹ι- ⁺³⁵⊘ι

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

←⁶↓.↓²'-.¶.-'¶↓¹⁵'³↓.↓³'²M²↖¹↑×¹⁹-

พิมพ์ครึ่งซ้ายของเทอร์โมมิเตอร์

‖O

สะท้อนให้เห็นถึงการทำให้ร่างกายสมบูรณ์

M⁵¦¹⁶←E¹⁵⮌⁺⁺⁺⁹⁵×·⁹ι- ⁺³⁵⊘ι

คำนวณตาชั่งแล้วพิมพ์กลับด้านและคว่ำด้านขวาซึ่งจัดชิดขวา ในขณะที่เขียน, ผู้ประกอบการ concatenation ถ่านของแปลงลอยสตริงใช้ ธ ในตัวstrซึ่งผนวก.0ลอยที่เป็นตัวแทนของจำนวนเต็มมิฉะนั้นผมจะต้องหันไปใช้การจัดรูปแบบเป็นของCastผู้ประกอบการโดยเฉพาะหลีกเลี่ยงพฤติกรรมที่


1

เป็นกลุ่ม, 222 การกดแป้น

:.!seq 42 -0.5 35
:%!awk '{printf("|\%5.1f- \%.1f|\n",1.8*$1+32,$1)}'
Go'===. - .==='<ESC>yy
:s/=/-/g
p
:.!tr "'.=" ' | '
:s/ *$/
yyP
:s/-/ /
ddpPlR---<ESC>yyGp
:s/|/'/g
ggO..<ESC>11i-<ESC>yyP
:.!tr .- '| '
yypo'-.<ESC>7a <ESC>a.-'<ENTER>.-'   -   '-.<ESC>

1

C, 234 ไบต์

main(i){float f=42;puts(".-----------.");for(;i--;)printf("|%*s|\n",11,"");puts("'-.       .-'\n.-'   -   '-.");for(;f>34.5;f-=.5)printf("|%5.1f- %.1f|\n",32+f*1.8,f);puts("'---. - .---'\n    | - |\n    |---|\n    |   |\n    '---'");}

ลองออนไลน์

เอาท์พุท:

.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'

0

C, 460 265 ไบต์

#define P(x) puts(x);
#define Z "|           |"
T(){float i=7,j=12.6;P(".-----------.")P(Z)P(Z)P("'-.       .-'")P(".-'   -   '-.")while(i>=0)printf("|%5.1f- %.1f|\n",95+j,35+i),i-=.5,j-=.9;P("'---. - .---'")P("    | - |")P("    |---|")P("    |   |")P("    '---'")}

แสดงผล สด

.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'

1
มันไม่ได้ดูสวยงามมากนัก คุณไม่สามารถรวมสองบรรทัดที่เหมือนกันได้หรือไม่ นอกจากนี้คุณยังมีพื้นที่ชั้นนำในทุกบรรทัด
อดัม

@ Adámเล่นกอล์ฟแล้ว
Khaled.K

1
บางทีคุณสามารถกำหนดช่องว่างสี่ช่องและนำมาใช้ซ้ำได้หรือไม่ สำหรับวงกับคณิตศาสตร์สำหรับตัวเลขทั้งหมดหรือไม่
อดัม

@ Adámขอบคุณ, golfed เพิ่มเติมตอนนี้
Khaled.K

คุณไม่มีอุณหภูมิต่ำสุด: 95.0- 35.0
2017

0

ไป 238 ไบต์

ว้าวสายนั้นทนทานต่อการเล่นกอล์ฟ ...

package main
import."fmt"
func main(){p:=Printf
s,i:=`|           |
`,42.
p(`.-----------.
`+s+s+`'-.       .-'
.-'   -   '-.
`)
for;i>=35;i-=.5{
p(`|%5.1f- %.1f|
`,i*9/5+32,i)}
p(`'---. - .---'
    | - |
    |---|
    |   |
    '---'`)}

ลองถ่ายทอดสดที่นี่: https://play.golang.org/p/tPKYxII7NC


0

C, 222 ไบต์

f(){puts(".-----------.\n|           |\n|           |\n'-.       .-'\n.-'   -   '-.");for(float n=108.5,m=42.5;m>35;printf("|%5.1f- %.1f|\n",n-=.9,m-=.5));puts("'---. - .---'\n    | - |\n    |---|\n    |   |\n    '---'");}

แม้จะพยายามทำให้สตริงสั้นลง แต่การเข้ารหัสในรูปแบบธรรมดาเป็นตัวเลือกที่ดีที่สุด ฉันสงสัยว่าการปรับปรุงใด ๆ (สำคัญ) เป็นไปได้ใน C

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.