C语言课程设计报告——贪吃蛇源程序

上传人:无*** 文档编号:41338255 上传时间:2021-11-19 格式:DOC 页数:17 大小:91KB
返回 下载 相关 举报
C语言课程设计报告——贪吃蛇源程序_第1页
第1页 / 共17页
C语言课程设计报告——贪吃蛇源程序_第2页
第2页 / 共17页
C语言课程设计报告——贪吃蛇源程序_第3页
第3页 / 共17页
点击查看更多>>
资源描述
膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅蒆薈螂芄蒅蚀羈膀薄螃螀肆薃蒂羆羂腿薅蝿袈腿螇羄芇膈蒇袇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃芄蒃袄腿芃薆蚆肅芃蚈袂羁节蒈蚅羇芁薀羀芆芀蚂螃膂艿螄罿肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈羅膄莅薁螈肀莄蚃肃羆莃螅袆芅莂蒅虿膁莂薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃 C语言课程设计报告贪吃蛇源程序课 程 设 计 (小游戏贪吃蛇的程序设计报告) 设计人:刘兵飞班级:计11-1 学号:21号 2011年12月28号目 录 一:概述 1:研究背景及意义2:设计的任务与需要知识点 3:具体完成设计2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试 1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七:结束语 八:程序清单 九:参考文献一 概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C语言技术为基础,使用Turbo C+3.0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1.1 研究的背景及意义随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的和那个发,技术和工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法和步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习和将来实际软件开发打下坚实的基础。 1.2 设计的任务和需要的知识点1.2.1 课程设计主要完成的任务1). 通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。2) 有同步播放动画,声音效果。3) 设计好数组元素与蛇,食物的对应关系。4) 随机产生食物。5) 有分数统计,排行榜,分数存储等功能。通过此次课程设计,希望使读者能更深入的理解和掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题和解决问题的能力。1.2.2需要掌握和运用的知识点1.2.3本次课程设计需要掌握和运用如下的知识点:1) 数组的应用。2) 全局变量的使用。3) 按键处理。4)结构体的应用。5)图形,音乐和动画的有关知识。6)随即函数的使用。7)文件的基本出操作。8) 结构化,模块化的设计方法。1.3具体完成的设计操作方法2.2.1.进入游戏2.2.2.游戏界面2.2.3.游戏操作2.2.4.游戏结束三 总体设计确定贪吃蛇游戏体系结构,给出总体模块结构图,确定程序的主要函数及之间的调用关系,同时设计蛇与游戏者等的数据结构。3.1 模块划分本程序采用结构化程序设计的方法,按照自顶向下,逐步细化的方法对要解决的问题进行逐层分解。首先画出顶层模块,即主控模块,之完成对下层模块的调用功能,即调用其他的功能模块;接着,按需求分析中的功能需求设计第一层模块,有音乐动画,图形驱动,画主界面,游戏过程,结束处理,退出等第6个主要功能;接着,画出第二层模块。总体模块结构如图6-1所示。 3.1.1. 主控模块。3.1.2. 动画音乐模块3.1.3. 画主界面模块3.1.4. 游戏过程模块3.1.5. 游戏结束处理模块3.1.6. 读取记录模块3.1.7. 成绩排序模块3.1.8. 写入文件模块3.1.9. 排行榜模块3.1.10. 退出 3.2 总体数据结构设计设计思路:测序的关键在于表示蛇的图形及蛇的移动。用一个小局限性方块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头业用同样的一节小矩形方块表示移动时必须从蛇可以上向前爬行,档案下有效方向键后,应先确定蛇头的位置,而后蛇的身体虽蛇头移动,图形的实现是从身体新位置开始画出蛇。这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一节蛇身,即看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失意识画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。下面介绍贪吃蛇游戏程序的主要数据结构。3.2.1 食物与蛇的数据结构表示食物与蛇的矩形块设计为10*10个像素单位,食物的基本数据域为它所出现的位置,用X和Y坐标表示,则矩形块用函数RECTANGLE(X,Y,X+10,Y+10)或RECTANGLE(X,Y,X+10,Y-10)可以画出。由于每次只出现一个食物,所以设定YES表示是否需要出现食物。YES=1表示没有食物或食物已经被蛇吃掉,需要画出食物。放置食物后,置YES=0。蛇的一节身体为一个矩形块,表示矩形块只需左上角点坐标(X,Y)。由于在游戏过程中蛇的身体不断增长,需用数组存放每节坐标,最大设定为N=200,NODE表示当前节数。DIRECTION是保存蛇的移动方向的变量,其值可为1、2、3、4之一,分别表示右、左、上、下的方向。LIFE是表示生命的变量,LIFE=0表示蛇活着,一旦LIFE=1,一旦LIFE=1,表示蛇死,结束游戏。#define N 200Struct Food int x;int y;Int yes; food;Struct Snake int xN;Int yN;Int node;Int derection;Int life; snake;3.2.2 排行榜中优胜者的数据结构排行榜主要记录优胜者的姓名和成绩。为了存放排行榜信息,可定义如下的结构体类型,其中字符数组name成员存放优胜者的姓名,整型变量score成员存放优胜者的成绩。Struct person char name20;Int score; ;3.2.3 其他全局变量的定义 Struct person per5;Int score=0;Int gamespeed=400;3.2.4 符号常量的宏定义 #define LEFT 0x4b00;#define RIGHT 0x4d00;#define DOWN 0x5000;#define UP 0x4800#define ESC 0x011b#define FILENAME 四. 详细设计根据总体设计的模块功能和结构,完成所承担的程序模块的算法设计。给出每个模块的详细的算法,算法分别用传统流程图和文字说明来描述。4.1 主控模块main函数主函数是程序的主控模块。首先初始化图形系统,然后使用drawsnow函数播放动画和声音,接着调用init函数初始化图形系统,之后调用drawk函数画出游戏开始画面,在调用gameplay函数,即开始了游戏的具体过程,游戏结束后调用endplay函数进行游戏结束处理;从文件中读取记录信息,排序,显示排行榜信息,最后关闭图形系统,结束程序。主控模块的流程图如图6-2所示。其中带有两个竖线的矩形框表示对自定义函数的调用。 4.2 绘制游戏开始界面drawk函数绘制游戏界面的函数的算法流程图如图6-3所示。 主界面就是一个封闭的围墙,用两个循环语句分别在水平方向和垂直方向输出连续的宽度和高的均为10个像素单位的距行小方块,围成封闭图形表示围墙,为了醒目,设置为淡青色,用函数setlinestyle设直线型宽度为3个像素,设置3个像素的围墙线,。最后,在界面的左上部输出游戏程序的版本信息,在右上部输出游戏成绩(score)和关(level)的表头。4.3 游戏具体过程gameplay函数该函数是游戏的核心部分。游戏具体过程gameplay函数的大致算法流程图如图6-4所示。下面对该算法不够详细的地方作进一步的描述。 4.3.1为防止食物总是出现在一个位置上,要设置随机数发生器的种子数,产生真正的随机数。由于还没有画出食物,并设置需要食物,并设置蛇活着。初始时,蛇只有蛇头和1节蛇尾,设置这2节坐标。设定蛇开始的爬行方向左右。4.3.2 随机确定食物位置由于蛇吃到食物的判断是蛇头的坐标和食物的坐标相等,所以要确保食物出现的位置在10的倍数位置上。先用两个带随机函数的表达式产生一个位于围墙循环确定蛇身的新坐标这里的难点是表示蛇的新位置并消除前一次的图形。采用的方法是每次移动的时候从最后一节开始到第二节,将前一节的坐标值赋给后一节的坐标,移动后只要把最后一节用背景色擦出即可,因为新位置0到n-1节还是要出现在画面上的。这里用一个for循环来确定蛇身的新坐标。4.3.4 吃到食物后的处理蛇吃到食物后,首先将食物擦除,即用背景色画出该食物,然后给蛇的节数加1,设置需要食物标志,是游戏成绩加10分,如果成绩达到50分的倍数,则给关数加1,并加快游戏速度。4.3.5 有按键判断蛇的方向这是一个游戏的结束处理木块ENDPLAY函数 游戏结束时,应该用ENDPLAY函数进行游戏结束处理,其算法流程图如图6-5所示 该块首先调用读取排行榜文件的记录,如果文件不2存在,则在READFILES函数中调用INITSCOREFILES函数建立该文件,然后再读出记录。其次,判断游戏者的成绩是否可以上排行榜。如果可以上榜,则画出淡蓝色矩形界面,在界面中输入游戏者姓名,对成绩进行赋值,然后调用 CompareScore 函数对记录排序,并调用 Writefiles 函数将记录写入排行榜帮文件;如果不能上榜,则直接在游戏界面输出不能上榜信息。最后,调用 pain_board 函数显示排行榜信息。 4.5函数void pain_board完成排行榜的绘制. 五. 程序的调试与测试调试与测试软件的目标就是发现并改正潜伏的错误。一个程序,必须经过认真的调试和测试,才能尽量减少错误、保证程序满足功能、性能需求,达到最初的设计、使用要求,从而保证程序的开发质量。详细设计完成后,就可以用C语言根据各个模块的算法来设计程序,每个模块都要设计成一个自定义函数。几个模块可以放在一起构成一个原函数程序文件,也可以一个模块构成一个源程序文件。原程序设计好后,输入到计算机中,并存储到磁盘上;然后对每个源程序文件都进行了独立编译和调试(具体代码可以参看程序清单);并针对不同的模块程序设计测试用例进行单元测试;最后,将几个分别开发的模块组装在一起,形成一个完整的程序,进行集成测试,从而发现并改正了程序程序中存在的一些潜藏的错误,并使程序的容错能力大大增强。5.1 动画与音乐的同步播放预期结果:片头在显示动画得同时播放音乐;按任意键后进入游戏主界面;进入游戏主界面后动画音乐同时停止。实际运行效果:满足和,不满足,即进入游戏后仍然播放片头音乐。错误分析:程序中使用循环播放动画,并在其循环体中插入发声函数以达到音乐和动画的同步。由于在结束动画时没有关闭扬声器,所以进入游戏界面后仍然发声。修改:在动画播放完后加一条“nosound();”语句将扬声器关闭,问题得到解决。修改后程序运行的实际效果与预期效果一致。 5.2 蛇的运行5.2.1 蛇撞到墙预期结果:蛇运行时如果撞到墙壁,则游戏结束。实际运效果:超出左右墙壁后程序结束,但超出上面墙壁后仍然运行,如图6-9所示。 错误分析:错误程序段在蛇运行中的条件判断语句中,其判断条件是:if(snake.x0<55| snake.x0>595),即少了上、下两个方向的判断。修改:在蛇的运行过程中添加两个逻辑表达式,判断蛇是否闯到上下的围墙。代码: If( snake.x0<55| snake.x0>595| snake.y0<55| snake.y0>455)修改后的程序运行结果与预期的结果一致。 5.2.2 蛇头闯到蛇身预期的结果:当蛇得头部与蛇身相撞时,游戏应当结束。实际运行效果:蛇头撞到蛇身时,程序并不终止。 错误分析:在蛇的运行判断的程序出错,其代码如下Fori=3;i<snake.node;i+) if(snake.xi=snake.x0&&snake.yi=snake.y0)snake.life=0;break;修改:将循环体中的snake.life=0改为snake.life=1;修改后的结果与预期结果一致。5.3 终止循环经过对各个模块的调试和单元测试并修改了错误后,将各个模块组装成一个系统,并进行集成测试。在集成的过程中发现了一些错误,比如全局变量重复定义、函数重复声明等,分别进行了改正。最后连续运行了5次,以便测试该游戏程序的功能、性能是否达到了预期的目标,并根据所使用的具体机器对蛇的爬行速度进行适当的调整。测试内容包括蛇的运行、分数、关数、排行榜及排序、文件存储、音乐动画等功能,情况均正常。 六. 结论通过2周的课程设计,在开发小组共同的努力下,终于完成了贪吃蛇游戏程序的开发任务。该游戏程序实现了用方向键控制蛇在围墙内爬行、随机产生食物、控制蛇吃掉食物并加分、控制游戏中闯关的数目和蛇的运行速度、实时显示得分和关数、结束时处理和显示排行榜等功能。该游戏程序具有界面友好、操作方便、控制准确和容错能力强等特点。这个贪吃蛇游戏还存在一些缺陷,还应该在如下几个方面加以改进。1)进入游戏后,到蛇死亡,只能玩一次就会退出程序。应加入多次游戏的控制能力。2)蛇的样子不美观,应将蛇头、蛇尾和蛇身进一步美化,使其更像真实的蛇。3)当分数达到400分时,蛇的速度变得非常快,一下子就撞到围墙上了,应适当控制蛇的速度和关数,以便使游戏更具有吸引力。七.结束语贪吃蛇游戏的编程练习思考数据结构:定义食物的坐标来控制它出现的位置,用一系列的函数时进行表示,比如用函数rectangle来画出矩形,用life变量的值表示蛇的生命,用direction变量的值表示蛇移动的方向等,还有用数组来存放蛇身各节的坐标,这些都让我们熟悉了对数组的操作,此外还熟悉了各种函数的应用。贪吃蛇的设计有很多帮助,学习编写贪吃蛇的游戏对掌握C语言的知识有很大的帮助。通过编程实践,还能拓展思路,让我们去寻找需要调用那些函数,怎样提高程序的质量等。 要写出好的程序,需要我们有扎实的基础,这样遇到一些基本算法的时候就会游刃有余了。在编程时我们要有丰富的想象力,不要拘泥与固定的思维方式,遇到问题的时侯要多想几种解决问题的方案。丰富的想象力是建立在丰富的知识基础上,所以我们要通过多个途径来帮助自己建立较丰富的知识结构。在编程是我们碰倒了很多的困难,这就需要我们多与别人交流。在编程的过程中,我们也发现有良好的编程风格是十分重要的,至少在时间效率上就体现了这一点。养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致,这些都是提高我们编程能力的要点。在进行课程设计的过程中我们也学到了许多别的东西。首先,我们学会了合作,要以别人的眼光看看问题,也许这样得到的会比各自得到的都要多;其次,我们学会了分工,分工是为了更好地合作,分工才能提高合作的效率;最后,我们学会了奋斗,我们相信,通过四年的学习,我们一定能写出更精彩的程序,将来会描绘出更精彩的人生。在这里,我们要感谢指导课程设计的张凤君老师,给予我们悉心的指导。老师多次询问编写进程,并为我们指点迷津,帮助我们开拓研究思路,精心点拨、热心鼓励。老师一丝不苟的工作作风,严谨求实的态度,踏踏实实的精神,不仅受我以文,而且教我做人,给以终生受益无穷之道。我还要感谢我们开发小组的其他同学,在设计中他们给我很大的帮助。正是由于我们团结协作,才顺利的完成了课程设计任务。八.程 序 清 单/*贪吃蛇游戏程序清单*/ #include<stdio.h>#include<string.h>#include<time.h>#include<bios.h>#include<graphics.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#define filename "c:person.dat" /*排行榜文件的文件全名*/#define esc 0x011b /*esc键*/#define n 200 /*蛇的最大节数*/#define left 0x4b00 /*左移方向键*/#define right 0x4d00 /*右移放向键*/#define down 0x5000 /*下移方向键*/#define up 0x4800 /*上移方向键*/*排行榜结构体*/struct personint score; /*游戏者分数*/char name20; /*游戏者姓名*/per5;/*小蘑菇结构体*/ /*自定义的函数声明*/void drawmogu(); /*动画音乐函数*/void readfiles(); /*从文件中读取记录信息*/void writefiles(struct person *) ; /*将纪录写入文件中*/ void initscorefiles(); /*初始化记录文件*/void comparescore(struct person); /*排行榜按分数进行排序*/ void endplay(); /*游戏结束处理函数*/void paihb(); /*绘制排行榜函数*/*输出欢迎词并播放声音函数*/void pr() int s15=0,100,150,200,250,300,250,150,100,250,350; setcolor(change/10);/*改变欢迎词颜色*/settextstyle(0,0,4);outtextxy(20,200,"WELCOME TO OUR GAME");/*输出欢迎词*/ sound(schange/10);/*使扬声器以括号int i;int sx62;selinestyle(SOLID_LINE,0,THICK_WIDTH);line(1,1,9,9);/*一次3行画出白色雪花的3条线*/line(0,5,10,5);line(9,1,1,9);save=malloc(200);/*在堆中申请200字节空间*/getimage(0,0,10,10,save);/*将雪花位图保存到save中*/ cleardevice();/*清屏*/randomize();/*设置随机种子数*/for(i=0;i<62;i+)sxi=(i+2)*10/*计算雪花位置的横坐标数组*/*以下的键控while循环控制播放音乐和下雪动画*/ while(!kbhit()/*如果未按键,执行循环体*/ Pr();/*调用Pr函数输出欢迎词并播放声音*/if(snownum!=100)snowsnownum.speed=2+random(5);i=random(62);snowsnownum.x=sxi;/*取横坐标*/snowsnownum.y=10-random(100);/*取纵坐标*/*循环放置snownum个雪花*/for(i=0;i<snownum;i+)putimage(snowi.x,snowi.y,save,COPY_PUT); delay(100);/*延迟100ms以便看到雪花*/cleardevice();/*清屏*/Pr(); /*调用Pr函数输出欢迎词并播放声音*/if(snownum !=100) snownum+;setfillstyle(SOLID_FILL,15);for(i=0;i<snownum;i+) /*循环画出snownum个雪花*/ snowi.y+=snowi.speed;putimage(snowi.x,snowi.y,save,COPY_PUT);if(snowi.y>500)snowi.y=10-random(200);change+;if(change=140) change=10;nosound(); /*关闭扬声器*/cleardevice();/*清屏*/*图像系统初始化函数*/void init(void) int gd=DETECT,gm;initgraph(&gd,&gm,"c:tc3BGI");cleardevice(); /*清屏*/*游戏开始界面,左上角坐标为(50,40),右下角坐标(610,460)的围墙*/ void drawk(void)int i;setcolor(BLUE);setlinestyle(SOLID_LINE,0,THICK_WIDTH); /*设置线性*/for(i=50;i<=600;i+=10) /*用循环画围墙*/setcolor(2*i+1);circle(i,40,5); /*画上边*/circle(i,451,5);circle(i,460,5); /*画下边*/ for(i=40;i<=450;i+=10)setcolor(2*i+1);circle(50,i,5); /*画左边*/circle(601,i,5);for(i=40;i<=460;i+=10)setcolor(2*i+1);circle(41,i,5); /*画右边*/circle(610,i,5);setcolor(LIGHTCYAN);setlinestyle(SOLID_LINE,0,THICK_WIDTH);outtextxy(20,5," GREEDY SNAKE GAMES ji 11_1"); /*输出版本*/ outtextxy(480,10,"score level "); /*输出此文本*/*玩游戏具体过程*/void gameplay(void)food.yes=1; /*0表示苹果已经存在,1表示需要出现新苹果*/snake.life=0; /*蛇活着*/int level=1; /*记录游戏等级*/char buffer10; /*字符数组用于转换整形数据*/randomize(); /*设置随机数的种子数*/snake.direction=1; /*方向向右*/snake.x0=110;snake.y0=100; /*蛇头坐标初值*/snake.x1=100;snake.y1=100; /*蛇身1节坐标初值*/snake.x2=90;snake.y2=100; /*蛇身2节坐标初值*/snake.node=3; /*蛇节数初值*/while(1) /*玩游戏死循环,按esc键或蛇死时结束*/ while(!kbhit() /*在没有按键的情况下,蛇自己移动身体*/if(food.yes=1) /*需要出现新苹果*/food.x=rand()%400+60; /*在墙 /*在墙 while(food.x%10!=0) food.x+;while(food.y%10!=0) food.y+;food.yes=0; /*画面上有苹果了*/if(food.yes=0) /*画面上有苹果就要画出来*/setcolor(GREEN);setfillstyle(SOLID_FILL,GREEN);circle(food.x,food.y,5);fillellipse(food.x,food.y,5,5);setfillstyle(1,BLUE);bar(475,18,590,35); /*画出显示分数及关数蓝色矩形条*/setcolor(WHITE);itoa(score,buffer,10); /*将整形数据分数转换成字符串*/outtextxy(480,20,buffer); /*输出分数*/itoa(level,buffer,10); /*将整形数据关数转换成字符串*/outtextxy(560,20,buffer); /*输出关数*/*循环使蛇的每一节往前移动,这是贪吃蛇的“关键算法”*/ for(i=snake.node-1;i>0;i-)snake.xi=snake.xi-1;snake.yi=snake.yi-1;/*1、2、3、4表示右、左、上、下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction)case 1:snake.x0+=10;break;case 2:snake.x0-=10;break;case 3:snake.y0-=10;break;case 4:snake.y0+=10;break;/*判断蛇是否撞到墙*/if(snake.x0<55|snake.x0>595|snake.y0<45|snake.y0>445) snake.life=1; /*置蛇死标志*/break;/*从蛇的第四
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!