Niên luận trò chơi đón màu Giải trí là nhu cầu cần thiết của mọi người, trong thời đại công nghiệp thì nhu cầu giải trí càng trở nên cao hơn và làm thế nào để thoả mãn nhu cầu giải trí của người dùng nhưng không mất nhiều thời gian lại là một vấn đề. Để đáp ứng nhu cầu này của người dùng thì người lập trình đã nắm bắt thời cơ và nhu cầu này để viết ra những chương trình giải trí. Và chương trình trò chơi đoán màu cũng không nằm ngoài mục đích trên.
Trang 1TRƯỜNG ĐẠI HỌC BẠC LIÊU KHOA CÔNG NGHỆ THÔNG TIN
********************
NIÊN LUẬN 1:
ĐỀ TÀI:
CHƯƠNG TRÌNH TRÒ CHƠI ĐOÁN MÀU
Trang 2
MẪU CHẤM NIÊN LUẬN
TÊN ĐỀ TÀI : CHƯƠNG TRÌNH TRÒ CHƠI ĐOÁN MÀU
GIÁO VIÊN HƯỚNG DẪN : TH.S ………
SINH VIÊN THỰC HIỆN : ………
I HÌNH THỨC: (tối đa 1,0 điểm)
Bìa: (tối đa 0,5 điểm)
Các tiêu đề:
Loại đồ án, Tên đề tài, Giáo viên hướng dẫn, Thông tin về sinh viên thực hiện, Năm thực hiện
Bố cục: (tối đa 0,5 điểm)
Trang nhận xét của GVHD và GV chấm Mục lục: (cấu trúc chương, Mục, Tiểu mục.), Phụ lục: (nếu có), Tài liệu tam khảo.
II NỘI DUNG: (tối đa 4,5 điểm)
II.1 Giới thiệu (tối đa 0,5 điểm)
Giới thiệu tổng quan
Mục tiêu cần đạt:
II.2 Lý thuyết: (tối đa 1,0 điểm)
Các khái niệm sử dụng trong đề tài:
Kết quả vận dụng lý thuyết vào đề tài:
II.3 Ứng dụng: (tối đa 2,5 điểm)
Kết quả/Lưu đồ
Giới thiệu chương trình:
II 4 Kết luận: (tối đa 0,5 điểm)
Kết quả thực hiện đúng với kết quả của phần ứng dụng
IV.THƯỞNG: (tối đa 1,0 điểm)
TỔNG CỘNG:
Bạc Liêu, ngày……tháng ……năm 2010
GV CHẤM
Trang 3NHẬN XÉT CỦA GIÁO VIÊN
Bạc Liêu, ngày… tháng … năm 20…
Trang 4MỤC LỤC
************************
Chương 1 GIỚI THIỆU, MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT 4
I GIỚI THIỆU CHUNG: 4
II MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT: 4
1 Mục tiêu cần đạt được 4
2 Hướng giải quyết 4
Chương 2 CƠ SỞ LÝ THUYẾT 5
I MÔ TẢ ĐỀ TÀI 5
II CÁC KHÁI NIỆM VÀ KẾT QUẢ VẬN DỤNG LÝ THUYẾT TRONG ĐỀ TÀI 5
1 Chương trình khởi tạo đồ họa 5
2 Chương trình vẽ nút hình tròn 5
3 Chương trình xuất hiện giao diện Demo 6
4 Chương trình chọn màu ngẫu nhiên 8
5 Chương trình đoán màu 9
6 Chương trình xuất kết quả 10
7 Chương trình xem đáp án 11
8 Chương trình xuất vị trí đúng 11
9 Chương trình thực thi Demo 11
Chương 3 ỨNG DỤNG 17
I MÔ HÌNH CỦA CHƯƠNG TRÌNH CHÍNH 17
II LƯU ĐỒ CỦA MỘT SỐ CHƯƠNG TRÌNH CON 18
1 Chương trình chọn màu ngẫu nhiên 18
2 Chương trình đoán màu 19
3 Chương trình xuất kết quả 20
4 Chương trình xuất vị trí đúng 21
III GIỚI THIỆU VỀ CHƯƠNG TRÌNH 21
Chương 4 KẾT LUẬN 27
I KẾT QUẢ ĐẠT ĐƯỢC 27
II NHỮNG HẠN CHẾ 27
III HƯỚNG PHÁT TRIỂN 27
TÀI LIỆU THAM KHẢO 28
LỜI CẢM ƠN ! 29
Trang 5CHƯƠNG I : GIỚI THIỆU, MỤC TIÊU VÀ HƯỚNG
GIẢI QUYẾT
I GIỚI THIỆU CHUNG:
Giải trí là nhu cầu cần thiết của mọi người, trong thời đại công nghiệp thì nhu cầu giải trícàng trở nên cao hơn và làm thế nào để thoả mãn nhu cầu giải trí của người dùng nhưng khôngmất nhiều thời gian lại là một vấn đề Để đáp ứng nhu cầu này của người dùng thì người lậptrình đã nắm bắt thời cơ và nhu cầu này để viết ra những chương trình giải trí Và chương trìnhtrò chơi đoán màu cũng không nằm ngoài mục đích trên
II MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT
1 Mục tiêu cần đạt được
- Viết chương trình giải trí đáp ứng nhu cầu của người dùng
- Tăng khả năng lập trình của sinh viên
- Hoàn thành chương trình trò chơi theo đúng yêu cầu của đề tài
2 Hướng giải quết
Sử dụng những kiến thức về ngôn ngữ Cvà các ngôn ngữ lập trình có liên quan để viếtchương trình trò chơi đoán màu
Tham khảo những tài liệu có liên quan đến lập trình đồ họa trong C để hiểu sâu hơn về cách lậptrình này
Tham khảo những trò chơi có liên quan để giải quyết vấn đề
Trang 6CHƯƠNG II : CƠ SỞ LÝ THUYẾT
I MÔ TẢ ĐỀ TÀI
Trò chơi “Đoán màu” được thể hiện : Có từ 4 đến 7 màu, người chơi một lần chỉ đoán
4 màu, có 10 lần đoán Máy tính sẽ đánh giá mỗi lần đoán và cho biết số vị trí đoán đúng Sau
10 lần đoán máy tính sẽ cho kết quả người chơi thắng hay thua
Người chơi: Khi bắt đầu chơi chỉ xuất hiện 4 màu gồm có Đỏ, Xanh Dương, Xanh
Lá,Vàng Lúc đó người chơi chỉ cần chọn các phím chức năng tương ứng D(Đỏ), X(Xanhdương), G(Xanh lá) để chọn số màu mà người chơi cho là đúng Nếu sau 10 lần đoán, ngườichơi đưa ra kết quả trùng với đáp án mà máy tính chọn ngẫu nhiên thì người chơi đã thắngGame 4 màu Sau khi thăng Game 4 màu thì số màu sẽ tăng lên là 5 gồm có các màu Đỏ, XanhDương, Xanh Lá, Vàng, Xanh lơ, tương ứng với các phím chức năng D,X,G,V,L nếu bạn chọnđúng thì số màu sẽ tăng lên 6 và cứ thế cho đến khi xuất hiện màu thứ 7, nếu lần này bạn chọnđúng thì bạn là người chiến thắng hoàn toàn
Người chơi sẽ thua khi 10 lần đoán màu không đoán đúng lần nào
II CÁC KHÁI NIỆM VÀ KẾT QUẢ VẬN DỤNG LÝ THUYẾT TRONG ĐỀ TÀI
1 Chương trình khởi tạo đồ họa
-void ktdh(): Mục đích là khởi động hệ thống đồ họa gồm cấu trúc như sau:
initgraph(&mh,&mode,"c:\\tc\\bgi");
+&mh cho biết màng hình sử dụng trong chương trình
+&mode cho biết Mode sử dụng trong chương trình
+"c:\\tc\\bgi" là xâu ký tự chỉ đường dẫn đến thư mục chứa tập tin điều khiển đồ họa
2. Chương trình vẽ nút hình tròn.
a Void nut(int x,int y,int m)
Chương trình này được định nghĩa như sau: Xuất hiện các hình tròn màu khi chúng tachọn những phím chức năng như D,X,G,V và xuất hiện đáp án và kết quả khi chúng tachọn chúng Kết quả vận dụng lý thuyết là đoạn code của chương trình này như sau:
void nut(int x,int y,int m)
Trang 7Chương trình này được định nghĩa như chương trình trên, nhưng lúc này chỉxuất hiện những hình tròn không có tô màu nó chỉ là hình tròn xuất hiện sẵn để baotròn nhứng hình tròn đã được tô màu Kết quả vận dụng lý thuyết là đoạn code củachương trình này như sau:
void nut1(int x,int y,int m) {
void nut3(int x,int y,int p)
{ setfillstyle(9,1);
setcolor(p);
circle(x,y,a);
floodfill(x,y,p);
}
3 Chương trình xuất hiện giao diện Demo
Chương trình này được định nghĩa như sau: Xuất hiện khung hình chữ nhật dùng thểhiện giao diện DEMO , chủ yếu dùng những nút hình tròn như giải thích ở trên để vẽ,
và xuất một số chú thích để người chơi được dễ dàng nắm bắt được cách chơi và thựchiện những thao tác khi bắt đầu trò chơi Kết quả vận dụng lý thuyết là đoạn code củachương trình này như sau:
void venut(){
Trang 8outtextxy(290,75,"BANG CHON MAU");
outtextxy(50,120,"ENTER : BAT DAU");
outtextxy(50,135,"B: XEM DAP AN");
outtextxy(50,150,"ESC: THOAT");
outtextxy(50,165,"GVHD: HUYNH HUY TUAN");
outtextxy(50,180,"SVTH: HUYNH VAN MAY");
Trang 94 Chương trình chọn màu ngẫu nhiên:
Chương trình này được định nghĩa như sau: đây là đoạn chương trình do máy tính tựđộng chọn ra 4 số màu ngẫu nhiên nhờ vào hàm (random) , nếu số màu mà ta chọntrùng vói số màu do máy tính ngẫu nhiên chọn ra thì bạn sẽ thắng Game Đây là mộttrong những đoạn code quan trọng nhất Kết quả vận dụng lý thuyết là đoạn code củachương trình này như sau:
void chonmaungaunhien(int somau,int dm[]){
int i;
{ randomize();
i=0;
for(i=1;i<=4;i++)
{ switch(random(somau))
{ case 0: dm[i]=1;break;
} }
Trang 105 Chương trình đoán màu
Chương trình này được định nghĩa như sau:là đoạn chương trình giúp người chơi chọnmàu trực tiếp từ bàn phím Với chức năng của hàm “Toupper” có chức năng dịch ký tựhoa do chúng ta nhập từ bàn phím, sau đó xuất số nút ra giao diện DEMO Kết quảvận dụng lý thuyết là đoạn code của chương trình này như sau:
void doanmau(int dem,int color1[ ]){
{ mau=toupper(getch());
sai=0;
switch (mau)
{ case 'D': color1[i]=1;m=4;break;
nut(x+k,y+dem*25,m);
k=k+25;
} }
6 Chương trình xuất kết quả
Trang 11Chương trình này được định nghĩa như sau:là đoạn chương trình xuất kết quả khingười chơi đã đoán xong 10 lần, xuất kết quả ra chơi người chơi biết mình thắng haythua Kết quả vận dụng lý thuyết là đoạn code của chương trình này như sau:
if(kq[i]==1)
{ nut(480+k,100,4);
k=k+25;
} if(kq[i]==2)
{ nut(480+k,100,2);
k=k+25;
} if(kq[i]==3)
{ nut(480+k,100,14);
k=k+25;
} if(kq[i]==4)
{ nut(480+k,100,1);
k=k+25;
} if(kq[i]==5)
{ nut(480+k,100,3);
k=k+25;
} if(kq[i]==6)
{ nut(480+k,100,5);
k=k+25;
}
Trang 12{ nut(480+k,100,15);
k=k+25;
} }
}
7. Chương trình xem đáp án.
Chương trình này tương tự như chương trình xuất kêt quả nhưng nó khác ở chổ là vị tríxuất hiện trên nền DEMO Đoạn code tương tự như đoạn code xuất kết quả
8. Chương trình xuất số vị trí đúng của màu
Chương trình này được định nghĩa như sau : là đoạn chương trình số vị trí đúng củacác mà khi ta thực hiện chọn màu từ bàn phím Kết quả vận dụng lý thuyết là đoạncode của chương trình này như sau:
void xuatvitridung(int d,int vt){
case 3:outtextxy(437,97+vt*25,"3"); break;
case 4:outtextxy(437,97+vt*25,"4"); break;
default: break;
}
}
9. Chương trình thực thi Demo.
Chương trình này được thực thi lại các chương trình, gọi ra và thực hiên số công việc
và điều kiện của đề tài Kết quả vận dụng lý thuyết là đoạn code của chương trình nàynhư sau:
Trang 13delay(30); // cho thoi gian hien thi
{ setcolor(4); //mau chu do outtextxy(45,27,"SO MAU : 5");
setcolor(14);
nut1(50,50,11);nut1(80,50,12);nut1(110,50,12);nut1(140,50,12);
nut1(170,50,12);
nut(50,50,4);nut(80,50,1); nut(110,50,2);nut(140,50,14);nut(170,50,3); nut2(50,70,3);nut2(80,70,3);nut2(110,70,3);nut2(140,70,3);
nut2(170,70,3);
outtextxy(47,67,"D");outtextxy(77,67,"X");outtextxy(107,67,"G");
outtextxy(137,67,"V");outtextxy(160,67," L");
} if(somau==6)
Trang 14{ outtextxy(45,27,"SO MAU : 6");
setcolor(14);
nut1(50,50,11);nut1(80,50,12);nut1(110,50,12);nut1(140,50,12);
nut1(170,50,12);nut1(200,50,12);
nut(50,50,4);nut(80,50,1); nut(110,50,2);nut(140,50,14);nut(170,50,3); nut(200,50,5);
{ outtextxy(45,27,"SO MAU : 7");
if(ch=='B') {
xemkq(dm);
} else
if(ch==27) exit(1);
if(ch==13) printf("");
}
Trang 15do
{ ch=toupper(getch());
if(ch=='B') {
xemkq(dm);
} doanmau(dem,color1);
settextstyle(0,0,2);
setcolor(12);
if(dung==4) / {
Trang 16setcolor(14);setfillstyle(1,14);circle(320,330,25);floodfill(320,330,14); setcolor(3);setfillstyle(1,3);circle(345,320,25);floodfill(345,320,3);
setcolor(5);setfillstyle(1,5);circle(365,290,25);floodfill(365,290,5);
setcolor(10);setfillstyle(1,10);circle(325,310,25);floodfill(325,310,10); getch();
exit(1);
}
Trang 17else {
settextstyle(1,0,2);
setcolor(14);
chu3d(200,350,4,5,10," TIEC QUA BAN DA DOAN SAI !");
outtextxy(150,400," Nhan phim bat ky de choi lai hoac ESC de thoat");
Trang 18II LƯU ĐỒ CỦA MỘT SỐ CHƯƠNG TRÌNH CON
1 Chương trình Chọn màu ngẫu nhiên
GVHD : TH.S ……… …… SVTH : ……… TRANG 18
Đ
S BEGIN
THỰC HIỆN CÔNG VIỆC
END
LỰA CHỌN MENU NHƯ HƯỚNG DẪN
6 5 4 3
1
2 0
Dm[i]=7Dm[i]=6
Dm[i]=5Dm[i]=4
Dm[i]=3Dm[i]=2
Dm[i]=1
Trang 192 Chương trình đoán màu
GVHD : TH.S ……… …… SVTH : ……… TRANG 19
D
VG
WS
Mau=toupper(getch())
Sai=0
Nut(x+k,y+dem*25,m)
Trang 203 Chương trình xuất kết quả
Nut(480+k,100,1) K=k +25 Nut(480+k,100,3)K=k +25 Nut(480+k,100,5)K=k +25
Nut(480+k,100,15) K=k +25
i=1Begin
Đ
ĐKq[i]==3
SĐ
Kq[i]==1
i ≤ 4
Nut(480+k,100,14) K=k +25 Nut(480+k,100,2)
K=k +25
Trang 214.Chương trình xuất vị trí đúng
01
Outtextxy(437,9 7+vt*25,”2”)
Outtextxy(437,9 7+vt*25,”3”)
Outtextxy(437,9 7+vt*25,”4”)
Trang 22III GIỚI THIỆU VỀ CHƯƠNG TRÌNH
Trò chơi đoán màu là trong những trò chơi trí tuệ, giúp cho mọi người giải trí, thư giản trong những lúc căng thẳng Để khởi động chương trình trò chơi máy bạn phải cài chương trình Turbo C, sau đó bạn vào thư mục niên luận chay file DEMO.EXE (chú ý file DEMO.EXE
phải có folder BGI đi kèm cùng một cấp thư mục để chạy ổn định chương trình đồ họa) hoăc bạn chạy file DEMO.CPP với yêu cầu là bạn phải cài Turbo C được cài vào ổ đĩa C, đường dẫn để gọi chương trình đồ họa như sau C:\TC\BGI Khi bạn chạy được file demo thì giao diện đầu tiên của chương trình như sau:
Trang 23Để biết về trò chơi bạn chọn GIỚI THIỆU trên thanh Menu như (hình 1),
giao diện như (hinh 2 ) sau:
(Hình 1)
(Hình 2)
Trang 24Để biết được cách chơi như thế nào bạn chọn HƯỚNG DẪN trên thanh Menu của (hình 1),giao diện như (hình 3) sau:
Để bắt đầu trò chơi bạn chọn CHẠY DEMO trên thanh Menu của (hình 1), có giao diện như (hinh 4) sau:
(Hình 3)
(Hình 4)
Trang 25Khi xất hiện giao diện trò chơi, để bắt đầu chơi bạn nhấn Enter để chọn màu nếu bạn chọn đúng sẽ xuất hiện giao diện (hình 5) sau:
Khi mới bắt đầu chơi hoặc trong quá trình chơi bạn muốn xem đáp án bạn
nhấn phím B Chú ý :nếu khi bạn nhấn Enter để bắt đầu chọn màu thì bạn
không thể xem đáp án ngay được mà bạn phải đợi chọn hết bốn màu trong một lần chọn thì bạn mới xem được Giao diện khi bạn bấm phím B như (hình 6) sau:
(Hình 5)
(Hình 6)
Trang 26Nếu khi xuất hiện số màu lên 7 mà bạn vẫn đoán đúng thì bạn là người chơi thắng cuộc, khi đó xuất hiện 2 giao diện như (hình 7),(hình 8) sau:
(Hình 7)
(Hình 8)
Trang 27Nếu trong quá trình chơi bạn chỉ đoán sai bất cứ lần nào của số màu thì trò
chơi sẽ kết thúc, khi đó bạn là người thua cuộc, gồm 2 giao diện như (hình 9),
(hình 10) sau:
(Hình 9)
(Hình 10)
Trang 28CHƯƠNG IV : KẾT LUẬN
I NHẬN XẾT KẾT QUẢ ĐẠT ĐƯỢC
Cơ bản hoàn thành các yêu cầu đặt ra
Về giao diện Demo : Giao diện thân thiện với người dùng, đặc biệt có thanh Menu để tùy chọn có giới thiệu, hướng dẫn cụ thể về trò chơi, đẻ giúp người chơinắm bắt được một cách tốt nhất
Tăng vốn kiến thức về lập trình của Em Cơ bản đã biết nhiều về đồ họa trong C.Đây là loại trò chơi có thể dùng để giải trí trong những lúc căng thẳng
II NHỮNG HẠN CHẾ
Đây là niên luận đầu tiên của chúng em nên cũng gặp rất nhiều khó khăn, tuy
cơ bản đã hoàn thành được yêu cầu đề ra nhưng không tránh khỏi những hệ chế Sau đây là số hạn chế do Em nhận thấy:
Trong quá trình chơi khi người chơi sau 10 lần đoán nếu đoán sai thì trò chơi sẽ kết thúc ngay, không cho phép chơi lại, nếu cho phép người chơi nhiều lân khi đã đoán sai thì chương trình sẽ báo lỗi đồ họa đây là vấn đề
III HƯỚNG PHÁT TRIỂN
Sẽ hoàn thành chương trình trò chơi một cách tốt nhất không còn một sai xót nào,năng cấp thêm một số chức năng trong chương trình như âm thanh, hình ảnh
Sử dụng hàm con chuột khi chọn màu để đoán
Có thể viết chương trình bằng các ngôn ngữ khác như Visua, Flash để chương trình có giao diện đẹp hơn
Trang 29TÀI LIỆU THAM KHẢO
1. Ths Ngô Đức Lưu - Ths Huỳnh Huy Tuấn
LẬP TRÌNH CĂN BẢN A.
2. Huỳnh Tấn Dũng - Hoàng Đức Hải
BÀI TẬP NGÔN NGỮ C (từ A đến Z) - Nhà xuất bản Lao Động Xã Hội.
3 Nguyễn Văn Linh - Lâm Hoài Bảo - Dương Văn Hiếu
LẬP TRÌNH CĂN BẢN A - Khoa CNTT và Truyền Thông, ĐH Cần Thơ.
4 Nguyễn Văn Linh - Trần Cao Đệ - Trương Thị Thanh Tuyền – Lâm Hoài Bảo –
Phan Huy Cường – Trần Ngân Bình
CẤU TRÚC DỮ LIỆU –Đại Học Cần Thơ -12/2003