实训学习一:C语言实现简单推箱子游戏

学校组织的培训,算是针对毕业后能高点就业率吧,培训内容确实是之前课上不怎么接触的,主要是嵌入式的。这个系列就用来记录这次培训吧,主要包含以下几点:

1,C语言基础(推箱子游戏)

2,数据结构相关(实现简易数据库)

3,文件相关(linux的一切皆文件,还可直接修图,哈哈之前一直以为图片相关都很高深)

4,tcp相关(服务端与客户端)

5,c++基础(面向对象,重载,引用,命名空间等等)

6,qt基础

7,简易图传(直接tcp实时传送图片,qt端展示)

8,linux与qt通过mqtt连接控制家居

第一部分就是用C语言完成一个推箱子小游戏(linux环境)

首先要了解的是命令行可以使用printf输出不同的颜色,这样我们就可以直接在命令行完成这个小游戏的制作。墙和箱子以及人物都是靠不同颜色的空格来显示的,其次是我们输入使用的键盘,如果每次输入都要敲回车就太麻烦了,所以需要用下面这句来做到C语言标准输入立即读取(ICANON)

system("stty -icanon");//直接获取键盘值,不用按enter

每次图像刷新都是清空命令行然后再重新显示的。

演示效果

实训学习一:C语言实现简单推箱子游戏_第1张图片

演示视频:C语言简单实现推箱子游戏_哔哩哔哩_bilibili

所有代码仓库地址:https://gitee.com/caneve/opencaneve/tree/main/C

推箱子完整代码

#include 
#include 
#include 

#define green "\033[42;31m  \033[0m" 
#define red "\033[41;31m  \033[0m"//红色
#define black "\033[40;31m  \033[0m"//黑色
#define yellow "\033[43;37m  \033[0m"
#define blue "\033[44;37m  \033[0m"
#define pink "\033[45;37m  \033[0m"
#define l_blue "\033[46;37m  \033[0m"
#define white "\033[47;37m  \033[0m"

#define box_color    black
#define wall_color    yellow
#define self_color  blue//"\033[46;31m  \033[0m"浅蓝色
#define space_color   green  //"\033[42;31m  \033[0m"
#define target_color    pink   //"\033[43;31m  \033[0m"


#define h 15
#define w 15
#define wall 1
#define box 2
#define space 0
#define self 3
#define target 4
#define up  'w'
#define down 's'
#define left 'a'
#define right 'd'
#define pos(r,c) (r*w+c) 
#define map0 0
#define map1 1
#define map2 2


int r=0,c=0;
int box_x = 5,box_y = 5,self_x=2,self_y=2,target_x=4,target_y=13;
int map[h][w]={0};
void map_init(){
	
	map[box_y][box_x] = box;
	map[self_y][self_x] =self;
		for(r=0;r=8  &&c<=8  &&c>=6
                ||r<=7   &&r>=4  &&c<=3  &&c>=0
                ||r<=4   &&r>=0  &&c<=10 &&c>=7
                ||r<=11  &&r>=9  &&c<=13 &&c>=11
              )
				map[r][c]=wall;
			else if(r==self_y&&c==self_x)
				map[r][c]=self;
			else if(r==target_y&&c==target_x)
				map[r][c]=target;
			// printf("%d",map[r*w+c]);
		}
	}
}
void display_map(){
	system("clear");
	for(r=0;r

你可能感兴趣的:(C语言,学习,游戏)