การท้าทายรหัสที่สำคัญ


24

งาน

คุณมีหน้าที่สร้างเข็มทิศแปลก ๆ

ลองจินตนาการว่าซอร์สโค้ดของคุณเป็นเข็มทิศ "เข็ม" ที่ทำงานในทิศทางที่แตกต่างกันจะสร้างเอาต์พุตที่แตกต่างกัน

การวางแนวซอร์สโค้ดที่รองรับคือ North, East, South และ West

ตัวอย่าง

สมมติว่าคุณมีซอร์สโค้ด:

ABCD
 J K
WXYZ

เราจะพิจารณาสิ่งนี้ในทิศเหนือ, หมุนตามเข็มนาฬิกา 90 องศาชี้เราไปทางทิศตะวันออก:

W A
XJB
Y C
ZKD

หมุนอีกครั้งชี้ไปที่ทิศใต้:

ZYXW
K J 
DCBA

และในที่สุดการหมุนครั้งสุดท้ายไปทางทิศตะวันตก:

DKZ
C Y
BJX
A W

เมื่อเรียกใช้ตัวอย่างโค้ดด้านบนแต่ละตัวอย่างควรแสดงอักขระ ASCII ที่พิมพ์ได้ที่คุณเลือกได้

หมายเหตุ

รหัสของคุณจะไม่มีการป้อนข้อมูล

ช่องว่างหรือบรรทัดใหม่ไม่ยุบ / หายไปเมื่อหมุน

บรรทัดใหม่ที่นำหน้า / ต่อท้ายนั้นโอเคในเอาต์พุต

คำตอบอาจเป็นทั้งโปรแกรมหรือฟังก์ชั่นดังนั้นส่งออกไปยัง STDOUT หรือส่งกลับผลลัพธ์ของฟังก์ชั่น

ใช้กฎมาตรฐานของคำตอบที่สั้นที่สุดในการชนะไบต์!


เราสามารถส่งออกมากกว่า 1 ตัวอักษร?
Mr. Xcoder

1
เราจำเป็นต้องวางโค้ดด้วยช่องว่างหรือไม่จึงเป็นสี่เหลี่ยมผืนผ้าที่สมบูรณ์แบบ (และนับช่องว่างเหล่านั้นในคะแนนของเรา) ตัวอย่างเช่นรหัสที่มีรูปร่างเช่นนี้จะถูกต้องกำหนดเป็นคนแรกที่ส่ง?
แมวธุรกิจ

2
นอกเหนือจากข้อมูลจำเพาะของผลผลิตแล้วฉันคิดว่านี่เป็นสิ่งที่ซ้ำกัน
Digital Trauma

1
@BusinessCat คุณไม่จำเป็นต้องวางรหัสของคุณเพื่อสร้างสี่เหลี่ยมผืนผ้า - ตัวอย่างที่คุณระบุไว้จะถูกต้อง
CzarMatt

4
@ Mr.Xcoder อืมโปรแกรมที่เหมือนกัน 4 โปรแกรมสามารถพิมพ์ ASCII 4 ตัวได้อย่างไร
ETHproductions

คำตอบ:


20

เยลลี่ 2 ไบต์

*2

ลองออนไลน์!

โปรดทราบว่ารายการหลักสำหรับโปรแกรม Jelly คือลิงค์สุดท้ายที่อักขระขึ้นบรรทัดใหม่ใด ๆ จะแยกลิงก์) ไม่มีโปรแกรมสองบรรทัดเข้าถึงการเชื่อมโยงบนสุดจริง ๆ

โปรแกรมเต็มรูปแบบสี่โปรแกรมซึ่งทั้งหมดจะพิมพ์ผลลัพธ์โดยปริยายคือ:

ทิศเหนือ :

*2   -> (implicit) zero raised to the power of 2 = 0

ตะวันออก :

*
2    -> literal 2 = 2

ทิศใต้ :

2*   -> two raised to the power of (implicit) 2 = 4

ตะวันตก :

2
*    -> (implicit) zero raised to the power of (implicit) zero = 1

1
นี่คือคำตอบสุดท้าย ทำได้ดี.
Erik the Outgolfer

19

Japt , 3 2 ไบต์

gy

อย่างใดอย่างใดผมพบว่าวิธีการแก้ปัญหา 2 ไบต์ hacky มาก ...


