概述
Visual Studio 强大、方便,但是每次写代码都要先创建新项目,这对于一些简单的代码测试来说有点不方便。
本文介绍一种使用 VS 快速测试代码的方法。
该方法适用任何版本的 VS。“不用创建项目”,是指不用“手工”创建项目,而是通过批处理命令,自动完成相关功能,实现双击图标后就进入代码编写环境。
准备工作
先按照如下步骤进行准备(请根据实际情况调整路径):
1. 建立文件夹 D:\TestCpp\,里面存放用来快速测试代码的项目。
2. 打开 Visual Studio,创建一个 Win32 Console Application 项目作为模版,项目路径 D:\TestCpp\Template\TestCon,其它设置根据自己的习惯来。然后添加代码文件 main.cpp:
#include <stdio.h>
int main()
{
printf("Hello W
...
这是用 C++ 写的益智小游戏“交叉线”(源码在底部)。
本程序的核心在于判断线段是否交叉,需要两种算法:快速排斥实验和跨立实验
包含十三个文件
- Head.h : 初始化头文件
- Cross Line.cpp : 程序开端文件
- Game_Class.h : 游戏类头文件
- Game.cpp : 游戏类文件
- Begin.cpp : 初始界面类实现文件
- Level.cpp : 关卡界面类实现文件
- Play.cpp : 游戏界面类实现文件
- Win.cpp : 过关界面类实现文件
- About.cpp : 关于项目类实现文件
- Point.cpp : 点的结构类实现文件
- Line.cpp : 线的结构类实现文件
- Button.cpp : 游戏按钮类实现文件
- Button_Image.cpp : 游戏按钮类实现文件
...
前言
这是一篇射击类小游戏的代码。第一次写的小程序,请多包涵里面的不足。如有高见,敬请指出。
效果图
游戏说明
设计一个base类,包含基本属性。电脑和玩家类都继承自base类。还有一个子弹类。主要有三个函数,ini,show,game,分别用来初始化,显示菜单和进行游戏,功能挤在一起。
运行游戏时,用随机数产生随机种类的敌人。WASD移动,鼠标左键射击。玩家没击败一个敌人后,就会加一个得分。随着玩家得分的升高,敌人的产生概率和属性都会提升。当玩家生命值小于等于0时,此局游戏结束。结算时会根据玩家的得分获得金币,数值上等于玩家的得分,用于升级玩家的属性,且升级会很快。
/////////////////////////////////////////////////////////////
//程序名称:射击游戏
//编译环境:Visual Studio 2019,EasyX_20200520(beta)
//作
...
一、游戏说明
本游戏仿造 4399 的小游戏-围住神经猫,游戏地址:4399围住神经猫游戏
游戏操作:通过鼠标点击操作,设置路障,围住神经猫,当成功围住神经猫时,游戏胜利。当神经猫逃离地图边缘,游戏失败。
二、游戏截图
三、实现思路
- 地图还原:
首先是游戏的道路,这里我们采用绘制灰白色的圆来表示可走的路,用黄色的圆来表示已存在的障碍物。同时还需要注意奇偶行需要交错排列。
2. 猫的移动:
这里我们采用广度优先搜索求最短路径。"猫"在一个位置,能够移动的方向有6个,需要注意的是:
由于奇偶行交替排列,导致奇偶行猫的可行路径是不一样的,奇数行:上,下,左,右,左下,左上。
偶数行:上,下,左,右,右下,右上。剩下的就是常规的求最短路径即可。
四、完整代码
注:代码中所用图片,请见文末链接
...
游戏说明
1.操作
上下左右移动/选择 shift慢速模式 x清屏 esc退出界面(除了主界面)
2.计分
每帧(1/60秒)计分 原有 + 1 + pluspoint
3.奖励
当达到第六级别后可以奖励一次清屏机会(原有3次
4.关卡结束
关卡结束后有约0.6秒的休息时间
5.慢速模式
速度减少约一半,并显示判定点
6.垂直同步
屏幕刷新与逻辑刷新同步,打开可以减少cpu负担
7.关卡
目前共有五关
8.文件
含有文件 gdat 玩家数据与设置 ; main.cpp 主程序 ; define.h 定义函数 ; type.h 定义数据与数据结构 ; Title.jpg 标题背景
9.pluspoint
为黄色的点,获得后可以增加1点pluspoint随关卡等级增加,出现率增加,进入下一关后淸0
更新说明
...
游戏说明
这是一个用来模拟老年机上贪吃蛇游戏的游戏,简谱的画面希望能够给大家带来童年的回忆。当然,难度自然会比老年机上的游戏难一些,希望大家做好准备,开始游戏吧!
作者信息:邮箱 mzh1772@163.com,2007 年出生,有错误欢迎提出。
操作方法
** **按方向键控制蛇的方向,ESC 键暂停游戏,吃到一个食物加 1 分,碰到墙壁或蛇自己结束游戏。
运行截图
游戏源码
/*
名称: 老年贪吃蛇
作者: 梅朱赫(QQ:3406077232)
环境: Vs2019-C++空项目模板-32位
拓展包:EasyX_20200315(beta)
时间: 2020-04
*/
#include <ctime>
#include <cstdlib>
#include <list>
#include
...
基于 EasyX 的五子棋程序。
界面依旧,唯一不同的是算法。改进前的 AI 眼光短浅,只顾当前局面。改进后的 AI 使用 DFS(深度优先搜索)进行对博弈树的遍历,再挑选分值最大的根节点进行落子。具体的,就是先算出每个点的当前分值,再递归去寻找落子后对方分值,把这两个值相减,就可以得到这个位置真正的分值。
可是如果直接递归,时间复杂度很大,大约是 O((192)n)( n 为递归次数),于是就加入了两个剪枝(只查找周边有棋子的空位)(如果位置初始分值大于最大分值才递归)和层数限制(只考虑以后4步)。
改进后基本1秒就可以算出来。
运行效果如下:
完整源代码如下:
////////////////////////////////////////////////////////
// 程序名称:博弈五子棋
// 编译环境:Visual C++ 2019 EasyX_2020-3-15(beta)
// 作 者:陈可佳 &l
...
猪圈密码(Pigpen cipher),亦称共济会密码(英语:masonic cipher)或 共济会员密码(英语:Freemason's cipher),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。
(Hello EasyX)
以下是使用EasyX绘制猪圈密码的一种方式。
#include <graphics.h>
#include <string>
namespace thatboy
{
namespace Pigpen
{
enum : UINT
{
PIG_NULL = 0
, LINE_LEFT = 0X0001 // │
, LINE_TOP = 0X0002 // ─
, LINE_RIGHT = 0X0004 // │
, LINE_BOTTON = 0X0008 // ─
, ARROW_RIGHT = 0X0010 //
...
分形几何学是一门以不规则几何形态为研究对象的几何学。一个数学意义上分形的生成是基于一个不断迭代的方程式,即一种基于递归的反馈系统。虽然分形是一个数学构造,它们同样可以在自然界中被找到,这使得它们被划入艺术作品的范畴。
计算机协助了人们推开分形几何的大门。法国数学家曼德尔勃罗特这位计算机和数学兼通的人物,开创了新的数学分支——分形几何学。分形在医学、土力学、地震学和技术分析中都有应用。
毕达哥拉斯树(Pythagoras tree)是由毕达哥拉斯根据勾股定理所画出来的一个可以无限重复的图形。又因为重复数次后的形状好似一棵树,所以被称为毕达哥拉斯树,也叫“勾股树”。
这个程序,展示了毕达哥拉斯树的生成。执行效果如下:
我的求解思路是:
- 确定直线 p1-p2,并在 p1-p2 的左侧求出 p11-p22,使 p1-p2-p22-p11 构成正方形。
- 求出点 p,使 p-p11-p22 构成含 60 度角的直角三角形。
- 分别将直线 p-p11 和 p-p
...
数独游戏介绍
数独(shù dú)是源自 18 世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据 9×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含 1-9,不重复 。
数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。
数独辅助器编写思路
首先,肯定是画九宫格,做好这个程序的界面。然后给这个界面的相应位置赋予对应相应的数,用鼠标给这个数独九宫格进行填数。当然做好前面的这些只是表面的,最主要的是如何用电脑来解这个数独呢?我一直在思考,程序其实就是一个工具,而我们就是要学会应用这个工具去做一些我们很难做到的事,编写程序就是一个解决问题的好办法。我记得我曾经花了一周的时间去解一个数独,虽然数独最终解出来了,但假如我又遇到别的数独呢?这就是我们需去考虑的问题。我们不是为了去解决一个数独,
...