คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

27
คุณต้องการรหัสมนุษย์หิมะหรือไม่
นี่คือมนุษย์หิมะASCII ศิลปะที่เรียบง่าย: _===_ (.,.) ( : ) ( : ) มาทำให้เขามีเพื่อนบ้าง นี่จะเป็นรูปแบบทั่วไปสำหรับมนุษย์หิมะศิลปะ ASCII ของเรา: HHHHH HHHHH X(LNR)Y X(TTT)Y (BBB) ช่องว่างชั้นนำและวงเล็บจะเหมือนกันเสมอสำหรับมนุษย์หิมะทุกคน ตัวอักษรที่แตกต่างกันแสดงถึงส่วนต่าง ๆ ของรูปแบบที่สามารถเปลี่ยนแปลงเป็นรายบุคคล แต่ละส่วนมีค่าที่ตั้งล่วงหน้าสี่ตัวสำหรับอักขระ ASCII ที่สามารถเติมเต็มได้ โดยการผสมและจับคู่ค่าที่ตั้งล่วงหน้าเหล่านี้สำหรับแปดส่วนเราสามารถสร้างมนุษย์หิมะที่หลากหลาย ค่าที่ตั้งไว้ทั้งหมด (โปรดสังเกตว่าช่องว่างถูกวางไว้บนบรรทัดอื่นที่ว่างดังนั้นรูปร่างของส่วนจะถูกต้องเสมอ) H สำหรับหมวก หมวกฟาง _===_ หมวกเม็กซิกัน ___ ..... เฟซ _ /_\ หมวกรัสเซีย ___ (_*_) N สำหรับจมูก / ปาก ปกติ , จุด . …

30
คณิตศาสตร์คือข้อเท็จจริง การเขียนโปรแกรมไม่ได้
ในคณิตศาสตร์เครื่องหมายอัศเจรีย์!มักหมายถึงแฟกทอเรียลและเกิดขึ้นหลังจากการโต้แย้ง ในการเขียนโปรแกรมเครื่องหมายอัศเจรีย์!มักหมายถึงการปฏิเสธและเกิดขึ้นก่อนการโต้แย้ง สำหรับความท้าทายนี้เราจะใช้การดำเนินการเหล่านี้กับศูนย์หนึ่งเท่านั้น Factorial 0! = 1 1! = 1 Negation !0 = 1 !1 = 0 ใช้สตริงของศูนย์หรือมากกว่า!ตามด้วย0หรือ1ตามด้วยศูนย์หรือมากกว่า!( /!*[01]!*/) ยกตัวอย่างเช่นการป้อนข้อมูลที่อาจจะ!!!0!!!!หรือ!!!1หรือ!0!!หรือหรือ0!1 สิ่งที่!อยู่ก่อนหน้า0หรือ1ถูกปฏิเสธและสิ่ง!ที่ตามมาคือแฟคทอเรียล แฟคทอเรียลมีความสำคัญสูงกว่าการปฏิเสธดังนั้นแฟคทอเรียลจะถูกใช้ก่อนเสมอ ยกตัวอย่างเช่น!!!0!!!!อย่างแท้จริงหมายถึงหรือยังดีกว่า!!!(0!!!!)!(!(!((((0!)!)!)!))) เอาต์พุตแอพพลิเคชั่นผลลัพธ์ของแฟคทอเรียลและการปฏิเสธทั้งหมด การส่งออกจะเป็นหรือ01 กรณีทดสอบ 0 -> 0 1 -> 1 0! -> 1 1! -> 1 !0 -> 1 !1 -> 0 !0! -> 0 !1! -> 0 …

