เคล็ดลับสำหรับการเล่นกอล์ฟใน Applescript


13

คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Applescript ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะ Applescript (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ)


คำถามนี้กว้างเกินไป มันอาจจะไม่สามารถตอบได้ด้วยคำตอบที่สมบูรณ์เขียนได้ดี (และคำถามก็ห้ามอย่างชัดเจน)
Rainbolt

1
ยังคงเป็นเพียงคำถามตลก :)
MadTux

5
ตั้งค่าสถานะสำหรับการแปลงเป็น CW (ตามแบบแผนของเราสำหรับคำถาม 'เคล็ดลับสำหรับการเล่นกอล์ฟใน x')
Geobits

@ MadTux Yep, Applescript ไม่ได้เป็นตัวเลือกอันดับแรกในภาษากอล์ฟ ;-) แต่มีบางโอกาสโดยเฉพาะอย่างยิ่งในหมวดหมู่แหล่ง จำกัดซึ่งเป็นประโยชน์เล็กน้อย
Digital Trauma

4
@Rainbolt สิ่งนี้แตกต่างจากธรรมชาติกับเคล็ดลับอื่น ๆสำหรับการเล่นกอล์ฟในคำถามxอย่างไร
บาดเจ็บทางระบบดิจิตอล

คำตอบ:


6

ofผู้ประกอบการจะใช้ในการได้รับทรัพย์สินจากวัตถุ:

log words of "Hello World"

แต่ในหลายกรณีคุณสามารถใช้'sเป็นทางลัดเพื่อบันทึก 1 ตัวอักษร:

log "Hello World"'s words

6
ดูเหมือนว่าไร้สาระ แต่ก็ค่อนข้างดีที่ Applescript แยกวิเคราะห์ apostrophes ว่าเป็นเจ้าของ ฉันสามารถจินตนาการได้ว่าหนึ่งในนักออกแบบภาษาขว้างความคิดนั้นไปยังกลุ่ม
Geobits

9
@Geobits คำคุณศัพท์เหล่านี้เหมาะสำหรับการอธิบาย Applescript โดยทั่วไป ฉันยังไม่ได้ตัดสินใจว่า Applescript น่ากลัวหรือไร้สาระ ;-)
Digital Trauma

4

Applescript Editor เป็น IDE ตัวเล็กที่มีประโยชน์ซึ่งเน้นไวยากรณ์และทำให้โค้ดของคุณสวยงาม อย่างไรก็ตามสำหรับวัตถุประสงค์ของการเล่นกอล์ฟมันเป็นการต่อต้านเนื่องจากเป็นการเพิ่มการเยื้องและคำหลักที่ฟุ่มเฟือยเช่นหลังจากendคำสั่ง ตัวอย่างเช่น:

repeat with w in "Hello World"'s words
log w
end

กลายเป็นสิ่งต่อไปนี้เมื่อวางลงใน Applescript Editor และรวบรวม / รัน:

repeat with w in "Hello World"'s words
    log w
end repeat

เห็นได้ชัดว่าข้อมูลโค้ดแรกดีกว่าสำหรับวัตถุประสงค์ของการเล่นกอล์ฟ


IMO นี้สามารถเห็นได้ว่าเป็นเคล็ดลับทั่วไปไม่ใช่เฉพาะสำหรับ AS IDEs ที่ทันสมัยจำนวนมากทำเช่นนี้ถ้าคุณปล่อยให้พวกเขา
Geobits

2
@Geobits เห็นด้วย แม้ว่าฉันคิดว่าการเพิ่มคำหลักที่เฉพาะเจาะจงหลังจากendนั้นค่อนข้างเฉพาะเจาะจงสำหรับ Applescript
Digital Trauma

ใช่นั่นเป็นเพียงงงงันกับฉัน เยื้อง / สิ่งที่ระยะห่างเป็นเรื่องธรรมดามาก แต่พร้อมกับวงเล็บที่ไม่จำเป็น ฯลฯ
Geobits

@Geobits Applescript นั้นเกี่ยวกับความสามารถในการอ่าน ฉันเดาว่าความคิดคือการทำให้ชัดเจนซึ่งendเป็นของคำสั่งบล็อกเริ่มต้นเมื่อคุณมีบล็อกซ้อนกันหลายแห่ง
Digital Trauma

4

tell บล็อกเป็นเรื่องธรรมดาใน Applescript:

tell application "TextEdit"
    activate
end tell

อย่างไรก็ตามเพื่อประหยัดพื้นที่ต่อไปนี้จะเทียบเท่าเมื่อด้านในของtellบล็อกเป็นเพียงหนึ่งบรรทัด:

