文章目录
- 前言
- 一、程序介绍
- 二、使用步骤
- 1.引入库
- 2.定义静态变量,地图大小
- 3.画出图像(地图)
- 4.控制移动的子函数
- 5.以及最后的主函数
- 总结
前言
虽然已经学习了一个学期的c语言,但这也是我第一次写博客,之前一直没时间或者是觉得自己那个实在没什么好写的,最近我突然性情大发,生了想要好好写一篇博客的心思,也算是记录一下自己的进步。
今天要讲的是我最近写的一个我还算满意的小程序,因为放了寒假,闲在家里,就生了写小程序的心思,正好我女朋友还没放假,趁现在我写了个代码给我女朋友。就是这个c语言写的方格绘图(随便取的名字)小程序
一、程序介绍
方格绘图小程序是只有黑白方框,像一个个小像素点一般的,远远看上去像一副图片,通过wasd来操控上下左右,c键来画,x键来清除错误的白格子。
成品图
一开始
然后开始绘画,如果不小心画错了也无妨
最后成果,女朋友很满意
二、使用步骤
1.引入库
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
2.定义静态变量,地图大小
代码如下:
int static o = 0, p = 0,med=0,fad=0;
int map[50][50] = {
{3},
};//地图大小的划定
3.画出图像(地图)
代码如下:
void drawmap()//绘图
{
int i, j;
for (i = 0; i < 50; i++)
{
for (j = 0; j < 50; j++)
{
switch (map[i][j])
{
case 0:printf("□"); break;
case 1:printf("■"); break;
case 3:printf(" "); break;
default:break;
}
}printf("\n");
}
}
4.控制移动的子函数
代码如下:
void move(int n,int m)//移动方格的函数
{
if (o < 50 && p < 50)
{
map[o][p] = med;
fad = map[o + n][p + m];
map[o + n][p + m] = 3;
med = fad;
o = o + n;
p = p + m;
}
else
{
printf("超出边界,重新选择移动路径:\n");//修复可能存在的bug
}
}
5.以及最后的主函数
代码如下:
int main()
{
char c;
for (;;)
{
system("cls");
drawmap();
c = _getch();
switch (c)//改进了其操作方式使其操作更简单一点
{
case 'a':move(0, -1); break;
case 'w':move(-1, 0); break;
case 's':move(1, 0); break;
case 'd':move(0, 1); break;
case 'c':map[o][p] = 1;med= map[o][p]; break;//变为白方格
case 'x':map[o][p] = 0;med = map[o][p]; break;//变为黑方框
default:break;
}
}
}
总结
最后的全部代码,放在这里,想要的自取。博主用的是visual studio 2019
//小王同学花了一下午写的画图小程序
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int static o = 0, p = 0,med=0,fad=0;
int map[50][50] = {
{3},
};//地图大小的划定
void drawmap()//绘图
{
int i, j;
for (i = 0; i < 50; i++)
{
for (j = 0; j < 50; j++)
{
switch (map[i][j])
{
case 0:printf("□"); break;
case 1:printf("■"); break;
case 3:printf(" "); break;
default:break;
}
}printf("\n");
}
}
void move(int n,int m)//移动方格的函数
{
if (o < 50 && p < 50)
{
map[o][p] = med;
fad = map[o + n][p + m];
map[o + n][p + m] = 3;
med = fad;
o = o + n;
p = p + m;
}
else
{
printf("超出边界,重新选择移动路径:\n");//修复可能存在的bug
}
}
int main()
{
char c;
for (;;)
{
system("cls");
drawmap();
c = _getch();
switch (c)//改进了其操作方式使其操作更简单一点
{
case 'a':move(0, -1); break;
case 'w':move(-1, 0); break;
case 's':move(1, 0); break;
case 'd':move(0, 1); break;
case 'c':map[o][p] = 1;med= map[o][p]; break;//变为白方格
case 'x':map[o][p] = 0;med = map[o][p]; break;//变为黑方框
default:break;
}
}
}
差不多,我的第一个博客就写到这了,以后有情况多多补充!冲冲冲!加油!
更多推荐
c语言画图
发布评论