C++小游戏基本思路:
首先我们要知道图像的画册是要通过数组来实现的,因为我们目前不做3D开发,所以我们进行二维数组即可运行,首先我们在画图之前先自己画一个唯一的出口,接下来便可以画一个或则多个迷惑的出口,从而达到视觉迷惑的行为。然后我们要设置四个回调函数,目的是为了控制我们程序角色的移动。然后进行#include<conio.h>的头文件作用是为了使用_getch()函数,然后我们会得到一个指令,得到指令之后然后进行switch()判断,判断到哪一种类型没然后我们就进行相关的移动,然后进行清屏再输入.
C++迷宫小游戏代码展示:
#include <iostream>
#include <stdlib.h> //system函数
#include <conio.h> //getch()函数
using namespace std;
int x = 1, y = 1;
char map[25][61] =
{
"000000000000000000000000000000000000000000000000000000000000",
"0!000000 0000000000000000000000000000000000000000000",
"0 000000 0000000 0000000000000000000 000000000000000",
"0 000000 0000000 00000 0000000 000000000000000",
"0 000000 0000000 0000000000000 00000 0000000 0000000",
"0 0000000 0000000000000 00000000000000000000000",
"0000000000000000 000000000000000000000000000000000 ", //出口
"000 0000000 000000000000000 000000000",
"000 000000000000 0000000 000000000 000000000000000 000000000",
"000 00 0000000 0 00000000 000000000",
"000 00 00000000000000000 0 0000000 00000000 0000000000000000",
"000 00 00000000000 0 0000000 00000000 0000 00000000000",
"000 00 00000000000 0000000 0000000 0000 00000000000",
"000 00 00000000000 000000 00000000 000000000000 00000000000",
"00 00 000000 000000000 000000000000 00000000000",
"000000 00000000000 000000 000000000 000000000000 000000 0",
"00 00000000000 0000000000 000000 0000",
"00 000000000000000 0000000 0000000000 0000000000 000000 0000",
"00 000000 0000000 0000000000 0000000000 000000 0000",
"00 000000 0000000000000000 0000000000 0000000000 0000",
"00 000000 0000000000000000 0000000000 0000000000 00000000000",
"00 000000 000000 0000000000 0000000000 00000000000",
"00 00000000 0000000 0000000000 00000000000",
"000000000000000000 0000000 000000000000000000000000",
"000000000000000000000000000000000000000000000000000000000000",
};
void key_w()
{
if (map[x - 1][y] != '0') //判断是否与上方相撞
{
map[x][y] = ' ';
x--; //进行位移准备
map[x][y] = '!'; // 开始位移
}
}
void key_s()
{
if (map[x + 1][y] != '0')
{
map[x][y] = ' ';
x++;
map[x][y] = '!';
}
}
void key_a()
{
if (map[x][y - 1] != '0')
{
map[x][y] = ' ';
y--;
map[x][y] = '!';
}
}
void key_d()
{
if (map[x][y + 1] != '0')
{
map[x][y] = ' ';
y++;
map[x][y] = '!';
}
}
int main()
{
cout << "**********************欢迎来到迷宫大挑战**********************" << endl<<endl<<endl<<endl;
cout << "W----上移" << " " << "S----下移" << " " << "A----左移" << " " << "D---右移" << endl<<endl<<endl<<endl;
int p = 6, q = 60;
char ch;
for (int i = 0; i < 25; i++)
{
for (int j = 0; j < 60; j++)
{
cout << map[i][j];
}
cout << endl;
}
while (x != p || y != q) //不能是&&,因为while遇到true的时候,会出去
{
ch = _getch(); //获取您输入的第一个字符,在c是getch()**加粗样式**
switch (ch)
{
case 's':key_s(); break;
case 'w':key_w(); break;
case 'a':key_a(); break;
case 'd':key_d(); break;
default:
cout << "您的指令会出现错误!" << endl;
}
system("cls"); //清屏
for (int i = 0; i < 25; i++) //目的是得出改变后的图像
{
for (int j = 0; j < 60; j++)
{
cout << map[i][j];
}
cout << endl;
}
}
cout << "恭喜您冲关成功!" << endl;
system("pasue"); //目的是锁屏
return 0;
}
C++迷宫实体效果展示:
如果我讲的不够详细,您可以私信我。我会进一步向您阐述!
【关于getchar()的小专题】
getchar()会的到你手动输入的一个字符,然后把这个字符放到一个缓冲区,直到你按下换行键,才会进行操作.
#include <iostream>
using namespace std;
int main()
{
long nc;
nc = 0;
while (getchar() != '\n') //getchar()得到一个字符并放在缓冲区,当按下回车键时才会运行
{
++nc;
cout << "仨孩子" << endl;
}
cout << " " << nc << endl;
}
效果展示:
【输入密码加密系统】
1.基本思路和解析:
首先我们要知道c中有一个转义字符‘\b’,它是用来表示后退一步的。当后退一步的时候光标会移动到前一位数字的下面,当你输入一个数字便会覆盖你后退的那个数字(这个能够理解接下来的代码就没有问题了)
2.代码展示:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main()
{
char s[100];
string s1 = "*";
char c;
int i = 0;
cout << "请输入您的密码:" << endl;
while (1)
{
c = _getch();
if (c == '\r')break; //按下enter就会退出
if (c == '\b') //按下backspace键就会删除
{
if (i > 0) //目的是删除储存进来的那个数组元素
{
i--;
}
printf("\b"); //回退一格光标
printf(" "); //打印一个空格把要删除的字符覆盖了
printf("\b"); //再回退一格光标来掩饰掉打印的空格
continue; //不能省略,一旦省略就会出现删除不动的错误.
}
s[i++] = c;
cout << "*";
}
cout << "您输入的密码是:" ;
for (int j = 0; j < i; j++)
{
cout << s[j];
}
}
密码加密删除效果
制作不易,谢谢支持!!!!