本文主要是介绍C语言一笔画迷宫,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 开头
- 程序
- 程序的流程图
- 程序游玩的效果
- 结尾
开头
大家好,我叫这是我58。
程序
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <Windows.h>
void printmaze(const char strmaze[11][11]) {int ia = 0;int ib = 0;for (ia = 0; ia < 11; ia++) {for (ib = 0; ib < 11; ib++) {printf("%c", strmaze[ia][ib]);}printf("|\n");}printf("-----------@\n");
}
int main() {int i = 0;int iq = 0;const int arr[6] = { 5,5,8,5,8,6 };char ch = 0;char strmaze[11][11] = {'P',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};char* cp = &strmaze[0][0];char* cpb = cp;printf("欢迎你来玩这个一笔画迷宫,在这个游戏中,“P”是你,空格是你可以走的地方,输入“r”即可重置迷宫,并且你每走一步,就会拉出一堵墙,而你只要用拉出的墙把这个迷宫中的所有空格都变没,就可以取得这个迷宫的\033[32;1m胜利\033[0m了,这就是这个迷宫的规则");Sleep(6300);system("cls");while (117 != iq) {//一笔画完成? --> (-是->赢-->end -否->记录移动前的地址)cpb = cp;//记录移动前的地址printmaze(strmaze);scanf("%c", &ch);while ('\n' != getchar()) {;}*cp = ' ';switch (ch) {case 'w':for (i = 0; i < 11; i++) {if (cp == &strmaze[0][i]) {break;}}11 == i && '*' != *(cp - 11) && (cp -= 11);break;case 'a':for (i = 0; i < 11; i++) {if (cp == &strmaze[i][0]) {break;}}11 == i && '*' != *(cp - 1) && cp--;break;case 's':for (i = 0; i < 11; i++) {if (cp == &strmaze[10][i]) {break;}}11 == i && '*' != *(cp + 11) && (cp += 11);break;case 'd':for (i = 0; i < 11; i++) {if (cp == &strmaze[i][10]) {break;}}11 == i && '*' != *(cp + 1) && cp++;break;case 'r':cp = &strmaze[0][0];cpb = cp;memset(strmaze, ' ', sizeof strmaze);strmaze[0][0] = 'P';for (i = 0, iq = 0; i < 3; i++) {strmaze[arr[i]][arr[i + 3]] = '*';}break;//r重置default:break;}if (cp != cpb) {*cpb = '*';iq++;}//移动前的地址 == 移动后的地址? -->(-是->不拉墙 -否->拉墙)*cp = 'P';system("cls");}system("color 0A");printf("恭喜你,你赢了\n");return 0;
}//一笔画迷宫:记录移动前的地址 --> 移动前的地址 == 移动后的地址? -->(-是->不拉墙 -否->拉墙) --> 一笔画完成? --> (-是->赢-->end -否->记录移动前的地址)(r重置)
程序的流程图
程序游玩的效果
一笔画迷宫
结尾
你觉得我这次做的迷宫好吗?如果你觉得我这次做的迷宫不好,就可以评论一下我这次做的迷宫不好的原因吧。
这篇关于C语言一笔画迷宫的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!