30
เคล็ดลับหรือรักษาพูดได้หลายภาษา
ตั้งแต่วันฮัลโลวีนกำลังจะมาถึงฉันคิดว่าฉันอาจเริ่มต้นการแข่งขันกอล์ฟสนุก ๆ ความท้าทายค่อนข้างง่าย คุณต้องเขียนโปรแกรมที่ผลอย่างใดอย่างหนึ่งหรือtrick "บิด?" คุณอาจถาม ให้ฉันอธิบาย:treat โปรแกรมของคุณต้องทำสิ่งต่อไปนี้: สามารถคอมไพล์ / รันได้ในสองภาษาที่ต่างกัน ภาษาเดียวกันที่ต่างกันจะไม่นับ เมื่อคุณเรียกใช้โปรแกรมในภาษาหนึ่งที่ควรเอาท์พุทtrickและอื่น ๆ treatควรเอาท์พุท กรณีที่ไม่เกี่ยวข้องและ padding สตริงที่มีตัวอักษรช่องว่างได้รับอนุญาต (ดูตัวอย่าง) นี่คือรหัสกอล์ฟดังนั้นการแก้ปัญหาด้วยจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ คำอธิบายเล็กน้อย: เอาท์พุทที่ถูกต้อง (สำหรับคำที่ไม่ใช้สำหรับรันโค้ดในสองภาษารวมทั้งเพิ่มเครื่องหมายคำพูดเพื่อส่งสัญญาณการเริ่มต้นหรือจุดสิ้นสุดของเอาต์พุตอย่ารวมไว้ในโซลูชันของคุณ!): "trick" "Treat" " TReAt" " tRICk " เอาต์พุตไม่ถูกต้อง : "tri ck" "tr eat" "trck" ฉันสนใจที่จะเห็นสิ่งที่คุณสามารถเกิดขึ้นกับ! มีความสุขในการเล่นกอล์ฟ! ฉันต้องการที่จะทราบว่านี่เป็นความท้าทายครั้งแรกของฉันดังนั้นหากคุณมีข้อเสนอแนะเกี่ยวกับคำถามนี้โปรดทิ้งไว้ในรูปแบบของความคิดเห็น ลีดเดอร์ นี่คือ Stack Snippet เพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้: # Language …

30
อย่า google“ google”
เราทุกคนรู้ว่าถ้าคุณ google คำว่า "google" มันจะทำลายอินเทอร์เน็ต งานของคุณคือการสร้างฟังก์ชั่นที่ยอมรับหนึ่งสตริงและส่งคืนความยาวในอักขระ Unicode ที่เป็นไปได้น้อยที่สุด อย่างไรก็ตามหากสตริงที่กำหนดคือgoogle(ตัวพิมพ์เล็ก) ก็จะทำให้เกิดข้อผิดพลาด ตัวอย่างเช่นg('bing')จะกลับมา4แต่g('google')จะทำให้เกิดข้อผิดพลาด โปรดระบุตัวอย่างการใช้งานและข้อผิดพลาดหากเป็นไปได้
158 code-golf  string 

16
รูปแบบการปัดของฉันถูกกฎหมายหรือไม่
สมาร์ทโฟน Android ส่วนใหญ่อนุญาตให้ผู้ใช้ใช้รูปแบบการรูดเพื่อเปิดโทรศัพท์: รูปแบบบางอย่างถูกต้องตามกฎหมายและอื่น ๆ เป็นไปไม่ได้ กำหนดรูปแบบการป้อนข้อมูลด้วยการส่งคืนความจริงหรือเท็จระบุว่ารูปแบบการป้อนข้อมูลที่กำหนดนั้นถูกกฎหมายหรือไม่ อินพุต ตารางมีป้ายกำกับแถวที่ชาญฉลาด 1 ถึง 9: 1 2 3 4 5 6 7 8 9 ข้อมูลที่ป้อนเป็นตัวเลขประกอบด้วยโหนดที่เข้าชมตั้งแต่แรกถึงครั้งสุดท้าย ตัวอย่างเช่นรูปแบบการรูดด้านบนคือ 12357 อินพุตอาจเป็นตัวเลขทศนิยมสตริงหรือรายการตัวเลข มันจะไม่ประกอบด้วย 0 เพราะไม่มีโหนด 0 การแก้ไข: อนุญาตให้ทำดัชนี 0-8 เนื่องจากมีดัชนีภาษาจำนวนมากจาก 0 หากคุณใช้ 0-8 คุณจำเป็นต้องระบุเช่นนี้ในตอนต้นของคำตอบและปรับกรณีทดสอบตามนั้น กฎระเบียบ ทุกโหนดเริ่มต้นโดยไม่ได้เข้าชมในตอนแรกและสามารถเข้าชมได้เพียงครั้งเดียว รูปแบบใดก็ตามที่เข้าชมโหนดมากกว่าหนึ่งครั้งนั้นเป็นเท็จ รูปแบบความจริงต้องมีการปัดอย่างน้อยหนึ่งครั้งดังนั้นอย่างน้อย 2 โหนด เป็นไปไม่ได้ที่จะข้ามโหนดที่ไม่ได้รับการติดต่อโดยตรงกับโหนดอื่น ตัวอย่างเช่น 13 เป็นเท็จเพราะ 2 ไม่ได้เข้าชมและเข้าแถวโดยตรง เป็นไปได้ที่จะข้ามโหนดที่เยี่ยมชมเท่านั้น …

