คือวันนี้ได้รับงานจาก อาจารย์ที่ ม. มา 1 งาน ตอนนี้คิดจนหยักสมองเลือนลางแล้ว :08:
โจทย์คือให้เขียนโปรแกรมภาษา C โดยแสดงอักษร "X" เริ่มจากกลางจอซ้ายสุด วิ่งไปเรื่อย ๆ จนชนขอบขวาสุดจึงโผล่ออกมาที่ด้านซ้ายใหม่
และเมื่อใดก็ตามที่กดปุ่มเลข 4 ตัว X จะกลับมาเลื่อนในทางกลับกัน
ประมาณนี้น่ะครับ
X
และเมื่อกดปุ่มทิศทางที่กำหนดไว้เช่น 2 หมายถึงให้ X วิ่งลง และ 8 หมายถึงให้ X วิ่งขึ้น เป็นต้น
แต่...ปัญหาของผมไม่ใช่การเลื่อนของตัว X ครับ
ปัญหาของผมคือ ทำอย่าไรให้สั่งให้ X เลื่อนตามคำสั่งที่กดได้โดยไม่ต้องหยุดรอรับค่าน่ะครับ
หมายถึง ในขณะที่ตัว X กำลังวิ่งอยู่นั้นถ้าผมกด 8 ปุ๊ป X จะต้องวิ่งขึ้นทันทีน่ะครับ(X จะอยู่ตำแหน่งใดของจอภาพก็ตาม)
และจะสั่งให้เลื่อนไปทางไหน กี่ครั้งก็ได้ จนกว่าจะกดคีย์ที่กำหนดให้ออกจากโปรแกรมน่ะครับ
ป.ล.ขอเป็นแนวทางก็พอครับ เพราะมันเป็นการบ้าน อยากจะลองทำเองน่ะครับ
เอ้อ...ผมใช้ Borland C++ 3.1 For Windows กับ Borland C++ 3.1 For DOS ครับ :22:
ป.ป.ล. เอ่อ............งงหรือเปล่าครับ :09:
ถ้าใช้ Borland C(C++)
ใช้
kbhit()
ดูตัวอย่าง(คำถาม)ได้ที่นี่ครับ
http://community.thaiware.com/index.php?showtopic=304236&pid=1827110&mode=threaded&start= (http://community.thaiware.com/index.php?showtopic=304236&pid=1827110&mode=threaded&start=)
note:
1.โจทย์เหมือนให้เขียนเกมเลย
2. kbhit() ไม่ใช่ standard C
ขอบคุณลุงซัน ครับ :12:
ตอนนี้ผมใช้ kbhit() กับ do while loop อยู่ครับ ติดตรงออกจากโปรแกรมไม่ได้นี่ล่ะ :41:
เช็ค key ที่จะออก(เลือก key ที่จะออก เช่น esc) แล้ว break/exit
http://www.cprogramming.com/fod/exit.html (http://www.cprogramming.com/fod/exit.html)
เอ่อ....ติดอีกแล้วครับ คืออยากจะถามว่า ...
ถ้าเราใช้ฟังก์ชัน delay(); ไม่ได้ แล้วจะมีฟังก์ชันอื่นที่ใช้หน่วงเวลาได้เหมือนกับ delay ไหมครับ
ป.ล. ชักเกลียด Borland C++ For Windows ซะแล้ว ใช้ delay(); ก็ไม่ได้ textcolor(); ก็ไม่ได้ cprintf();ก็ไม่ได้...... ตกลงมันให้ตูเขียนฟังก์ชันใช้เองใช่ไหมฟะ :07:
วนลูปทิ้งฆ่าเวลาเลยครับ
ต้องวนกันหลายรอบเลยนะนั่น
for สองชั้น ชั้นละ 1 000 000 ไม่ก็แสน น่าจะถ่วงได้ซักนิดนะครับ
อ้างคำพูดจาก: doyrer เมื่อ 04 ก.ย. 2007, 20:43 น.
เอ่อ....ติดอีกแล้วครับ คืออยากจะถามว่า ...
ถ้าเราใช้ฟังก์ชัน delay(); ไม่ได้ แล้วจะมีฟังก์ชันอื่นที่ใช้หน่วงเวลาได้เหมือนกับ delay ไหมครับ
ป.ล. ชักเกลียด Borland C++ For Windows ซะแล้ว ใช้ delay(); ก็ไม่ได้ textcolor(); ก็ไม่ได้ cprintf();ก็ไม่ได้...... ตกลงมันให้ตูเขียนฟังก์ชันใช้เองใช่ไหมฟะ :07:
delay(); -> #include <dos.h> ถ้าบน windows ใช้ sleep();
textcolor(); cprintf(); -> #include <conio.h>
รับรอง functions ตรึม เพียงแต่อาจต้องเช็คว่าต้อง include อะไร
http://www.functionx.com/bcb/index.htm (http://www.functionx.com/bcb/index.htm)
:25:ที่ส่งมาให้ทางเอ็มนะหาย ไม่ทันโหลดเลยเอ็มหลุด รู้ใช่ไหมว่ามันชอบมีปัญหา :01:
เร็วหน่อยนะ ส่งทางเมล์ด้วยจะดีมากๆ
:09: เราเริ่ม งงๆ แล้วนะ ทำไมคอมพิวเตอร์มันถึงได้มีอะไรเยอะแยะมากมายไปหมด
ที่เรียนผ่านมารู้สึกว่าเรารู้น้อยเกินไปนะ จำเป็นไหมที่เราต้องเพิ่มเติมเข้าไปอีก
แล้วจะเริ่มที่ตรงไหนก่อนดีละ ไม่รู้ว่าทุกวันนี้เริ่มถูกหรือเปล่านะ ก็รู้ว่าต้องใช้เวลา
แต่สิ่งที่จะเจอในวันข้างหน้ามันไม่คอยเรานะ :44:
ตูตั้งกระจู๋นี้ขึ้นมาขอแนวทางนะ........ :07:
เอาไฟล์พื้นฐานไปก่อนไปบัก 1st
เอ้อ........ :08: ตันอีกแล้วครับ...พอดีค้นจน Google พรุนแล้วยังไม่เจอ อยากทราบว่า รูปแบบการใส่ค่าให้กับตัวแปร arrays แบบ 3 มิติ โดยใช้เครื่องหมาย { } ทำอย่างไรครับ
พอดีหาเจอแต่แบบ มิติเดียว
ขอบคุณล่วงหน้าครับ :46:
เอาแบบ 2 มิติไปดูก่อนแล้วกันนะครับ ซึ่งมีในตำราทั่วๆไป(แบบ 3 มิติ ตัวอย่างด้านล่าง)
int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } };
------------------------------------------------------------
เครดิตคำอธิบาย 3 มิติ -> weaknessforcats
All arrays are one dimensional.
A "3D" array is just a one-dimensional array that has a "2D" array for an element.
So you intialiize each "2D" element that is present in your "3D" array.
A "2D" array is just a one-dimenssional array with one dimensional arrays as elements.
So you initialize each one-dimensional array that is present in your "2D" array.
Or you capitalize on tghe fact that all arrays are one-dimensional:
This code:
Code: ( cpp )
1.
int array[12] = {1,2,3,4,5,6,7,8,9, 0,1,2}
has a memory layout of
1 2 3 4 5 6 7 8 9 0 1 2
Code: ( cpp )
1.
int array[4][3] ={1,2,3,4,5,6,7,8,9, 0,1,2}
has a memory layout of
1 2 3 4 5 6 7 8 9 0 1 2
Code: ( cpp )
1.
int array[2][3][2] = ={1,2,3,4,5,6,7,8,9, 0,1,2}
has a memory layout of
1 2 3 4 5 6 7 8 9 0 1 2
Hope this helps.
อ๊ะ...........ทำได้แล้ว (ดัดแปลงจาก 2 มิติ) ขอบคุณมาก ๆ ครับ :25: