c++益智小游戏《十步万度》
1鼠标点击哪个圆圈,那个圆圈就转90度,
2指针指向哪个圆圈,哪个圆圈就转90度,
3共有10次机会,每转一圈加90分。
代码:
// 十步万度.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#define PI 3.14159
struct Round {float x, y;float r;int anglenum;
}rounds[5][5];
int step, score;
void startup() {step = 10, score = 0;initgraph(600, 700);setbkcolor(RGB(50, 50, 50));setlinestyle(PS_SOLID, 3);cleardevice();BeginBatchDraw();int i, j;for (i = 0; i < 5; i++) {for (j = 0; j < 5; j++) {rounds[i][j].r = 30;rounds[i][j].x = 100 + j * 100;rounds[i][j].y = 200 + i * 100;rounds[i][j].anglenum = 1;}}
}
void show() {cleardevice();float angle;int i, j;for (i = 0; i < 5; i++) {for (j = 0; j < 5; j++) {setlinecolor(RGB(200, 201, 202));circle(rounds[i][j].x, rounds[i][j].y, rounds[i][j].r);angle = rounds[i][j].anglenum * PI / 2;setlinecolor(RGB(255, 0, 0));line(rounds[i][j].x, rounds[i][j].y, rounds[i][j].x + cos(-angle) * rounds[i][j].r, rounds[i][j].y +sin(-angle) * rounds[i][j].r);}}TCHAR s[20];setbkmode(TRANSPARENT);_stprintf(s, _T("% d 步 % d 度"), step, score);settextstyle(50, 0, _T("宋体"));outtextxy(150, 20, s);settextstyle(20, 0, _T("宋体"));outtextxy(15, 100, _T("点击一个圆圈,其指针顺时针旋转90度后 指向的针依次旋转"));FlushBatchDraw();FlushBatchDraw();}
void rotateround(int i, int j) {rounds[i][j] .anglenum-= 1;if (rounds[i][j].anglenum == -1) {rounds[i][j].anglenum = 3;}score += 90;
}int Getindexes(int indexes[2]) {int i = indexes[0];int j = indexes[1];if (rounds[i][j].anglenum == 1) {i--;}else if (rounds[i][j].anglenum == 2) {j--;}else if (rounds[i][j].anglenum == 3) {i++;}else {j++;}indexes[0] = i;indexes[1] = j;if (i >= 0 && i < 5 && j >= 0 && j < 5) {return 1;}elsereturn 0;
}void update() {MOUSEMSG m;if (MouseHit()) {m = GetMouseMsg();if (m.uMsg == WM_LBUTTONDOWN&&step>0) {int ci = int(m.y - 150) / 100;int cj = int(m.x - 50) / 100;rotateround(ci, cj);step--;show();Sleep(300);int indexes[2] = { ci,cj };while (Getindexes(indexes)) {rotateround(indexes[0], indexes[1]);show();Sleep(300);}}}
}int main() {startup();while (step>0) {show();update();}getch();return 0;
}
最开始:
第一步:
第二步:
最后
c++益智小游戏《十步万度》相关推荐
- 简单小游戏——十步万度
软件使用 EasyX.VS2013 效果图 具体实现 画5*5个圆,每个圆都是一个结构体,储存圆的坐标和半径.每个圆中都有一个指针,初始时都指向上方(即90°).鼠标点击某个圈,该圈的指针会顺时针旋转 ...
- 《C和C++游戏趣味编程》 第8章 十步万度
没想到前几天新书预告中(童晶:<C和C++游戏趣味编程>新书预告),有这么多朋友对实现十步万度游戏感兴趣,下面提前开源最终代码. 这个案例使用VS 2010 + EasyX开发,感兴趣的朋 ...
- C语言实现:十步万度游戏,代码思路+源码分享
你只能点十次, 但却要引发蝴蝶效应最后达到10000度.六种模式可选,每种模式都可以不断挑战极限达到最高的度数.数十种精美的蝴蝶扇动着翅膀向你展示蝴蝶效应的奇妙,一个微小的差别可能就会造成很大的不同. ...
- C++入门——实现十步万度游戏
参考 <C和C++游戏趣味编程> 童晶 十步万度游戏 用鼠标点击任意一个小圆圈,其指针顺时针旋转90度,后续被指向的圆圈指针也依次旋转,所有圆圈的旋转度数累积.玩家点击10次,尝试得到尽量 ...
- 第8章 十步万度(《C和C++游戏趣味编程》配套教学视频)
(图书介绍:童晶:<C和C++游戏趣味编程>新书预告) 本章我们将编写十步万度游戏,效果如图所示.鼠标点击任意一个小圆圈,其指针顺时针旋转90度,后续被指向的圆圈指针也依次旋转,所有圆圈的 ...
- 2019级C语言大作业 - 十步万度
十步万度 C语言作业 分享19级同学大一上学期用C语言实现的十步万度,可从码云下载: 期末作业/十步万度 摘要 本组设计并编写的游戏<十步万度>,是我们仿照原有的<十步万度>游 ...
- c语言输出数字漏斗图形_2019级C语言大作业 - 十步万度
分享19级同学大一上学期用C语言实现的十步万度,可从码云下载: 期末作业/十步万度gitee.com C语言大作业 - 十步万度https://www.zhihu.com/video/1215683 ...
- c语言设置一个选择数字的程序,C语言编一个数字益智小游戏
程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...
- 益智小游戏《测试脑力》源码H5+安卓+IOS三端源码
cocos creator2.4.2 益智小游戏<测试脑力>源码H5+安卓+IOS三端源码,开发脚本为typeScript方便扩展和阅读,支持cocos creator2.X版本,完整的源 ...
最新文章
- 扔掉okhttp、httpClient,来试试这款轻量级HTTP客户端神器?
- 报名 | 期末考后,快来打比赛赢万元奖金!(北京上海)
- 移动端开发, 常用CSS单位
- linux命令tcpdump
- [转载]我的博后申请经历从陶瓷到Offer过程
- UVA 11136——Hoax or what
- python line strip_Python进阶---python strip() split()函数实战(转)
- ideatomcat老是运行以前的项目_日“吞”150吨垃圾,禅城集中式餐厨垃圾处理项目启用...
- 1.4编程基础之逻辑表达式与条件分支 07 收集瓶盖赢大奖
- 到底什么是 ROI Pooling Layer ???
- Python是Python的web框架
- Weblogic常见故障常 JDBC Connection Pools
- 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)篇篇一.doc...
- python 读取网络位置的文件
- Cuba 设置debug模式
- GIS应用技巧之景观格局分析(三)
- 【转】如何使用visual studio将你的程序打包成安装包
- 软件是怎么开发出来的?怎么进行软件开发流程详解
- review代码从哪些角度_CodeReview正确的姿势是什么?
- 交叉编译wpa_supplicant常见问题总结