文章目录

  • 前言
  • 一、程序介绍
  • 二、使用步骤
    • 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语言画图