ทิศเหนือเอาท์พุท0:

gy

0เนื่องจากไม่มีการป้อนข้อมูลโดยปริยายเป็นค่าเริ่มต้น gในตัวเลขส่งกลับสัญลักษณ์ของตัวเลขโดยไม่คำนึงถึงข้อโต้แย้งของมัน ( "y"ในกรณีนี้)


เอาท์พุทตะวันออก2 :

g
y

ในโปรแกรมหลายบรรทัดบรรทัดแรกตั้งค่าอินพุตเป็นผลลัพธ์ นี้เป็นพื้นไม่มี-op ตั้งแต่gบนคือ0 0จากนั้นyส่งคืน GCD ของ0และ ... เนื่องจากไม่มีอาร์กิวเมนต์จึงเป็นค่าเริ่มต้นที่2(ขอบคุณ@Oliver !) สิ่งนี้ให้2เป็นเอาท์พุท


ผลผลิตภาคใต้g :

yg

yเช่นเดิมคือ GCD เนื่องจากgcd (0, x)คือxสำหรับค่าใด ๆyเปิด0ใช้เสรีภาพในการส่งคืนอาร์กิวเมนต์ ในกรณีนี้อาร์กิวเมนต์คือ"g"ซึ่งเป็นผลลัพธ์


ทิศตะวันตกเอาท์พุท1:

y
g

y0 2เป็นมาก่อนผลตอบแทน สิ่งนี้จะถูกส่งผ่านไปยังgซึ่ง (ตามที่กล่าวไว้แล้ว) เป็นฟังก์ชั่นเครื่องหมายของตัวเลข 1ดังนั้นผลที่ได้คือ


8

Java (OpenJDK 8) , 7309 4421 855 ไบต์

ไบต์ -2888 ขอบคุณแม่ชี Leaky
-3566 ไบต์ขอบคุณตัวช่วยสร้างข้าวสาลี

//i/////////////////////////////////////////////////////////////
//n//////////////////////////////////////////////////////////////////
interface M{static void main(String[]a){System.out.println(0);}}/////
//e//}};)2(nltnirp.tuo.metsyS{)a][gnirtS(niam diov citats{M ecafretni
//r//////////////////////////////////////////////////////////////////
//f}/////////////////////////////////////////////////////////////////
//a}//
//c;//
//e)//
// 3//
//M(//
//{n//
//sl//
//tt//
//an//
//ti//
//ir//
//cp//
// .//
//vt//
//ou//
//io//
//d.//
// m//
//me//
//at//
//is//
//ny//
//(S//
//S{//
//t)//
//ra//
//i]//
//n[//
//gg//
//[n//
//]i//
//ar//
//)t//
//{S//
//S(//
//yn//
//si//
//ta//
//em//
//m //
//.d//
//oi//
//uo//
//tv//
//. //
//pc//
//ri//
//it//
//na//
//tt//
//ls//
//n{//
//(M//
//1 //
//)e//
//;c//
//}a//
//}f//
///r//
///e//
 //t//
 //n//
 //i//

ลองออนไลน์!

เวอร์ชั่นเก่า

aproach ตรงไปตรงมาพร้อมกับความคิดเห็นที่ห่อหุ้มรหัส ^ 2 สี่เหลี่ยมสิ่งนี้สามารถทำได้ในทุกภาษา
ตัวอย่าง (อ่านเพิ่มเติม) ในงูหลาม

##p#####
# r  2 #
print 1#
# n  t #
# t  n #
#4 tnirp
# 3  r #
#####p##

ประเมินค่าทั่วไปที่ยอดเยี่ยมตอนนี้ฉันแค่ต้องคิดออกว่าจะทำอย่างไร! :)
ข้อผิดพลาด

คุณสามารถใช้interface M{static void main(String[]a){System.out.println(0);}}แทนการบันทึกไบต์
Leun Nun


1
@ MagicOctopus ไม่ได้ทำด้วยมือ c;
ร็อด

1
@ MagicOctopusUrn nah ฉันทำคำตอบนี้เพื่อแสดงอัลกอริทึมนี้ภาษาไม่เกี่ยวข้อง: 3
Rod

7

Brain-Flak , 33 ไบต์