4
Hyperprogramming: N + N, N × N, N ^ N ทั้งหมดในที่เดียว
เขียนโปรแกรมที่ใช้หมายเลข N ตั้งแต่ 1 ถึง 9 ในพื้นเมืองในรูปแบบโปรแกรมของคุณควรเอาท์พุท N + NEG การส่งออก2ถ้า N คือ1, 4ถ้า N คือ2, 6ถ้า N คือ3และอื่น ๆ เมื่อตัวละครในโปรแกรมของคุณทุกคนจะทำซ้ำในสถานที่แล้วมันควรจะเป็นโปรแกรมที่ใช้ใน N (ยังคง 1-9) และเอาท์พุทเอาท์พุท N × NEG 1ถ้า N คือ1, 4ถ้า N คือ2, 9ถ้า N คือ3และอื่น ๆ เมื่อตัวละครในโปรแกรมของคุณทุกคนจะ triplicated ในสถานที่แล้วมันควรจะเป็นโปรแกรมที่ใช้ใน N (ยังคง 1-9) และผลการส่งออก N ^ NEG 1ถ้า N …

30
ใช้งานเครื่องจริง
เครื่องมือวัดความจริง (เครดิตไปหาผู้ชายคนนี้เพื่อหามัน) เป็นโปรแกรมที่ง่ายมากที่ออกแบบมาเพื่อแสดงให้เห็นถึง I / O และควบคุมการไหลของภาษา นี่คือสิ่งที่เครื่องจักรความจริงทำ: รับค่าตัวเลข (ทั้ง 0 หรือ 1) จาก STDIN หากหมายเลขนั้นคือ 0 ให้พิมพ์ 0 และยุติ หากหมายเลขนั้นคือ 1 ให้พิมพ์ 1 ตลอดไป ท้าทาย เขียนเครื่องจริงตามที่อธิบายไว้ข้างต้นในภาษาที่คุณเลือก เครื่องความจริงจะต้องเป็นโปรแกรมเต็มรูปแบบที่ปฏิบัติตามกฎเหล่านี้: ใช้อินพุตจาก STDIN หรือทางเลือกที่ยอมรับได้ หากภาษาของคุณไม่สามารถรับอินพุตจาก STDIN อาจใช้อินพุตจากตัวแปร hardcoded หรือเทียบเท่าที่เหมาะสมในโปรแกรม จะต้องส่งออกไปยัง STDOUT หรือทางเลือกที่ยอมรับได้ หากภาษาของคุณไม่สามารถแสดงผลอักขระได้0หรือ1สามารถยอมรับไบต์ / unary I / O ได้ เมื่ออินพุต1นั้นจะต้องพิมพ์อย่างต่อเนื่อง1และหยุดเฉพาะเมื่อโปรแกรมถูกฆ่าหรือหน่วยความจำไม่เพียงพอ เอาต์พุตจะต้องเป็นอย่างใดอย่างหนึ่ง0ตามด้วยการขึ้นบรรทัดใหม่หรือเว้นวรรคอย่างใดอย่างหนึ่งหรือไม่หรือการสิ้นสุด1ของแต่ละ1บรรทัดตามด้วยการขึ้นบรรทัดใหม่หรือช่องว่างอย่างใดอย่างหนึ่ง ไม่สามารถสร้างเอาต์พุตอื่นได้ยกเว้นเอาท์พุทคงที่ของล่ามภาษาของคุณที่ไม่สามารถระงับได้ (เช่นคำทักทายรหัสสี …
148 code-golf 

30
1, 2, Fizz, 4, Buzz
บทนำ ในความพยายามล่าสุดของเราในการรวบรวมแคตตาล็อกของโซลูชั่นที่สั้นที่สุดสำหรับแบบฝึกหัดการเขียนโปรแกรมมาตรฐานนี่คือความท้าทายวานิลลาครั้งแรกของ PPCG หากคุณต้องการที่จะเห็นความท้าทายแคตตาล็อกอื่น ๆ มี"Hello World!" และ"ตัวเลขนี้สำคัญหรือไม่" . ท้าทาย เขียนโปรแกรมที่พิมพ์ตัวเลขทศนิยมตั้งแต่ 1 ถึง 100 แต่สำหรับทวีคูณของสามพิมพ์ "Fizz" แทนจำนวนและสำหรับทวีคูณของห้าพิมพ์ "Buzz" สำหรับตัวเลขที่เป็นทวีคูณของทั้งสามและห้าพิมพ์“ FizzBuzz” เอาท์พุต ผลลัพธ์จะเป็นรายการของตัวเลข (และ Fizzes, Buzzes และ FizzBuzzes) คั่นด้วยบรรทัดใหม่ (อย่างใดอย่างหนึ่ง\nหรือ\r\n) บรรทัดใหม่ต่อท้ายเป็นที่ยอมรับ แต่ขึ้นบรรทัดใหม่นำหน้าไม่ได้ นอกเหนือจากการเลือกบรรทัดใหม่ของคุณผลลัพธ์ควรมีลักษณะเช่นนี้: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz …

25
รหัสที่สั้นที่สุดเพื่อย่ออย่างถูกต้องตามกฎหมาย
ฉันเป็นนักพัฒนาและฉันไม่รู้สึกอยากทำงานของฉัน ฉันรู้จาก XKCD ว่าข้อแก้ตัวที่ดีที่สุดสำหรับการหย่อนลงคือการคอมไพล์โค้ดของคุณ ด้วยเหตุนี้ฉันคิดว่าฉันต้องการรหัสที่จะรวบรวมตลอดไป! และเนื่องจากฉันขี้เกียจและไม่ต้องการพิมพ์มากสิ่งนี้จึงต้องทำด้วยรหัสที่สั้นที่สุดเท่าที่จะเป็นไปได้ ดังนั้นงานของคุณคือการเขียนโปรแกรมที่ถูกต้องทางไวยากรณ์ แต่จะทำให้คอมไพเลอร์เข้าสู่วงวนไม่สิ้นสุด ข้อมูลจำเพาะ คุณต้องใช้ภาษาที่มีคอมไพเลอร์อย่างชัดเจน ระบุการนำไปปฏิบัติที่ใช้ในแต่ละโซลูชัน นี่คือรหัสกอล์ฟดังนั้นวิธีแก้ปัญหาที่สั้นที่สุดที่ถูกต้อง (เป็นไบต์) ชนะ คอมไพเลอร์สามารถยุติจากหน่วยความจำไม่เพียงพอหรือพื้นที่สแต็ก

1
“ KNOT” หรือ“ ไม่”?
เขียนโปรแกรมที่ประมวลผลการแทนค่า ASCII art ของสตริงที่มีการพันกันและตัดสินใจว่าจะไม่ถูกรวมเข้าไปในลูปแบบง่ายได้หรือไม่ ยุ่งเหยิงจะถูกแสดงโดยใช้ตัวอักษร-และ|เพื่อเป็นตัวแทนของส่วนแนวนอนและแนวตั้งและ+เพื่อเป็นตัวแทนมุม สถานที่ที่สตริงผ่านตัวเองจะถูกแสดงดังนี้: | | ------- ---|--- | | (Horizontal segment on top) (Vertical segment on top) ปลายของสายเชื่อมต่อกัน ไม่มีจุดจบหลวม KNOTถ้าโปรแกรมของคุณตัดสินใจว่าสตริงไม่สามารถแกะเป็นห่วงง่ายๆก็ควรเอาท์พุทคำว่า มิฉะนั้นควรส่งคำNOTออก นี่เป็นความท้าทายของรหัส - กอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง (วัดเป็นไบต์ของซอร์สโค้ด) จะเป็นผู้ชนะ ขีด จำกัด อินพุต ASCII จะประกอบด้วยความยาวสูงสุด 80 บรรทัดซึ่งประกอบด้วยอักขระ 80 ตัว คุณอาจสันนิษฐานว่าเส้นทุกเส้นมีช่องว่างที่มีความยาวเท่ากัน ตัวอย่าง การป้อนข้อมูล: +-------+ +-------+ | | | | | +---|----+ +-------+ …

30
ถอดรหัสรหัสที่มา
หมายเหตุ : ความท้าทายนี้ถูกปิดเพื่อส่งตำรวจใหม่ นี่คือเพื่อให้แน่ใจว่าไม่มีใครสามารถโพสต์การส่งที่ยังคงไม่ได้ติดตามเพราะมีโจรไม่พอสนใจในความท้าทายอีกต่อไป ในเกมตำรวจและโจรตำรวจแต่ละคนจะเขียนโปรแกรมอย่างง่ายเพื่อให้ได้ผลลัพธ์เดียว จากนั้นพวกเขาจะเผยแพร่สี่สิ่งต่อสาธารณะเกี่ยวกับโปรแกรม ภาษา ความยาวของโปรแกรม ผลลัพธ์ที่ต้องการ ซอร์สโค้ดเวอร์ชันที่มีสัญญาณรบกวน จากนั้นโจรจะต้องถอดรหัสรหัสที่มาเพื่อให้โปรแกรมทำงานเหมือนต้นฉบับ กฎของตำรวจ คุณต้องเขียนโปรแกรมอย่างง่ายซึ่งพวกโจรจะพยายามสร้างใหม่ โปรแกรมต้นฉบับของคุณจะต้องมีฟังก์ชั่นง่าย ๆ : เมื่อทำการประมวลผลมันจะแสดงผลเป็นสตริง / หมายเลขเดียวและหยุดพัก ควรให้ผลลัพธ์เดียวกันโดยไม่คำนึงว่าเมื่อใด / จะถูกเรียกใช้และไม่ควรขึ้นอยู่กับไลบรารีเพิ่มเติมหรืออินเทอร์เน็ต โปรแกรมและผลลัพธ์ของคุณต้องใช้ ASCII ที่พิมพ์ได้ (อนุญาตให้ขึ้นบรรทัดใหม่และเว้นวรรค) ผลลัพธ์ควรมีความยาวไม่เกิน 100 ตัวอักษรและโปรแกรมควรใช้เวลาน้อยกว่าประมาณ 5 วินาทีในการทำงานบนเครื่องที่เหมาะสม คุณไม่ได้รับอนุญาตให้ใช้การแฮช (หรือฟังก์ชันการเข้ารหัสลับอื่น ๆ ) ในโปรแกรมของคุณ จากนั้นคุณให้รหัสแหล่งที่มาที่มีสัญญาณรบกวนและเอาต์พุตที่ต้องการ คุณสามารถช่วงชิงซอร์สโค้ดของคุณได้ตามที่คุณต้องการตราบใดที่อักขระยังคงอยู่ คะแนนของคุณเป็นโปรแกรมที่สั้นที่สุดที่คุณส่งซึ่งยังไม่ได้ทำการถอดรหัส หลังจากผ่านไปหนึ่งสัปดาห์การส่งที่ไม่ได้ติดตามจะกลายเป็นภูมิคุ้มกัน เพื่อเรียกร้องภูมิคุ้มกันนี้คุณควรแก้ไขคำตอบของคุณเพื่อแสดงคำตอบที่ถูกต้อง (การชี้แจง: จนกว่าคุณจะเปิดเผยคำตอบคุณจะไม่ได้ภูมิคุ้มกันและยังสามารถแตกได้) คะแนนต่ำสุดชนะ ตัวอย่างคำตอบ Cop ง่ายๆ Perl, 20 ellir"lnto …

30
เคล็ดลับสำหรับการเล่นกอล์ฟใน C.
คุณมีเคล็ดลับทั่วไปสำหรับการเล่นกอล์ฟใน C หรือไม่? ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะเจาะจงกับ C (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ นอกจากนี้โปรดระบุว่าเคล็ดลับของคุณใช้กับ C89 และ / หรือ C99 และใช้ได้กับคอมไพเลอร์บางตัวเท่านั้น
137 code-golf  tips  c 

27
เอาใจ Google Overlords ของคุณ: วาดโลโก้“ G”
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวก N และส่งออกภาพพิกเซล N × N ของโลโก้ "G"ของ Google ตามโครงสร้าง * นี้: ตัวอย่างเช่นถ้า N คือ 400 โลโก้ควรมีขนาด 400 × 400 พิกเซลพร้อมขนาดและสีที่ถูกต้อง: มันควรดูแม่นยำโดยไม่คำนึงว่า N หรือเล็กใหญ่ เช่นที่นี่คือ N = 13: รหัสของคุณไม่จำเป็นต้องเชื่อมต่อกับอินเทอร์เน็ต ตัวอย่างเช่นไม่อนุญาตให้ปรับขนาด svg ที่โฮสต์ภายนอก (การปรับขนาด svg ที่เข้ารหัสในรหัสของคุณน่าจะใช้ได้) อาจใช้ Anti-aliasing หรือไม่ก็ได้ มันขึ้นอยู่กับคุณ. โปรดสังเกตว่าแถบแนวนอนของ "G" จะไม่ขยายไปจนถึงขอบด้านขวาของภาพ โดยปกติแล้วส่วนโค้งของวงกลมจะเข้ามาที่ขอบด้านขวาก่อนที่จะถูกตัดออก รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ * การสร้างโลโก้นั้นง่ายขึ้นสำหรับความท้าทายนี้ การก่อสร้างที่ถูกต้องสามารถมองเห็นได้ที่นี่และที่นี่

30
ข้อความแสดงข้อผิดพลาดที่สั้นที่สุด
ท้าทาย เขียนโปรแกรมสั้นที่สุดที่เมื่อรวบรวมหรือดำเนินการผลิตข้อความแสดงข้อผิดพลาดร้ายแรงน้อยกว่าโปรแกรมเอง raiseข้อผิดพลาดอาจไม่ได้รับการสร้างขึ้นโดยโปรแกรมตัวเองเช่นงูหลาม คำตอบที่ถูกต้องจะต้องมีทั้งรหัสและข้อความแสดงข้อผิดพลาด คำตอบที่ถูกต้องสั้นที่สุดชนะ ไม่มีข้อความแสดงข้อผิดพลาดไม่นับเป็นข้อความแสดงข้อผิดพลาด ตัวอย่าง (Lua) รหัส (46 ไบต์): [ --aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ข้อผิดพลาด (45 ไบต์): [string "[..."]:1: unexpected symbol near '['

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

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