资源简介
就是简单的弹球游戏,用按键A和按键D控制板子左右移动
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
void gotoxy(COORD pos) {
HANDLE hout;
hout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout pos);
}
class game {
public:
string Board = “▄▄▄“;
string ball = “●“;
COORD pos1 = { 3517 };
COORD pos2;
int spsign szsign = 1;
void initball() {
srand((unsigned)time(0));
int y = 0 x = rand() % 41 + 20;
COORD temp = { xy };
pos2 = temp;
spsign = rand() % 2; //如果直接产生1或者-1的话,
if (spsign == 0)
spsign = -1;
}
void drawboard() {
gotoxy(pos1);
cout << Board;
}
void eraseboard() {
gotoxy(pos1);
cout << “ “;
}
void drawball() {
gotoxy(pos2);
cout << ball;
}
void eraseball() {
gotoxy(pos2);
cout << “ “;
}
void shuipingmove() {
pos2.X = pos2.X + spsign; //优化的结果
if (pos2.X >= 78 || pos2.X <= 0)
spsign = 0 - spsign;
}
void cuizhimove() {
pos2.Y = pos2.Y + szsign;
if (pos2.Y == 16) {
if (pos2.X >= pos1.X&&pos2.X <= pos1.X + 6)
szsign = 0 - szsign;
else gameover();
}
if (pos2.Y == 0)
szsign = 0 - szsign;
}
void boardmove(char x) {
if (x == ‘a‘) {
pos1.X--;
if (pos1.X < 0)
pos1.X = 0;
}
if (x == ‘d‘) {
pos1.X++;
if (pos1.X > 74)
pos1.X = 74;
}
}
void playing() {
begin();
initball();
drawboard();
drawball();
clock_t startx starty;
startx = starty = clock();
while (1) {
Sleep(8);
if (_kbhit()) {
char x = _getch();
if (x == ‘a‘ || x == ‘d‘) {
eraseboard();
boardmove(x);
drawboard();
}
else if (x == ‘p‘)
{
Pause();
}
}
if (clock()-startx>300) {
eraseball();
shuipingmove();
drawball();
startx = clock();
}
if (clock()-starty>500) {
eraseball();
cuizhimove();
drawball();
starty = clock();
}
}
}
void Pause()
{
COORD temp;
temp = { 612 };
gotoxy(temp);
cout << “暂停中...“;
char c = _getch();
while (c != ‘p‘)
c = _getch();
gotoxy(temp);
cout << “ “;
}
void begin() {
COORD temp = { 2010 };
gotoxy(temp);
cout << “welcome to game Board And Ball“ << endl;
temp = { 2513 };
gotoxy(temp);
cout << “Press Any To Start...“;
getchar();
system(“cls“);
}
void gameover() {
system(“cls“);
COORD temp = { 3612 };
gotoxy(temp);
string str = “Game Over!“;
for (int i = 0; i < str.size(); i++)
{
Sleep(200);
cout << str[i];
}
cout << endl;
exit(0);
}
};
int main() {
game test;
test.playing();
}
// 总结
// 在做1.0的时候,总体的思路是分2步走,首先思考的是如何实现板的移动,后来就从网上找了代码,如何通过键盘来实现光标的移动,加入几个输出语句后
// 就能实现板子的移动了,新问题在于如何控制边界问题。在实现小球的移动时,考虑了小球初始位置的随机性,小球移动方向的随机性,小球要怎么能凑够
// 自己去运动呢 实现方案就是运用clock()函数来计数 一开始还分别置了2个标志
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-01 14:10 弹球小游戏\
目录 0 2018-03-01 14:10 弹球小游戏\.vs\
目录 0 2018-03-01 14:10 弹球小游戏\.vs\Project2\
目录 0 2018-03-01 14:10 弹球小游戏\.vs\Project2\v14\
文件 32768 2018-02-13 21:36 弹球小游戏\.vs\Project2\v14\.suo
目录 0 2018-03-01 14:10 弹球小游戏\Debug\
文件 74752 2018-02-13 21:31 弹球小游戏\Debug\Project2.exe
文件 453496 2018-02-13 21:31 弹球小游戏\Debug\Project2.ilk
文件 602112 2018-02-13 21:31 弹球小游戏\Debug\Project2.pdb
文件 29827072 2018-02-13 21:36 弹球小游戏\Project2.VC.db
文件 1306 2017-09-26 21:02 弹球小游戏\Project2.sln
目录 0 2018-03-01 14:10 弹球小游戏\弹球小游戏\
目录 0 2018-03-01 14:10 弹球小游戏\弹球小游戏\Debug\
文件 551 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.log
目录 0 2018-03-01 14:10 弹球小游戏\弹球小游戏\Debug\Project2.tlog\
文件 1776 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\CL.command.1.tlog
文件 92352 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\CL.read.1.tlog
文件 3174 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\CL.write.1.tlog
文件 232 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\Project2.lastbuildstate
文件 2582 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\li
文件 3166 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\li
文件 622 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\Project2.tlog\li
文件 226724 2017-10-19 12:45 弹球小游戏\弹球小游戏\Debug\main.obj
文件 1133568 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\vc140.idb
文件 577536 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\vc140.pdb
文件 46712 2017-10-18 22:19 弹球小游戏\弹球小游戏\Debug\源.obj
文件 189367 2018-02-13 21:31 弹球小游戏\弹球小游戏\Debug\源2.0.obj
文件 5707 2018-02-13 21:31 弹球小游戏\弹球小游戏\Project2.vcxproj
文件 947 2018-02-13 21:31 弹球小游戏\弹球小游戏\Project2.vcxproj.filters
文件 6055 2018-02-13 21:31 弹球小游戏\弹球小游戏\源2.0.cpp
相关资源
- 深度探索C++对象模型清晰版.pdf
- 哈夫曼编码压缩c++版和QT5版 QT5版实现
- 使用C++开发的双人五子棋游戏()
- C C++与数据结构(王立柱)
- Accelerated C++.pdf
- 基于Visual C++的图像融合技术的研究与
- QT C++ 算法 广搜BFS 最小步数解二阶魔
- 计算机图形学实践教程 vc++ 案例 源码
- 数据库大作业,MFC 商品管理系统
- c++ 生成条形码代码
- 蚁群算法C++ vs2013
- MFCVC++读写DXF文件
- c++程序设计-谭浩强pdf版(3/3分卷)
- C++从入门到精通第3版
- 小波变换分解C++源码
- c++数据结构中文PDF
- C-Free 5.0专业版
- algorithms in C++
- 上期CTP_API_C++可实盘多合约多策略版本
- 上期CTP_API_C++可实盘多合约多策略版本
- ICP算法实现C++
- c++英语字典
- 孔令德 计算机图形学基础教程visual
- Essential C++中文版+完整源代码+习题答
- Visual C++6.0精简绿色版支持WIN10
- C++学习实用实践项目源代码
- 《Essential_C++》(中文版) pdf
- 数据结构C++语言版邓俊辉 高清版
- c++ 图像处理
- Effective C++ 3rd Edition 中文版.pdf
评论
共有 条评论