博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019年春第二次课程设计实验报告
阅读量:5140 次
发布时间:2019-06-13

本文共 2948 字,大约阅读时间需要 9 分钟。

2019年春第二次课程设计实验报告

一.实验项目名称

反弹球

二.实验项目功能描述

反弹球是一个简单的小游戏,目的是训练人的反应能力。只有通过把所有砖块消除完,才能顺利的完成任务。游戏要求 :1.实现球速的随机性2.实现球碰撞到边缘或者砖块自动反弹3.实现游戏可暂停性4.游戏结束后才能重新开始

三.项目模块结构介绍

#include 
#include
#include
#include
// 全局变量int high,width; // 游戏画面大小int ball_x,ball_y; // 小球的坐标int ball_vx,ball_vy; // 小球的速度int position_x,position_y; // 挡板中心坐标int ridus; // 挡板半径大小int left,right; // 挡板左右位置int ball_number; // 反弹小球的次数int block_x,block_y; // 方块的位置int score; // 消掉方块的个数void gotoxy(int x,int y) //光标移动到(x,y)位置{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(handle,pos);}void startup() // 数据初始化{ high = 13; width = 17; ball_x = 0; ball_y = width/2; ball_vx = 1; ball_vy = 1; ridus = 6; position_x = high; position_y = width/2; left = position_y - ridus; right = position_y + ridus; ball_number = 0; block_x = 0; block_y = width/2+1; score = 0;}void show() // 显示画面{ gotoxy(0,0); // 光标移动到原点位置,以下重画清屏 int i,j; for (i=0;i<=high+1;i++) { for (j=0;j<=width;j++) { if ((i== ball_x) && (j== ball_y)) printf("0"); // 输出小球 else if (j==width) printf("|"); // 输出右边框 else if (i==high+1) printf("-"); // 输出下边框 else if ( (i==high) && (j>left) && (j
=left) && (ball_y<=right) ) // 被挡板挡住 { ball_number++; printf("\a"); // 响铃 //ball_y = ball_y + rand()%4-2; } else // 没有被挡板挡住 { printf("游戏失败\n"); system("pause"); exit(0); } } if ((ball_x==block_x) && (ball_y==block_y)) // 小球击中方块 { score++; // 分数加1 block_y = rand()%width; // 产生新的方块 } ball_x = ball_x + ball_vx; ball_y = ball_y + ball_vy; if ((ball_x==0)||(ball_x==high-1)) ball_vx = -ball_vx; if ((ball_y==0)||(ball_y==width-1)) ball_vy = -ball_vy; Sleep(80);}void updateWithInput() // 与用户输入有关的更新{ char input; if(kbhit()) // 判断是否有输入 { input = getch(); // 根据用户的不同输入来移动,不必输入回车 if (input == 'a') { position_y--; // 位置左移 left = position_y - ridus; right = position_y + ridus; } if (input == 'd') { position_y++; // 位置右移 left = position_y - ridus; right = position_y + ridus; } }}int main(){ startup(); // 数据初始化 while (1) // 游戏循环执行 { show(); // 显示画面 updateWithoutInput(); // 与用户输入无关的更新 updateWithInput(); // 与用户输入有关的更新 } return 0;}

1581690-20190531175340376-1899311120.png

四.实现界面展示

1581690-20190531175350715-1692922616.png

五.代码托管链接

六.实验总结

很多东西是没有学的,看不懂是什么意思,百度上也看了,不过还是看不明白,是理解不了吧,代码是按书上来打的,有很多细节问题没有注意,导致后面一直出问题,检查了几遍才发现。很多知识点不知道,就希望老师到时候可以讲一下吧。

转载于:https://www.cnblogs.com/lcl777/p/10956704.html

你可能感兴趣的文章
进度条
查看>>
使用命令修改ip地址
查看>>
mac平台安装类似yum的工具
查看>>
hdu3437 划分树 区间内小于第K大的值得和
查看>>
P1113 杂务
查看>>
20155320《网络对抗》MSF基础应用
查看>>
第七章 软件测试 课后习题
查看>>
一篇非常适合git入门的文章
查看>>
四级英语day10
查看>>
基于K-近邻分类算法的手写识别系统
查看>>
使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
查看>>
PC站跳转M站的方法
查看>>
wow 各职业体验(pvp)
查看>>
Streaming的receiver模式
查看>>
[转载]一个人的失败,99%失败于“脾气”
查看>>
一个简单的MDI示范程序(Delphi)
查看>>
统计实验数据 总结实验结果
查看>>
Spring 3.x MVC 入门4 -- @ResponseBody & @RequestBody
查看>>
62. Unique Paths
查看>>
Linux Linux程序练习十七
查看>>