因为最近有在玩崩坏星穹铁道,做了一个任务游戏,叫做“寻径指津”
所以我就在想能不能用C语言搞出来,在我搞了长达一坤时之后,是终于搞出来了一关,大家可以拿去玩玩。
如果想听具体怎么实现的请在评论区扣1。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<Windows.h>
int main()
{
start:
char arr[5][12]= {{"* * * * *"}
,{"* *"},
{"* * * *"}
,{"* + * *"}
,{"* * * * * *"} };
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 11; j++)
{
printf("%c", arr[i][j]);
}
printf("\n");
}
int x = 2;
int y = 3;
char arr1[5] = { 0 };
while (true)
{
printf("请输入往哪走,四个字母,l往左,r往右,u往上,d往下(输入多了会报错哟!)\n");
scanf("%s", arr1);
char* arr2 = arr1;
int count = 5;
char c='a';
while (count)
{
count -= 1;
if (*arr2 == 'u' || *arr2 == 'd' || *arr2 == 'l' || *arr2 == 'r')
{
arr2 += 1;
c = *arr2;
}
}
if (c== '\0')
{
break;
}
else
{
printf("输入错误喵~,重新输入\n");
}
}
char* arr2 = arr1;
while (*arr2)
{
switch (*arr2)
{
case'l':
{
while (1)
{
if (arr[y][x - 2] == '*')
{
break;
}
if (arr[0][8] == '+')
{
break;
}
arr[y][x] = ' ';
arr[y][x - 2] = '+';
x -= 2;
}
break;
}
case'r':
{
while (1)
{
if (arr[y][x + 2] == '*')
{
break;
}
if (arr[0][8] == '+')
{
break;
}
arr[y][x] = ' ';
arr[y][x + 2] = '+';
x += 2;
}
break;
}
case'u':
{
while (1)
{
if (arr[y-1][x] == '*')
{
break;
}
if (arr[0][8] == '+')
{
break;
}
arr[y][x] = ' ';
arr[y-1][x] = '+';
y -= 1;
}
break;
}
case'd':
{
while (1)
{
if (arr[y + 1][x] == '*')
{
break;
}
if (arr[0][8] == '+')
{
break;
}
arr[y][x] = ' ';
arr[y + 1][x] = '+';
y += 1;
}
break;
}
default:
break;
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 11; j++)
{
printf("%c", arr[i][j]);
}
printf("\n");
}
printf("\n");
Sleep(500);
arr2 += 1;
}
int i = 0;
if (arr[0][8] == '+') {
printf("成功了喵~\n");
}
else
{
printf("失败了喵\n扣1重试,扣其他退出");
{
scanf("%d", &i);
if (i == 1)
{
goto start;
}
}
}
return 0;
}
直接复制粘贴就能用了,可以拿去学习一下