##)(##))()()  ((
((  ))##    ()##

ลองออนไลน์!

Brain-Flak , 33 ไบต์

##)     ## #
(( ))#)())()
  # ( (

ลองออนไลน์!

Brain-Flakขนาด 36 ไบต์

#)##     ## #
  (())#)())()
 #   ( (

ลองออนไลน์!

Brain-Flak , 38 ไบต์

######  (#
(()()())#))((
       #(  ##

ลองออนไลน์!

Brain-Flakขนาด 41 ไบต์

##(#####(#
(()()())#
##))()((
####((#)#)#

ลองออนไลน์!


อึศักดิ์สิทธิ์! ฉันทำงานหนึ่ง แต่ไม่สามารถไปได้ทุกที่ ฉันคิดว่ามันต้องใช้เวลาอย่างน้อย 30-40 นาทีในการหาข้อมูล สิ่งนี้ช่างมหัศจรรย์!
DJMcMayhem

1
นี่มันเจ๋งมาก!
CzarMatt

พยายามตีคุณ: P จนพวกเขา 3 คนทำงาน
Christopher


5

Befunge, 17 13 ไบต์

ฉันคิดว่า Befunge จะสนุกสำหรับปัญหาเชิงเรขาคณิต มีวิธีแก้ปัญหา 4x4 เล็กน้อยเหมือนกับคนอื่น ๆ ที่นี่ (ฉันต้องการ 3 คำสั่ง) แต่ฉันจัดการได้ดีขึ้นเล็กน้อย

แก้ไข: ลืมเกี่ยวกับการขึ้นบรรทัดใหม่

แก้ไข 2: รู้แล้วฉันสามารถสร้างแมวได้

แก้ไข 3: แมวตาย

2v3
@.v
.  
1@.

RIP kitty: <

1.@ 2
^._.^
3 @.4

5

น่าประทับใจนั่นมันเร็วมาก!
CzarMatt

@ MagicOctopusUrn ฉันคิดว่าY'Xจะใช้ได้ แต่ฉันต้องลองใช้งาน
Riley

@Riley มันทำยังทำงานไปข้างหน้าและข้างหลังY'Xยังใช้ได้ ยังคงมองหา 2 ไบต์แม้ว่า; ไม่มีคำสั่ง 'dot' สำหรับฉันดังนั้นฉันสงสัยว่ามันมีอยู่
Magic Octopus Urn

@ MagicOctopusUrn ฉันไม่คิดว่าจะมีวิธีแก้ปัญหา 2 ไบต์กับวิธีการขึ้นบรรทัดใหม่ มันคงไม่ยากนักที่จะดุร้าย
Riley

10จะใช้งานได้หากพวกเขาอนุญาตให้ใช้อักขระได้หลายตัวสำหรับการส่งออก P. *
Magic Octopus Urn

4

C (gcc) , 283 279 209 ไบต์

/////////)pm//
/////////;ua//
main(){//}ti//
puts("N"//sn//
);}///////((//
//////////")//
///"//////W{//
///E//////"///
//)"//////////
//((///////};)
//ns//"S"(stup
//it}//{)(niam
//au;/////////
//mp)/////////

ลองออนไลน์!

ความคิดเห็นเดิม ๆ หลอกลวงที่นี่ แต่อย่างน้อยใน C นี่ไม่ได้รับhuuuge ;)

  • -4 ขอบคุณETHproductions !
  • Wทิศทางที่คงที่และ -70 (!) ไบต์ขอบคุณที่แสดงความคิดเห็นโดยETHproductions

คุณต้องการสแลชสี่อันที่ขอบขวาด้านขวาเหนือช่องว่างหรือไม่?
ETHproductions

เฮ้ .. อืม ... ฉันเดาว่าจริงแล้ว ... ไม่ ขอขอบคุณ :)
Felix Palmen

ฉันคิดว่าคุณสามารถรวมเข้าด้วยกันได้แน่นขึ้นโดยการย้าย);}ไปยังบรรทัดด้านล่างเช่นนี้ (ฉันยังไม่ได้ทดสอบการหมุน)
ETHproductions

