วันพุธที่ 26 ตุลาคม พ.ศ. 2559

Tic Tac Toe - click to check position(use children)

    จาก commit ที่แล้วใช้การกำหนดขอบเขตเพื่อเช็คหาตำแหน่งของช่อง หลังจากมีการคุยกันในกลุ่มงานก็รู้ว่ามันสามารถใช้ collide_point กับ children เพื่อเช็คตำแหน่งได้เลยนะ โดย children ในที่นี้ก็คือ RelativeLayout ซึ่งเป็น children ของ Board



    หลังจากแก้ไขเสร็จแล้ว ใน checkPos ก็จะเหลือแค่การวนลูปแล้วเข้าเงื่อนไขเช็คว่าตำแหน่งที่คลิกคือตำแหน่งของช่องใด โดยใช้คำสั่ง collide_point จากนั้นจึงปริ้นตำแหน่งของช่องออกมาทาง terminal

    ในรูปด่านล่างนี้ก็จะเห็นว่ามีการย้าย Method มาอยู่ใน class Board เนื่องจากผมมองว่าการคลิกๆที่ตารางมันดูเป็นการสั่งงานกับ Board โดยตรงเลย ถ้าย้ายลงมาไว้ใน class Board คิดว่าน่าจะดูเหมาะสมกว่า


Tic Tac Toe - click to check position

    จาก commit แรก(ของนิธิกานต์) ที่เป็นการสร้างหน้า GUI ขึ้นมาเพียงอย่างเดียว จึงได้ทดลองทำการสร้าง Method on_touch_down โดยกำหนดให้เมื่่อคลิกแล้วจะทำเขียนเรียกใช้ Method checkPos

    ใน checkPos นั้นจะมีการวนลูปเพื่อเช็คขอบเขตว่า ตำแหน่งที่คลิกนั้นอยู่ในช่องใด จากนั้นจึงปริ้นตำแหน่งของช่องออกมาทาง terminal

Tic Tac Toe - My Commit

[bitbucket] 1. click to check position
[bitbucket] 2. click to check position(use children)
[bitbucket] 3. test add image
[bitbucket] 4. merge
[bitbucket] 5. Add Method Check Duplicate
[bitbucket] 6. Add Method : (Board)Show_Table, Clear / (Option)restart
[bitbucket] 7. Add Check win / Check Draw(Still can add after some player win)
[bitbucket] 8. Cannot Add after Win/Draw | Fix Bugs(Load File)

วันอาทิตย์ที่ 16 ตุลาคม พ.ศ. 2559

Exam2 - 30september

Quiz 2


ข้อ 1 : เปลี่ยน on_children >> on_30september

สร้าง method set_value กับ get_value ( คิดมากเกินไป จริงๆแล้วไม่จำเป็น )


ทำการเรียกใช้ on_30september

แก้ไขโค้ดให้สั้นลง(??)




ข้อ 2 : ลบตัวที่ถูกเลือกทั้งหมดขณะ Group

สิ่งที่ทำในห้องเรียน
    ใน method remove (ไฟล์ generaloptions.py) จะทำการสร้างเงื่อนไขเช็คว่าอยู่ใน group mode หรือไม่ หากอยู่ใน group mode ก็จะทำการวนลูป แล้วเช็คอีกทีว่ามีการเลือก children ตัวนั้นไหม เพื่อที่จะลบเฉพาะตัวที่ถูกเลือกเท่านั้น

ปัญหาที่พบ
    เมื่อทำการลบ ค่าตำแหน่ง(index)ของ children จะมีการขยับเลื่อนลงมา เช่น หากลบตัวที่ 0 ทิ้ง children ตัวที่ 1 จะขยับลงมาเปลี่ยนเป็นตัวที่ 0 แทน ( เปลี่ยนแค่ค่า index นะ รูปร่างกับตำแหน่ง(position)ไม่เปลี่ยน )


สิ่งที่ทำในห้องนอน
    จากปัญหาที่เจอ จึงทำการแก้โดยให้มีการวนลูปจากตัวสุดท้ายจนถึงตัวที่ 0 แทน




ข้อ 3 : นับจำนวน StickMan

สิ่งที่ทำในห้องเรียน
    เพิ่ม Label เพื่อใช้แสดงจำนวน StickMan  เพิ่มตัวแปรต่างๆที่คิดว่าต้องใช้ สร้าง method count_stickman เพื่อใช้ในการนับจำนวน StickMan และทำการเรียกใช้ตอนสร้าง StickMan

ปัญหาที่พบ
    หาวิธีที่จะเช็คว่า chirdren ตัวนั้นๆเป็น StickMan เพื่อจะนำไปใช้ในตอน remove ไม่ได้


สอบถามมิตรสหาย
    มิตรสหายแนะนำว่า ลองสร้างไอดีให้ stickman ดูสิ ( ตอนแรกนึกถึง id ในไฟล์ .kv )


กลับมาแแก้ไขในห้องนอน
    หลังจากสร้าง id ให้ StickMan แล้วจึงทำการแก้ไขใหม่ โดยจะมีการวนลูป children ทั้งหมดเพื่อเช็คด้วยเงื่อนไขว่า มีไอดีตรงกับ StickMan หรือไม่ เมื่อวนลูปจนครบก็จะได้จำนวน StickMan ทั้งหมดออกมา ( มีแก้ไข on_30september ซึ่งก็ยังดูเยอะไปอยู่ดี )



ทำการเรียกใช้ count_stickman



End.



วันพฤหัสบดีที่ 5 พฤศจิกายน พ.ศ. 2558

Lab 8 - String(Version 2) [JAVA]

public class Banner {
private String word;
private String symbol;

public Banner(String word, String symbol) {
this.word = word;
this.symbol = symbol;
}

public void printWord() {
String[] A = { "A", "  #  ", " # # ", "#   #", "#####", "#   #" };
String[] C = { "C", "#####", "#    ", "#    ", "#    ", "#####" };
String[] E = { "E", "#####", "#    ", "#### ", "#    ", "#####" };
String[] blank = { " ", "  ", "  ", "  ", "  ", "  " };
String[][] character = { A, C, E, blank };
this.changesymbol(character);
char[] wordArray = this.word.toCharArray();
for (int row = 1; row <= 5; row++) {
for (int i = 0; i < this.word.length(); i++) {
for (int j = 0; j < character.length; j++) {
char checkChar = character[j][0].charAt(0);
if (wordArray[i] == checkChar) {
System.out.print(character[j][row]+" ");
}
}
}
System.out.println();
}
}

public void changesymbol(String[][] character) {
for (int i = 0; i < character.length; i++) {
for (int j = 1; j < character[i].length; j++) {
character[i][j] = character[i][j].replace("#",this.symbol);
}
}
}

public void set_symbol(String symbol) {
this.symbol = symbol;
}

public static void main(String[] args) {
Banner word = new Banner("AEC ACE ECE ACA", "#");
word.printWord();
System.out.println();
word.set_symbol("*");
word.printWord();
}
}