第二次课程实验设计报告

一.实验项目名称

反弹小球

二.实验项目功能描述

通过小球击打砖块来获得分数的一个游戏,游戏代码一共分代码重构、显示边框、显示移动边框、反弹小球、消砖块五个部分,一步步构成最终的游戏。

三.项目模块结构介绍

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <windows.h>

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)

{

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<right) )

printf("*");

else if ((i== block_x) && (j== block_y))

printf("B");

else printf(" ");

}

printf("\n");

}

printf("反弹小球数:%d\n",ball_number);

printf("消掉的方块数:%d\n",score);

}

void updateWithoutInput()

{

if (ball_x==high-1)

{

if ( (ball_y>=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++;

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;

}

原文地址:https://www.cnblogs.com/neverlove/p/10957012.html

时间: 2024-07-30 15:20:45

第二次课程实验设计报告的相关文章

第二次课程实验报告

2019春第二次课程设计报告 一.实验项目名称:众所周知的经典小游戏“贪吃蛇”. 二.实验项目功能描述:控制小蛇移动吃到界面中的食物,吃到食物能增长小蛇长度.但是碰到自身或墙壁会死亡. 三.项目模块结构介绍; 四.实现界面展示: 五.代码托管链接:https://gitee.com/jay101/barce 六.实验总结:自己打出来的代码还是放心点啊,书上的代码有些地方没大写导致编译错误,游戏代码打起来比做作业要有动力一点点,毕竟可以玩一下,哈哈哈. 原文地址:https://www.cnblo

第一次课程实验设计报告

2019春第一次课程设计实验报告 一. 实验项目名称 飞机游戏 二. 实验项目功能描述(用自己的语言) 用c语言写一个简单的飞机游戏,用户可操控飞机进行移动,射击,击中敌机 三. 项目模块结构介绍(文字+总体模型) 控制飞机移动 显示复杂飞机图案 发射激光 打靶练习 代码重构 新式子弹 静止的敌机 敌机移动 射中敌机 清屏功能 四. 实现界面展示(截图) 五. 代码托管链接 https://gitee.com/LILI6/LI 六. 实验总结(提出问题+解决办法+感想) 遇到问题:在最开始就发现

2019春第二次课程实际实验报告

2019春第二次课程实际实验报告 一:实验项目名称 贪吃蛇游戏工作室 二:实验项目功能描述 编写代码,能够使游戏正常运行,达到基础的编写游戏的功能,在这个游戏中,就是通过贪吃蛇不停的吃,使之能够不停的长大,级为游戏的运行,如果撞到边界 ,则为游戏失败 三:项目模块结构介绍: if(kbhit()) // 判断是否有输入 { input = getch(); // 根据用户的不同输入来移动,不必输入回车 if (input == 'a') { moveDirection = 3; // 位置左移

第二次课程设计实验报告

2019春第二次课程设计实验报告 一.实验项目名称 贪吃蛇小游戏 二.实验项目功能描述 玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁或者自己游戏结束. 三.项目模块结构介绍 程序关键在于表示蛇的图形及蛇的移动.用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示.移动时必须从蛇头开始,所以蛇不能向相反的大反向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇方向相反的方向键,此游戏就会暂停,再按向前的方向键才能继续游戏,但按下有效方向键后,蛇头

计算机组成原理 课程设计报告

        计算机组成原理 课程设计报告      成员:许恺   2014011329          胡强勇  2014011315     时间:2016.12.20                 一.简要总结计算机组成原理实验 计算机组成原理实验总共五个实验,首先我们熟悉了教学机的使用方法,后面的实验我们分为运算器.存储器.控制器,控制器分为两次实验.紧接的第二次实验我们就进行了运算器的实验,对运算器的内部构造极其原理进行了验证理解,在这里我们学习了运算器ALU的8种运算功能,以

2017-2018-2 20179223《密码与安全新技术》课程总结报告

课程:<密码与安全新技术> 班级:2017级92班 学号:20179223 姓名:刘霄 上课教师:谢四江 必修/选修: 必修 课程学习内容总结 第一次课程--量子密码相关知识 信息安全技术备受世人关注,由于现有的加密方法存在着很多弊端,人们将目光转向了量子密码.根据量子力学中的海森堡不确定性原理(这个理论是说,你不可能同时知道一个粒子的位置和它的速度,粒子位置的不确定性,必然大于或等于普朗克常数(Planck constant)除于4π(ΔxΔp≥h/4π),这表明微观世界的粒子行为与宏观物质

第二次课程设计实验

2019春第二次课程设计实验报告 一. 实验项目名称 贪吃蛇游戏 二. 实验项目功能描述 一个能由用户手动输入实现的用户操控一串字符数组移动达成相应条件改变字符数组的贪吃蛇游戏 三. 项目模块结构介绍 四. 实现界面展示 五. 代码托管链接 https://gitee.com/llf1202/flappy-1/blob/master/tcs.cpp 六. 实验总结 问题:游戏运行时,出现sleep(2000)函数没有定义 解决:开始我是怀疑我的代码打错了,某个函数打错了,反复对照书上的代码还是没

2019春 第三次课程设计报告

2019春 第三次课程设计报告 一,实验项目名称 利用easyX插件完成的时钟 二,实验项目功能描述 实现将时间显示为时钟 三,项目模块结构介绍 只有一个游戏主题,即时钟.cpp 四,实现界面展示 五,代码托管链接 https://gitee.com/zhuwanxing/zwxc 六,实验总结 这次是使用vs,用easyX插件来完成图像显示,在使用vs的时候出现了不少问题,但是都用百度搞定了,vs无法直接使用,要在调试-属性-c/c++-预处理器 输入 _CRT_SECURE_NO_WARNI

《密码安全新技术》课程总结报告

<密码安全新技术>课程总结报告 课程学习内容总结 第一次课 网络(Web)安全与内容安全 本次讲座的学习内容主要为两方面: 1.Web应用安全 SQL注入 Havij Pangolin 1. 反射型XSS 2. 存储型XSS Apache解析漏洞 Nginx解析漏洞 2.隐私安全 用户轨迹 :移动方向.运动轨迹.运动频率. 用户画像(性别.年龄.直液.搜索记录.住址).手机号码.MAC地址 AI 机器学习 启发式 内网漫游 隐蔽信道检测 注入攻击 网页木马 凭证盗窃 本次讲座是开学第一次课,现