วอนผู้รู้ตอบคำถาม ภาษา C/C++

เริ่มโพสต์โดย REROYD, 01 ก.ย. 2007, 00:35 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

REROYD

คือวันนี้ได้รับงานจาก อาจารย์ที่ ม. มา 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=

note:
1.โจทย์เหมือนให้เขียนเกมเลย
2. kbhit() ไม่ใช่ standard C
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

REROYD

ขอบคุณลุงซัน ครับ  :12:

ตอนนี้ผมใช้ kbhit() กับ do while loop อยู่ครับ ติดตรงออกจากโปรแกรมไม่ได้นี่ล่ะ   :41:

ลุงซัน

เช็ค key ที่จะออก(เลือก key ที่จะออก เช่น esc) แล้ว break/exit

http://www.cprogramming.com/fod/exit.html
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

REROYD

เอ่อ....ติดอีกแล้วครับ คืออยากจะถามว่า ...

ถ้าเราใช้ฟังก์ชัน 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.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

formulax

#9
 :25:ที่ส่งมาให้ทางเอ็มนะหาย ไม่ทันโหลดเลยเอ็มหลุด รู้ใช่ไหมว่ามันชอบมีปัญหา :01:
เร็วหน่อยนะ ส่งทางเมล์ด้วยจะดีมากๆ
:09: เราเริ่ม งงๆ แล้วนะ ทำไมคอมพิวเตอร์มันถึงได้มีอะไรเยอะแยะมากมายไปหมด
ที่เรียนผ่านมารู้สึกว่าเรารู้น้อยเกินไปนะ จำเป็นไหมที่เราต้องเพิ่มเติมเข้าไปอีก
แล้วจะเริ่มที่ตรงไหนก่อนดีละ ไม่รู้ว่าทุกวันนี้เริ่มถูกหรือเปล่านะ ก็รู้ว่าต้องใช้เวลา
แต่สิ่งที่จะเจอในวันข้างหน้ามันไม่คอยเรานะ  :44:
Formula-X สายพันธุ์คนรักรถ

REROYD

ตูตั้งกระจู๋นี้ขึ้นมาขอแนวทางนะ........ :07:


เอาไฟล์พื้นฐานไปก่อนไปบัก 1st

REROYD

เอ้อ........ :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.
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

REROYD

อ๊ะ...........ทำได้แล้ว (ดัดแปลงจาก 2 มิติ) ขอบคุณมาก ๆ ครับ  :25:

SMF 2.1.7 © 2026, Simple Machines