tell application "TextEdit" to activate

3
tell app "TextEdit" to activateที่ตัวเองเป็น
wchargin

@WChargin ใช่ เพิ่มเป็นคำตอบอื่นหากคุณต้องการ
Digital Trauma

4

คำบางคำมีความหมายสั้นกว่า ตัวอย่างเช่นapplicationสามารถเขียนเป็นapp* และstringสามารถเขียนเป็นtextสามารถเขียนเป็น

นอกจากนี้ยังevery <noun>สามารถเขียนเป็นพหูพจน์เช่นเดียวกับในcharacters of "hello world"(หรือ"foo"'s characters )

* แม้ว่าคอมไพเลอร์ของ Script Editor จะเปลี่ยนกลับไป


3

ใบเสนอราคาการดำเนินการที่จำเป็น

สำหรับการดำเนินการใด ๆ ที่ต้องมีการเสนอราคาเพื่อทำบางสิ่งเช่น

เข้าสู่ระบบ "Hello World!"

คุณสามารถร่น

เข้าสู่ระบบ "Hello World!"

การทำซ้ำ

ในลูปซ้ำหนึ่งสามารถลบคำว่า "ครั้ง" ทั้งหมด

ทำซ้ำ x ครั้ง
ปลาย

กับ

ทำซ้ำ x
ปลาย

<= และ> =

เมื่อใดก็ตามที่มีการเรียกตัวดำเนินการเหล่านี้คุณสามารถแทนที่ด้วยและตามลำดับ แม้ว่าสิ่งนี้อาจไม่ลดจำนวนไบต์ (ยกเว้นว่ามีการใช้การประชุมแบบนับไบต์แบบพิเศษซึ่งฉันแนะนำ) แต่จะลดจำนวนตัวอักษรลง

โลภจาก STDIN

คุณสามารถคว้าจาก STDIN ด้วยตัวละครต่อไปนี้:

ในการทำงาน argv
ปลาย

ออกจากอย่างรวดเร็ว

หากคุณต้องการออกจากรหัสอย่างรวดเร็ว (ไม่ว่าด้วยเหตุผลใดก็ตามเช่นการป้องกันifs มากเกินไป) ...

เลิก

ฮ่าฮ่าว้าวเจ้าต้องทำอะไรซักอย่างเพื่อหาสิ่งนี้;)
สลายตัวของเบต้า

ฉันจะใช้มันมาก
Addison Crump

คำถามหรือคำแนะนำ?
สลายตัวเบต้า

เคล็ดลับ และ AppleScript โดยทั่วไป
Addison Crump

โอ้ฉันกำลังพูดถึงคำถาม :)
Beta Decay

2

Applescript อนุญาตให้แทรกคำหลักพิเศษเพื่อช่วยให้อ่านง่าย:

log the words of "Hello World"

แต่ที่theนี่จะฟุ่มเฟือยอย่างสมบูรณ์และอาจถูกละเว้นสำหรับการบันทึกอักขระ 4 ตัว:

log words of "Hello World"

2
คุณสามารถมีสายพันธุ์แม้สั้น: log"Hello World"'s wordsเพราะคุณ 1) ไม่จำเป็นต้องมีช่องว่างระหว่างการแสดงออกใด ๆ และรายการที่ยกมาและ 2) เพราะสามารถนำมาใช้แทน's of
Addison Crump

@VTCAKAVSMoACE ใช่'sอยู่ที่อยู่ในคำตอบนี้codegolf.stackexchange.com/a/37643/11259 ดีที่จะรู้เกี่ยวกับlog"ว่า
Digital Trauma

2

การย่อให้สั้นลงของตัวยึด

คล้ายกับโพสต์เกี่ยวกับใบเสนอราคาฉันรู้ในภายหลังว่าคุณสามารถย่อสิ่งต่าง ๆ เช่นนี้ได้:

ถ้า "a" = อักขระ 1 จาก (x เป็นสตริง) ให้ส่งคืน {true, true}

ถึง

ถ้า "a" = อักขระ 1 จาก (x เป็นสตริง) ให้ส่งคืน {true, true}

มันจะเว้นวรรควงเล็บให้คุณด้วย ในตัวอย่างนี้ฉันบันทึก 5 ไบต์


2

พิจารณา ...

ในคำถามที่ต้องมีการพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อาจเป็นเรื่องยากที่จะจัดการกับกรณีและปัญหา

จนถึงตอนนี้:

พิจารณากรณี
    (สิ่งที่ต้องทำกับสิ่งที่เล็กและใหญ่)
สิ้นสุดการพิจารณา

ฉันไม่รู้คำหลักนี้จริง ๆ จนกระทั่งฉันต้องการมันจริงๆ การใช้เคล็ดลับอื่น ๆ ในหน้าเคล็ดลับนี้เราสามารถลดสิ่งต่อไปนี้เป็น:

พิจารณากรณี
(สิ่งที่ต้องทำกับสิ่งที่เล็กและใหญ่)
ปลาย

มันต้องมีคำสั่งเต็มรูปแบบเท่าที่ฉันรู้ (ฉันลองหลายอย่างแล้ว) ดูหน้านี้สำหรับรายละเอียดเพิ่มเติม


1

ในบางกรณีที่พิเศษ«วงเล็บมุมคู่»หรือ«เครื่องหมายบั้งคู่»อาจสั้นกว่าชื่อภาษาอังกฤษของคำสั่งพารามิเตอร์หรือค่าคงที่

รูปแบบที่เข้ารหัสด้วยเครื่องหมายบั้งจะทำให้ AppleScript ย่อขนาดเพื่อลบคลิปบอร์ดจาก 20 ถึง 16 ตัวอักษร:

set the clipboard to  -- 20
«event JonspClp»      -- 16

มันจะลดลง 2 ตัวอักษรเมื่อดึงข้อความจากกล่องโต้ตอบ (ตามที่เกิดขึ้นในเครื่องเมตรอนอมและวัน Pi ):

(display dialog""default answer"")'s text returned  -- 46
(display dialog""default answer"")'s«class ttxt»    -- 44

(คุณอาจต้องการหลีกเลี่ยงการโต้ตอบและใช้อาร์กิวเมนต์บรรทัดคำสั่งของosascript (1)หากคุณมีอย่างน้อย Mac OS X 10.4)

ด้วยคีย์บอร์ดของสหรัฐอเมริกา«คือตัวเลือก - \ และ»คือตัวเลือก - กะ - \ คำสั่ง«event abcdefgh»มี 16 ตัวอักษร พารามิเตอร์หรือค่าคงที่«class abcd»มี 12 อักขระ

รูปแบบที่เข้ารหัสวีอาจจะนานเกินไปสำหรับการเล่นกอล์ฟ นี่คือตัวอย่างที่ไม่มีเครื่องหมายวงเล็บสองมุม:

set x to open for access"output"write permission 1
write"One line of text
"to x
close access x

และเช่นเดียวกันกับพวกเขา:

set x to«event rdwropen»"output"given«class perm»:1
«event rdwrwrit»"One line of text
"given«class refn»:x
«event rdwrclos»x

การเปลี่ยน_open for access(16) เป็น«event rdwropen»(16) นั้นเป็นกลาง การเปลี่ยนwrite permission_(17) ถึงgiven«class perm»:(18) ต้นทุน 1 ตัวอักษร วงเล็บมุมคู่อื่น ๆ มีราคาแพงกว่า

ในการใช้วงเล็บเหลี่ยมแบบสองมุมคุณจำเป็นต้องรู้รหัส 4-magic หรือ 8-magic ฉันพบรหัสบางส่วนโดยบันทึกไฟล์สคริปต์จากตัวแก้ไขสคริปต์จากนั้นเปิดในตัวแก้ไขฐานสิบหก ฉันวิ่งในขั้วและใช้emacs M-x hexl-find-fileผมพบและแก้ไขรหัสบางอย่างเช่นJonspClpเข้าJanspClpและออกเป็นttxt atxtฉันบันทึกไฟล์และเปิดใหม่ใน Script Editor «event JanspClp»และ«class atxt»ปรากฏในสคริปต์

เอกสารชื่อAppleScript Terminology และการอ้างอิงรหัสเหตุการณ์ของ Appleแสดงรายการรหัสบางอย่าง ฉันพบสำเนาของมันที่https://applescriptlibrary.wordpress.com/

ตัวแก้ไขสคริปต์จะแปลวงเล็บเหลี่ยมเป็นภาษาอังกฤษก่อนบันทึกสคริปต์ของคุณ สำหรับการแสดงเครื่องหมายบั้งคุณต้องเขียนสคริปต์ของคุณในโปรแกรมแก้ไขข้อความอื่นเช่น TextEdit บันทึกสคริปต์เป็นไฟล์ข้อความธรรมดาในการเข้ารหัส Mac OS Roman (หรือ MacRoman) Mac OS X ต้องการให้คุณตั้งชื่อไฟล์ด้วยส่วนต่อท้าย. applescript

หากคุณนับจำนวนไบต์ MacRoman จะมี 1 ไบต์ต่อตัวอักษรดังนั้น«หรือ»แต่ละตัวจะนับเป็น 1 ไบต์

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