โอ้Wโปรแกรมในการตั้งค่าปัจจุบันของคุณล้มเหลวในขณะนี้เนื่องจากมีการเพิ่มเติมsnหลังจากรหัสจริง เห็นได้ชัดว่าคุณสามารถแก้ไขได้โดยเปลี่ยนเครื่องหมายทับขวาpmบนบรรทัดบนสุดเป็นเซมิโคลอน
ETHproductions

เอ่อ ... อาจถึงเวลาที่จะลบและเริ่มต้นใหม่: o (รุ่นแรกเป็นรูปสี่เหลี่ยมจัตุรัส แต่ฉันคิดว่าฉันจะทำสิ่ง " ฉลาด " ประหยัดไบต์บาง ... dammit)
Felix Palmen

4

เขาวงกต 9 ไบต์

!
2@2
 !)

0พิมพ์ ลองออนไลน์!

 2)
 @!
!2

3พิมพ์ ลองออนไลน์!

)!
2@2
  !

1พิมพ์ ลองออนไลน์!

 2!
!@
)2

2พิมพ์ ลองออนไลน์!

คำอธิบาย

แต่ละโปรแกรมเริ่มต้นด้วยการไม่เว้นวรรคแรกในลำดับการอ่าน (เช่นอักขระกลางด้านซ้ายบนหรือบนสุด) เคลื่อนไปทางตะวันออก สำหรับโปรแกรมแรก:

!   Print an implicit zero.
    The IP can't move east, so it moves south instead.
2   Push a 2.
    The IP can't keep going south, so it turns east instead.
@   Terminate the program.

สำหรับโปรแกรมที่สอง:

2   Push a 2.
)   Increment it to 3.
    The IP can't keep going east, so it turns south instead.
!   Print the 3.
    The IP can't keep going south, so it turns west instead.
@   Terminate the program.

สำหรับโปรแกรมที่สาม:

)   Increment an implicit zero to 1.
!   Print the 1.
    The IP can't keep going east, so it turns south instead.
@   Terminate the program.

สำหรับโปรแกรมที่สี่:

2   Push a 2.
!   Print the 2.
    The IP can't keep going east, so it turns back around to move west.
2   Push another 2.
    The IP can't keep going west, so it turns south instead.
@   Terminate the program.

4

Wumpusขนาด 7 ไบต์

O@$
)))

0พิมพ์ ลองออนไลน์!

)O
)@
)$

1พิมพ์ ลองออนไลน์!

)))
$@O

3พิมพ์ ลองออนไลน์!

$)
@)
O)

2พิมพ์ ลองออนไลน์!

คำอธิบาย

โปรแกรมแรกนั้นง่ายพอ: Oพิมพ์ศูนย์โดยนัยและ@ยกเลิกโปรแกรม

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

enter image description here

)   Increment an implicit zero to 1.
O   Print the 1.
))  Two irrelevant increments.
@   Terminate the program.

สำหรับโปรแกรมที่สาม:

enter image description here

))) Increment an implicit zero to 3.
O   Print the 3.
@   Terminate the program.

อันที่สี่คือที่ที่มันตลกมาก เส้นประบ่งชี้เซลล์ที่ไม่ได้ดำเนินการเนื่องจากถูกข้ามโดย$:

enter image description here

$   Skip the ).
$   Skip the @.
))  Increment an implicit zero to 2.
O   Print the 2.
))  Two irrelevant increments.
@   Terminate the program.

ซุปเปอร์ไดอะแกรมที่ยอดเยี่ยมเช่นกัน
CzarMatt

3

PowerShell , 20 11 ไบต์

#4#
1#3
#2#

