c语言基础小训练

@推箱子小游戏

这是第一次使用csdn写博客,操作不大懂
以后就在这督促自己学习了~
花了一段时间把C语言基础复习了一下,跟着视频做出了推箱子小游戏

虽然在大神眼里很简单,不过学习吗还是得慢慢来,加油
自己来总结下便于以后回顾:
首先一些比较陌生的函数之类的
1:设置标题
SetConsoleTitle(L"推箱子");
头文件是:#include<Windows.h>
2:设置窗口大小
system(“mode con cols=26 lines=12”);
头文件是#include<stdlib.h>
3:清屏
system(“cls”);//我大二才只知道这个操作是不是有点太迟了。。
4:设置各位置的颜色


void setcolor(int ncolor)
{
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

	SetConsoleTextAttribute(hConsole, ncolor);

}

然后在设置地图函数中具体到每个符号前操作
举个栗子

           case 1:
			setcolor(FOREGROUND_RED | FOREGROUND_INTENSITY);
			printf("■");//墙
			break;

有关设置颜色的函数我没大记熟,这个还是跟多练习练习有关,不过还挺有趣的,可以自己调色。

然后是自己比较想记得知识点
1:while(1)
{
}
来个死循环,让程序不退出
2:getch()不用回车键输入
3:POINT结构体用来表示人的坐标
具体结构为:
typedef struct tagPOINT
{
long x;
long y;
}POINT,*POINT,NEAR *NPPOINT,FAR *LPPOINT;


POINT getpoint()
{
	POINT po = { -1, -1 };
	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 12; j++)
		{
			if (map[currentlevel][i][j] == 6 || map[currentlevel][i][j] == 9)
			{
				po.x = i;
				po.y = j;
				return po;
			}
		}
	}return po;
}

接着是咱的一些对于这个小游戏的一些思想
这个游戏的操作可以看做是在对数组的操作,一开始先定好用哪些数字代表各自的符号,把推箱子所需的地图设置好
再把对应的数字换成符号(备注:符号相当于两空格)
在思考让小人动起来,我们就可以看成是数组元素之间的各种操作
因为为了让窗口一直存在,设了个死循环,所以小人每次动一下,地图就打印一次,
所以在这之前得清个屏
让小人动起来可以想到up,down,left,right四个方向,所以分了四个函数
然后每个函数中考虑小人怎么操作
要实现数组上操作,当然要知道小人的坐标,所以上面的POINT getpoint()就是遍历获得坐标点
!这里很明显出现了两种情况,所以接下来在up()…之类的函数中要分类
在up()中我们会考虑小人向上走有哪些情况
从小人向上走一步的情况,分析前面是空地,箱子,目的地,目的地与箱子的不同情况下对数组的操作很自然的就会考虑到如果前面是箱子 或目的地与箱子,箱子往上走一步的各种情况,细心分析不会有啥问题的
其它三个同理

。。。差不多了,推箱子这个练习是咱自己搜C语言基础项目看的,对于一个新人来说还是挺有趣适合锻炼的,这个视频我看两遍,一遍带着好奇快速看了一遍,一遍记着笔记看了一遍,然后昨天下午两点到六点间完成,基本上是脱离视频自己思考自己打(除了设置颜色那),还好没出啥bug,我的学习计划1差不多ok了,接下来把java基础复习下,一步一步的走向我的目标!虽然大二下有点迟了,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值