1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án Lập trình căn bản Đại học Cần Thơ Đề tài Game Snake (Rắn săn mồi)

32 2K 18

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 511,06 KB
File đính kèm BÁO CÁO ĐỒ ÁN LẬP TRÌNH CĂN BẢN.rar (477 KB)

Nội dung

đồ án lập trình căn bản đại học cần thơđồ án lập trình cđồ án lập trìnhđại học cần thơđồ án lập trình căn bảnMỤC LỤCI. GIỚI THIỆU ĐỀ TÀI:.............................................................................................................31. Lí do chọn đề tài..............................................................................................................32. Mục tiêu..........................................................................................................................33. Yêu cầu...........................................................................................................................3 4. Giới hạn..........................................................................................................................35. Hướng giải quyết............................................................................................................3II. THIẾT KẾ...............................................................................................................................31. Giải thuật lưu đồ..............................................................................................................32. Chương trình chi tiết.....................................................................................................15III. KẾT LUẬN..........................................................................................................................291. Kết quả đạt được...........................................................................................................29 2. Ưu điểm........................................................................................................................30 3. Hạn chế cần khắc phục.................................................................................................30IV. TÀI LIỆU THAM KHẢO..................................................................................................30I. GIỚI THIỆU ĐỀ TÀI1. Lí do chọn đề tàiHoạt động về game đã xuất hiện ở Việt Nam rất lâu và nó bắt nguồn từ game trên điện thoại và dần dần xuất hiện trên máy tính . Càng ngày nó càng thu hút người chơi và trở thành một bộ môn thể thao điện tử của nước ta. Và Snake cũng không ngoại lệ cũng từng là 1 game đình đám cả trên điện thoại lẫn đến máy tính. Vì thế chúng em chọn nó để làm đề tài cho đồ án này.2. Mục tiêu Mô phỏng trò chơi Snake (Rắn săn mồi) trên phần mềm Dev C++ bằng ngôn ngữ C.3. Yêu cầuGồm 8 công việc:1. In ra số lần số lần đã chơi game khi mở chương trình. 2. Tạo menu game.3. Khởi tạo , hiển thị con rắn và thức ăn.4. Điền khiển con rắn theo các hướng (lên , xuống, qua trái , qua phải).5. Xử lí tình huống rắn chạm biên và tự ăn chính mình.6. Xử lí tốc độ và chiều dài của rắn khi ăn được hoa quả.7. Trở về menu game khi người chơi thua cuộc.8. Hiển thị số điểm người chơi sau mỗi lần ăn được thức ăn và mỗi màn chơi. 4. Giới hạnMột tuần lên ý tưởng và thực hiện.Số lượng thành viên trong nhóm: 8 người.5. Hướng giải quyếtCác thành viên ôn lại các kiến thức đã học trên lớp.Tham khảo tài liệu từ internet, giáo trình, sách tại trung tâm học liệu, thư viện khoa,...Lên kế hoạch họp nhóm và phân công công việc cụ thểII. THIẾT KẾ1. Giải thuật lưu đồ1.1. Chương trình chính 1.2. Chương trình con1.2.1. Bộ đếm 1.2.2. Logo 1 1.2.3. Logo 2 1.2.4. Hiển thị 1.2.5. Control1.2.6. Xử lí   1.2.7. Menu 1.2.8. int main 1.2.9. About 2. Chương trình chi tiết Do an lap trinh ngon ngu C: Game SNAKE Nhom 4: TEN MSSV LOP Tran Huu Nghi B1609401 TN16Y8A1 Pham Van Phúc B1609409 TN16Y8A1 Ho Tuan Kiet B1609171 TN16Y5A2 Le Khanh Linh B1609394 TN16Y8A1 Nguyen Ngoc Tung B1609503 TN16Y8A2 Nguyen Trong Khanh B1609391 TN16Y8A1 Luu Thien Phat B1609476 TN16Y8A2 Nguyen Du Nguyen Chuong B1609441 TN16Y8A2 ==========================INCLUDE LIBRARY=========================includeincludeincludeincludeinclude=========================KHAI BAO HANG SO=========================define consoleWidth 90define consoleHeight 29define MAX_LIST 3=========================KHAI BAO HAM SCREEN=====================void clrscr() XOA MAN HINH{CONSOLE_SCREEN_BUFFER_INFOcsbiInfo; HANDLEhConsoleOut;COORDHome = {0,0};DWORDdummy;hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(hConsoleOut,csbiInfo);

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ

BÁO CÁO ĐỒ ÁN MÔN: LẬP TRÌNH CĂN BẢN

Nhóm 05

ĐỀ TÀI: GAME SNAKE (RẮN SĂN MỒI)

Trang 2

MỤC LỤC

TÀI: 3

1 Lí do chọn đề tài 3

2 Mục tiêu 3

3 Yêu cầu 3

4 Giới hạn 3

5 Hướng giải quyết 3

II THIẾT KẾ 3

1 Giải thuật lưu đồ 3

2 Chương trình chi tiết 15

III KẾT LUẬN 29

1 Kết quả đạt được 29

2 Ưu điểm 30

3 Hạn chế cần khắc phục 30

IV TÀI LIỆU THAM KHẢO 30

Trang 3

I GIỚI THIỆU ĐỀ TÀI

1 Lí do chọn đề tài

Hoạt động về game đã xuất hiện ở Việt Nam rất lâu và nó bắt nguồn từ game trênđiện thoại và dần dần xuất hiện trên máy tính Càng ngày nó càng thu hút người chơi và trởthành một bộ môn thể thao điện tử của nước ta Và Snake cũng không ngoại lệ cũng từng là 1game đình đám cả trên điện thoại lẫn đến máy tính Vì thế chúng em chọn nó để làm đề tài cho

1 In ra số lần số lần đã chơi game khi mở chương trình

2 Tạo menu game

3 Khởi tạo , hiển thị con rắn và thức ăn

4 Điền khiển con rắn theo các hướng (lên , xuống, qua trái , qua phải)

5 Xử lí tình huống rắn chạm biên và tự ăn chính mình

6 Xử lí tốc độ và chiều dài của rắn khi ăn được hoa quả

7 Trở về menu game khi người chơi thua cuộc

8 Hiển thị số điểm người chơi sau mỗi lần ăn được thức ăn và mỗi màn chơi

4 Giới hạn

-Một tuần lên ý tưởng và thực hiện

-Số lượng thành viên trong nhóm: 8 người

5 Hướng giải quyết

Trang 4

printf ("Game Over!!Click gotoXY(92,15)

đúng

sai đúng

Kết thúc return 0;

Snake snake; HoaQua hq;

HienThi(snake,hq,score);Control(snake

);

Trang 6

1.2 Chương trình con

1.2.1 Bộ đếm

if(a>0||a<8) int i=1

printf("\n\n\n\n\n\n>>The Snake Game has run %d times!\n",b)

Trang 7

1.2.2 Logo 1

LOGO 1 Nocursortype();

printf(“text”);

Trang 8

printf("%c",196);

i < 120

i = 0 TextColor(7);

Trang 9

i < snake.n

printf("%c%c",219,219);

gotoXY (snake.dot[0].x, snake.dot[0].y); TextColor(13); printf("%c%c",219,219); gotoXY(hq.td.x,hq.td.y) TextColor(14);

Trang 10

i i > 0

int i = snake.n - 1

ĐÚNG

SAI

Trang 13

hq.td.y = rand() % consoleHeight;

Trang 14

1.2.7 Menu

Trang 16

int i=0

i<120 i++

printf("%c",196);

Trang 17

2 Chương trình chi tiết

/* Do an lap trinh ngon ngu C: Game SNAKE

Nhom 4:

TEN MSSV LOP

Tran Huu Nghi B1609401 TN16Y8A1

Pham Van Phúc B1609409 TN16Y8A1

Ho Tuan Kiet B1609171 TN16Y5A2

Le Khanh Linh B1609394 TN16Y8A1

Nguyen Ngoc Tung B1609503 TN16Y8A2

Nguyen Trong Khanh B1609391 TN16Y8A1

Luu Thien Phat B1609476 TN16Y8A2

Nguyen Du Nguyen Chuong B1609441 TN16Y8A2

//=========================KHAI BAO HAM SCREEN=====================

void clrscr() //XOA MAN HINH

{

CONSOLE_SCREEN_BUFFER_INFO csbiInfo;

Trang 18

int whereX() //GET X

Trang 19

file=fopen("D:\\SnakeProject\\BODEM.dat","ab"); //TAO RA FILE DATA:

BODEM.DAT TRONG O DIA E ; ab: NOI VAO TAP TIN NHI PHAN

fseek(file,0,SEEK_END); // THIET LAP VI TRI FILE TOI OFFSET DA CHO: TEN,

SO BYTE DE OFFSET, VI TRI OFFSET THEM VAO: PHAN CUOI FILE

b=ftell(file)/sizeof(int); //TRA VE VI TRI FILE HIEN TAI

Trang 20

printf("\n ssssssssssssssss nnnnnn nnnnnn aaaaaaaa kkkkkk kkkkkk ssssssssssssssssss ");

TextColor(12);

printf("\n ssssssssssssssssss nnnnnnn nnnnnn aaaaaaaaaa kkkkkk kkkkkk ssssssssssssssssss ");

Trang 21

TextColor(13);

printf("\n ssssssssssssssss nnnnnn nnnnnn aaaaaaaa kkkkkk kkkkkk ssssssssssssssssss ");

Sleep(50);

TextColor(12);

printf("\n ssssssssssssssssss nnnnnnn nnnnnn aaaaaaaaaa kkkkkk kkkkkk ssssssssssssssssss ");

Sleep(50);

TextColor(8);

Trang 22

printf("\n ssssss nnnnnn nnnnnnnnn aaaaaa aaaaaa kkkkkk kkkkkkssssss ");

Trang 23

printf("%c",196);

}TextColor(10);

printf("\n\n\t\t\t\t\t The Snake Game is written by 5Team!"); // THONG CO BAN CUA GAME: NHOM LAP TRINH, TEN GAME, CHUONG TRINH HO TRO, NGUOI HUONG DAN

printf("\n\n\t\t\t\t\t\tThe members of 5Team:"); // THONG TIN THANH VIEN NHOM LAP TRINH

Trang 24

printf("\n\t\t\t\t\t\tNguyen Du Nguyen Chuong\n");

snake.n = 3; // KHOI TAO CON RAN BAN DAU CO 3 DOT

snake.dot[0].x = 46; //VI TRI BAN DAU CUA CON RAN TREN TRUC X

snake.dot[0].y = 13; //VI TRI BAN DAU CUA CON RAN TREN TRUC X

snake.tt = RIGHT; //CON RAN DI CHUYEN SANG PHAI KHI CHAY CHUONG TRINH

hq.td.x = 62; //TOA DO BAN DAU CUA THUC AN

hq.td.y = 23;

}

void HienThi (Snake snake, HoaQua hq,int &score) //HIEN THI CON RAN VA THUC AN LEN MAN HINH

Trang 25

//**************************DIEU KHIEN CON RAN****************************void Control (Snake &snake)

int key = _getch();

if (key == 'A' || key == 'a') //DIEU KHIEN DAU CON RAN

Trang 26

// tra ve -1 neu thua game

int XuLy (Snake &snake, HoaQua &hq, int &Delay, int &score)

{

if (snake.dot[0].x < 0 || snake.dot[0].x >= 90 || // XU LY KHI RAN CHAM BIEN

snake.dot[0].y < 0 || snake.dot[0].y >= 30)

return -1;

for (int i = 1; i < snake.n; i++)

if (snake.dot[0].x == snake.dot[i].x && // XU LY KHI RAN CHAM THAN

hq.td.x = rand() % consoleWidth; //SINH RA THUC AN MOI KHI THUC AN

CU BI CON RAN AN O MOT VI TRI KHAC

Trang 27

Delay -= 5;

}return 0;

int score=0; // XU LY DIEM

int Delay = 250; // TOC DO BAN DAU CUA CON RAN(Ms)

}Sleep (Delay);

}

Trang 28

logo2();

}char* menu[]={"NEW GAME" , "ABOUT" , "EXIT"};

int pointer = 0; //CON TRO

if(pointer == i){

Nocursortype();

TextColor(14);

printf("\n\t\t\t\t\t\t\t",menu[i]);

}else{

TextColor(7);

printf("\n\t\t\t\t\t\t\t",menu[i]);

}printf("%s\n",menu[i]);

}bodem();

//XU LY KHI CLICK TU BAN PHIM

while(1){

if(kbhit()) //PHAT HIEN NHAN VAO PHIM BAT KY, LUU LAI DE

XU LY

{

char key = getch();

if(key==72) //UP{

if(pointer>0){

Trang 29

pointer = MAX_LIST-1;

}break;

}if(key==80) //DOWN{

if(pointer < MAX_LIST){

++pointer;

}else{

pointer = 0;

}break;

}if(key==13) //ENTER{

switch(pointer){

case 2:

enter = -1;

break;

default:

Trang 30

printf("\n\n\t\t\t\tTHE MEMBERS OF THE 5TEAM WERE HAPPY TO

BE ABLE TO CREATED IT!");

}}

//=======================THUC HIEN CHUONG TRINH====================int main()

- Hoàn thành 7/8 công việc đã đề ra:

+In ra số lần số lần đã chơi game khi mở chương trình

+Tạo menu game

+Khởi tạo , hiển thị con rắn và thức ăn

+Điền khiển con rắn theo các hướng (lên , xuống, qua trái , qua phải).+Xử lí tình huống rắn chạm biên và tự ăn chính mình

+Xử lí tốc độ và chiều dài của rắn khi ăn được hoa quả

+Trở về menu game khi người chơi thua cuộc

- Củng cố các kiến thức về chương trình con, vòng lặp, lệnh điều kiện, kiểu cấu

Trang 32

3 Hạn chế cần khắc phục (Nhược điểm)

-Chưa thiết lập được chế độ tiếp tục chơi màn cũ cho game khi mở lại chươngtrình

-Chưa thiết lập được chế độ Pause (tạm dừng) khi đang chơi

-Chưa tính được số điểm người chơi đạt được sau mỗi lần ăn hoa quả và sau mỗimàn chơi

IV TÀI LIỆU THAM KHẢO

[1] Nguyễn Văn Linh, Giáo trình Tin Học Đại Cương A, Khoa Công Nghệ Thông Tin,

Đại học Cần Thơ, 1991

[2] Nguyễn Đình Tê, Hoàng Đức Hải, Giáo trình lý thuyết và bài tập ngôn ngữ C; Nhà

xuất bản Giáo dục, 1999

[3] Nguyễn Cẩn, C- Tham khảo toàn diện, Nhà xuất bản Đồng Nai, 1996.

[4] Võ Văn Viện, Giúp tự học Lập trình với ngôn ngữ C, Nhà xuất bản Đồng Nai, 2002 [5] Trần Đan Thư, Nguyễn Thanh Phương, Đinh Bá Tiến, Trần Minh Triết, Nhập môn

lập trình, Nhà xuất bản Khoa học và Kỹ thuật, 2011

[6] www.lms.cit.ctu.edu.vn

Ngày đăng: 26/09/2018, 15:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w