วันอังคารที่ 18 ตุลาคม พ.ศ. 2559

สร้างเกมส์ ox ด้วย kivy pt.1

        ในตอนนี้เริ่มทำไปได้เพียง การสร้างปุ่มกด จำนวน 9 ปุ่ม โดยใช้ layout แบบ grid เพราะจากการที่ลองใช้แบบอื่นๆดูแล้ว แบบ grid ดูจะมีความยุ่งยากน้อยที่สุด แล้วยังมีคุณสมบัติในการที่สามารถ จะกำหนด หลัก หรือ columns ได้ แล้วยังมี spacing ในการเว้นระยะห่างจากปุ่มถึงปุ่ม padding เว้น จากกรอบหน้าจอ จึงทำให้คิดว่าเหมาะแก่การที่จะนำมาใช้ในการจัดวางตำแหน่ง ปุ่มที่มีลักษณะเป็น ตาราง 3*3
       
 # File name: tictactoe.kv
#:kivy 1.9.0

<Button>:
    background_color:(1,0,1,1)
       
<Table>:
    GridLayout:
        cols: 3
        padding: 150,100
        spacing: 30
        Button:
        Button:
        Button:
        Button:
        Button:
        Button:
        Button:
        Button:
        Button:

จาก code ก็คือ ยังไม่ได้กำหนดอะไร เพียงแต่กำหนดให้เป็นปุ่มกด มีการกำหนดสี ยังไม่ได้ใส่เงื่อนไขอะไรทั้งสิ้น ซึ่งจะเป็นจุดเริ่มต้นการสร้างเกมส์ OX





API (Kivy)

website : https://kivy.org/docs/api-kivy.uix.button.html
ใช้ในการศึกษา API แต่ละตัวของ kivy

ศึกษาการใช้คำสั่ง hg merge

จากเว็บที่ได้มีเพื่อนแนะนำมา( Sarik Kumpan)

https://www.mercurial-scm.org/wiki/ThaiMerge

ตัวของกระผมก็พอที่จะสรุปได้ว่า การ merge กันใน mercurial นั้นก็คือการรวม branch ให้กลายเป็น  branch เดียว หรือก็คือการ รวมการแก้ไขทั้งหมดให้เป็นการแก้ไขเดียว
ซึ่งได้ลองทำ กับเพื่อนในกลุ่ม ซึ่งผลออกมาก็ยังไม่ค่อยเข้าใจซะทีเดียว


โดยการจะ merge นั้นก็จะให้เพื่อนลองคอมมิท งานบน bitbucket โดยที่เรา จะทำงานกันคนละกิ่ง พอเพื่อนคอมมิท ผมก็จะ ใช้คำสั่ง hg pull แล้วจากนั้นก็ hg merge ซึ่งผลก็ยังไม่เป็นตามที่คาดหมาย แต่ในสัญลักษณ์ ใน commit บน bitbucket ก็ได้แสดงว่า merge กันแล้ว

วันอังคารที่ 11 ตุลาคม พ.ศ. 2559

รายงานผล Test 2

โจทย์ข้อแรก
        ลองเปลี่ยนชื่อ Method on_children ใน drawingspace.py เพื่อทำให้สามารถไม่สามารถที่จะถูกเรียกใช้ได้แบบ อัติโนมัติ
วิธีที่แก้ปัญหา
ให้ทำการเรียกใช้ method เมื่อมีการ add หรือ remove widgets





โจทย์ข้อที่สอง
        ลองทำการลบแบบกลุ่ม
วิธีที่ใช้ ในไฟล์ generaloptions.py จะเป็นโค้ดเกี่ยวกับการกระทำต่างๆ พวกการลบ การจับกลุ่มจะอยู่ในส่วนี้ เลยทำการแก้ไขให้ตอนที่จะมีการกด remove ว่ามีการกดโหมดกลุ่มอยู่หรือเปล่าถ้าหากใช้ก็จะทำการเช็ค children ทุกตัวว่าตัวไหนถูก selected อยู่ ก็จะถูกลบทั้งหมด


โจทย์ข้อที่สาม
        นับจำนวนของ stickman
วิธีที่ใช้ จากการขอคำแนะนำจากเพื่อน เพื่อนได้แนะนำว่าให้ลอง ปริ้นท์ Child ออกมาดูว่าเป็นยังไง พอลองปริ้นออกมาแล้วนั้น ได้ผลดังนี้

ซึ่งทำให้รู้ว่า สิ่งที่ถูกเก็บใน children นั้น คือ object สองประเภทในที่นี้คือ StickMan และ DraggableWidget ซึ่งก็เลยลองแปลงค่าเหล่านี้ ให้กลายเป็น String แล้วทำการเช็คว่าใน String ที่เก็บค่ามาจาก children นั้นว่าเป็นคำอะไร อย่างในโค้ดก็จะเป็นตัวอักษร index ที่ 14 15 16 17 18 
ซึ่งถ้าเรียงเป็นคำว่า Stick จะทำให้นับเป็นจำนวนของ Stickman


 พอการนับทำได้ก็ต้องทำการแสดงผล โดยจะไปเพิ่มใน statusbar.kv เพิ่ม label เข้าไปแล้วก็ไปเพิ่ม ตัวแปรเก็บค่า ที่ statusbar.py ด้วยเช่นกัน





วันเสาร์ที่ 24 กันยายน พ.ศ. 2559

วันพฤหัสบดีที่ 8 กันยายน พ.ศ. 2559

PEP8

         ลองนำโค้ดที่ได้เขียนมา ( เกมOX) มาทำการตรวจสอบด้วยระบบของ PEP8 ที่ได้โหลดมาทาง terminal ผลออกมานั้น มีข้อผิดพลาดมากมายมหาศาล









Bitbucket

เริ่มต้นทำงานด้วยการใช้ Bitbucket

https://bitbucket.org/bsigroup2/tictactoe-code