แสดงความคิดเห็นที่ไม่เหมาะสม ( #) อย่างบ้าคลั่งและความจริงที่ว่าตัวเลขเพียงหนึ่งเดียวที่วางลงบนไปป์ไลน์จะได้รับผลลัพธ์ตามที่เป็นอยู่ 1พิมพ์ดังกล่าวข้างต้น ลองออนไลน์!

จากที่นี่คุณสามารถเห็นได้อย่างง่ายดายว่าการหมุนแต่ละครั้งให้ผลลัพธ์เพียงหนึ่งหมายเลขที่อยู่บน "ซ้าย" ของความคิดเห็นดังนั้นจึงมีเพียงหมายเลขเดียวเท่านั้นที่จะแสดงผลต่อการหมุน

บันทึกแล้ว 9 ไบต์ขอบคุณWheat Wizard !


ไม่ทราบ PowerShell แต่จะไม่นี้ทำงานหรือไม่
ข้าวสาลีตัวช่วยสร้าง

@WheatWizard ใช่แน่นอน ขอบคุณ!
AdmBorkBork

3

Starryขนาด 34 ไบต์

  zz  
  +   
   .  
    + 
      

หรือมีช่องว่างที่แสดงเป็นยัติภังค์เพื่อให้คุณสามารถดูได้:

--zz--
--+---
---.--
----+-
------

ลองออนไลน์!

คำสั่งใน Starry มี+, .และบางสิ่งอื่น ๆ และสิ่งที่พวกเขาทำคือการกำหนดโดยวิธีการที่หลายพื้นที่มีก่อนหน้าพวกเขาก+กับnพื้นที่ดันn -5 ถึงกองและ.มีจำนวนมากยิ่งพิมพ์ช่องว่างมัน zs และการขึ้นบรรทัดใหม่จะถูกละเลยอย่างสิ้นเชิง

มีช่องว่าง 6 ช่องก่อนหน้าช่องแรก+ดังนั้นจึงส่ง 6−5 = 1 และ.พิมพ์ออกมา

และการหมุน:

-----
-----
---+z
--.-z
-+---
-----

ลองออนไลน์! สิ่งนี้พิมพ์ "8"

------
-+----
--.---
---+--
--zz--

ลองออนไลน์! สิ่งนี้พิมพ์ "2"

-----
---+-
z-.--
z+---
-----
-----

ลองออนไลน์! และนี่พิมพ์ "3"


ช่างเป็นภาษาที่เรียบร้อย นอกจากนี้ฉันไม่เคยบอกว่าคุณต้องใช้ช่องว่างเพื่อสร้างสี่เหลี่ยมผืนผ้า แต่ถ้าแหล่งที่มาของคุณขึ้นอยู่กับช่องว่างฉันคิดว่าคุณต้องนับมัน
CzarMatt

@ CzarMatt ขอบคุณสำหรับการชี้แจง! ฉันได้อัปเดตโพสต์แล้ว
ไม่ใช่ต้นไม้


2

แบตช์ 90 ไบต์

 :: :::@:
:&s ohce@
:e   : c:
      :h:
:o     o:
:h:
:c :   w:
@echo n&:
:@::: ::

รุ่นที่ไม่ได้มีความคิดเห็นตัวละครจริงๆ สำหรับความคิดเห็นทั้งบรรทัด:ทำงานตามที่แนะนำเลเบล แต่ฉันยังต้องการสิ่งที่จะยกเลิกechoคำสั่งขณะที่ไม่ใช้งานเมื่อกลับด้าน &:ดูเหมือนว่าจะใช้งานได้ซึ่งเป็นสิ่งที่ฉันต้องการที่นี่ แต่มันทำให้เกิดความสับสนแบทช์ผิดพลาดถ้าฉันไม่ใส่:ก่อนหน้า@ในบรรทัดถัดไปและยังลืมพิมพ์บรรทัดใหม่


2

MATLAB, 29 17 5 11 ไบต์

เมื่อรู้ว่าคำถามที่ถามมาสำหรับตัวอักษร ASCII เดี่ยวไม่เพียง แต่เอาท์พุทที่แตกต่างกันนี่คือวิธี MATLAB ซึ่งจะทำเช่นนั้น:

%4%
1%3
%2%

สิ่งนี้จะพิมพ์ 1, 2, 3 หรือ 4 โดยขึ้นอยู่กับการหมุน


ลองคิดดูสิมันจะทำงานใน MATL เช่นกัน ไบต์เดียวกันถือว่าเป็นของฉัน
Sanchises

2

พระคาร์ดินัล , 20 17 12 11 ไบต์

.$
Z%"
+$v

ลองออนไลน์!

ตลอดเวลานี้และไม่มีใครตอบใน Cardinal? 0นี่เป็นครั้งแรกหนึ่งเอาท์พุท

ตะวันออก

 +Z.
 $%$
 v"

ลองออนไลน์!

1เอาท์พุท

ภาคใต้


v$+
"%Z
 $.

ลองออนไลน์!

ส่งออกพื้นที่

ตะวันตก

 "v
$%$
.Z+

ลองออนไลน์!

vเอาท์พุท


1

SOGL V0.12 , 4 ไบต์

5H
I

เอาท์พุ1ลองที่นี่!

I5
 H

เอาท์พุHลองที่นี่!

 I
H5

เอาท์พุ5ลองที่นี่!

H
5I

เอาท์พุ6ลองที่นี่!


ถ้ามันมีช่องว่างมันคือ 5 ไบต์
Mr. Xcoder

1
@ Mr.Xcoder OP ในความคิดเห็นกล่าวว่าคุณไม่จำเป็นต้องใส่มันลงไป
dzaima

1

JS, 17 B

//1//
2///4
//3//

เอาท์พุ
ท: เหนือ: 2,
ตะวันออก: 3,
ใต้: 4,
ตะวันตก: 0.33333333333 ….
(ดังใน: 2, 3/1, 4, 1/3)


ยินดีต้อนรับสู่ PPCG! ฉันไม่คิดว่าสิ่งนี้ถูกต้องเช่นเดียวกับในสภาพแวดล้อมที่ไม่ใช่ REPL หมายเลขจะไม่แสดง (ฉันอาจจะผิดที่นั่น)
Zacharý

(เพียงเพิ่ม REPL หลังจาก JS จากนั้นฉันคิดว่าไม่เป็นไร)
Zacharý

1
ผลลัพธ์ควรเป็นอักขระ ASCII ที่พิมพ์ได้หนึ่งตัวดังนั้นเช่นเดียวกับ MATLAB ของฉันสิ่งนี้ไม่ถูกต้อง
Tom Carpenter

1

ขออภัยฉันหมายถึง:

//0//
////
 1/2
/////
//3//

และ 28B และแสดงผลเป็น 0.5, 3, 2, 0


ยินดีต้อนรับสู่ PPCG! คุณควรใส่ชื่อภาษาและจำนวนไบต์ในส่วนหัว และนี่เป็นตัวอย่างไม่ใช่โปรแกรมหรือฟังก์ชั่นเต็มรูปแบบซึ่งไม่ถูกต้อง (ฉันอาจจะผิด)
Zacharý

@ Zacharýฉันคิดว่าcodegolf.meta.stackexchange.com/questions/7842/…บอกว่าอนุญาต REPLs
SuperStormer

ไม่ว่าจะด้วยวิธีใดพวกเขาควรระบุว่าเป็น JS REPL
Zacharý

2
ผลลัพธ์ควรเป็นอักขระ ASCII ที่พิมพ์ได้หนึ่งตัวเช่นเดียวกับ MATLAB ของฉันสิ่งนี้ไม่ถูกต้อง
Tom Carpenter

1

JavaScript (ES6), 86 ไบต์

เอาต์พุต 0 สำหรับนอร์ ธ 1 สำหรับตะวันออก 2 สำหรับภาคใต้และ 3 สำหรับเวสต์

////  _//
////  =//
_=>0//>//
  ////1//
  // //
//3////
//>//2>=_
//=  ////
//_  ////


1

MATL 11 ไบต์

HxI
xFx
TxK

ลองออนไลน์!

มาเริ่มกันเลยใน MATL ความท้าทายหลักคือการที่ MATL ล้มเหลวหากฟังก์ชันต้องการอินพุตหากสแต็กว่างเปล่า บางทีบางสิ่งบางอย่างฉลาดกับการปรับเปลี่ยนเช่นX, Y, Zและ&จะทำให้บางสิ่งบางอย่างที่สั้น แต่ฉันไม่สามารถหาการผสมผสานที่เหมาะสม

คำอธิบาย: อักขระทั้งหมดดันจำนวนเต็มหนึ่งตัวบนสแต็กและxลบทั้งหมดยกเว้นอักขระตัวสุดท้าย


1

Perl, 49 ไบต์

48 รหัสไบต์ + 1 -pสำหรับ

สมมติว่าอินพุตว่างที่ TIO ไม่สนับสนุนดังนั้นจึงมีการเพิ่มบรรทัดใหม่ในตำแหน่งและไม่ใช้ พิมพ์N , E , S , W

# ####
#S= _$
#; W#
 $_=N#
#_ _#
#= $#
#E#
 ## #

ลองออนไลน์!


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