vs5015-求大神vs2015 环境下纯c语言编程推箱子游戏,QQ或微信红包重谢

问题描述

求大神vs2015 环境下纯c语言编程推箱子游戏,QQ或微信红包重谢

本人c语言初学者,求推向资源代码。我已写了部分,但不会将其联系起来,将其显示出来,刷屏出来。。。就是将地图呈现出。希望看到大神的源代码有所感悟

#ifndef _DITEM
#define _DITEM
#define X 8
#define Y 8
enum Kind{nul=0,wall,human,box,well,finish,empty,qiu};
typedef struct _item {
enum Kind kind;
enum Dic dic;
enum Kind get;
struct _item *last;
struct _item *next;
}item;
enum Dic{up=-1,down=-2,left=-3,right=-4,null=0};

void deal(item *);
void link(item *, int);
void deal_wall(item *);
void deal_human(item *);
void deal_box(item *);
void deal_well(item *);
void deal_finish(item *);
void deal_empty(item *);

#endif

#include "Ditem.h"
void deal(item *p)
{
if(p->dic!=null)
link(p, p->dic);
while (p->next != NULL)
{

switch (p->kind)
{
case qiu:deal_human(p); p->kind = well; break;
case wall:deal_wall(p); break;
case human:deal_human(p); break;
case finish:deal_finish(p); break;
case box:deal_box(p); break;
case well:deal_well(p); break;
case empty:deal_empty(p); break;
}
p = p->next;
}
while (p->last != NULL)
{
switch (p->kind)
{
case wall:deal_wall(p); break;
case human:deal_human(p); break;
case finish:
case box:deal_box(p); break;
case well:deal_well(p); break;
case empty:deal_empty(p); break;
}
p = p->last;
}

}

void link(item *p,enum Dic d)
{
switch (d)
{
case up:p->next = p - X; break;
case down:p->next = p + X; break;
case left:p->next = p - 1; break;
case right:p->next = p + 1; break;
default:p->next = NULL;
}
}
void deal_wall(item *p)
{
p->last->get = wall;
p->get = nul;
}
void deal_human(item *);
void deal_box(item *p)
{
switch (p->get)
{
case wall:
case box:p->last->get = wall; break;
case well:
case empty:p->kind = human; p->last->get = empty; break;
case human:link(p, p->dic); p->dic = null;p->next->get=box; break;
}
p->get = nul;
}
void deal_well(item *p)
{
if (p->get == box)
{
p->get = finish;
p->last->get = well;
}
else
{
p->kind = qiu;
p->last->get = well;
}
p->get = nul;
}

void deal_empty(item *p)
{
p->kind = p->get;
p->last->get = empty;
p->get = nul;
}

解决方案

写C用什么工具倒无所谓,可以把代码逻辑写到函数里,再在main函数里调用

解决方案二:

推箱子算是一个比较大点的游戏了,肯定是要分层的 你先把业务逻辑层写好 可以在找一个c语言的桌面框架,来写表现层

时间: 2024-11-02 14:25:11

vs5015-求大神vs2015 环境下纯c语言编程推箱子游戏,QQ或微信红包重谢的相关文章

c++-C++课程设计 求大神帮忙写下构造函数和析构函数

问题描述 C++课程设计 求大神帮忙写下构造函数和析构函数 1.网格世界类网格中每个元素存放各种生物对象的指针或者为空.模拟过程中,我们需要移动生物,还有繁殖和饥饿(死亡),所以在网格类中,我们可以将一只生物放到网格中:可以读取网格中的某个指定位置的生物,获取它的指针,以便在每一个time step中对它进行处理(移动.繁殖和饥饿死亡).在一个time step中,网格中每只生物都要处理一遍,先狮蚁,后蚂蚁.另外,应该有一个显示网格的成员函数.2.有机生物类生物要能够放到网格中,所以每一只生物都

java-网页中有的显示消息会出现重复,求大神帮忙看下问题

问题描述 网页中有的显示消息会出现重复,求大神帮忙看下问题 sql语句 解决方案 这个估计是左连接表的时候,连接的表有重复数据导致的 解决方案二: 你把sql 语句放到sql 执行环境中测试看看有没有重复的数据.

一个空指针异常问题,求大神帮忙解决下,在线等

问题描述 一个空指针异常问题,求大神帮忙解决下,在线等 public void getQaList(String type, String qid, String qid_min, String cat_id, String tag_id, String page, String qid_top, boolean isShowLoadingDialog) { List<RequestParameter> parameter = new ArrayList<RequestParameter

今天上传到小米应用平台 说以下错误 求大神帮分析下

问题描述 今天上传到小米应用平台 说以下错误 求大神帮分析下 java.lang.UnsatisfiedLinkError,dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/net.woaoo-2/base.apk"],nativeLibraryDirectories=[/data/app/net.woaoo-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn

自定义的cell中,button不显示图片文字 求大神告诉我下

问题描述 自定义的cell中,button不显示图片文字 求大神告诉我下 这是自定义的cell - (UIButton *)categoryBtn{ if (!_categoryBtn) { _categoryBtn = [[UIButton alloc]init]; _categoryBtn.backgroundColor = [UIColor yellowColor]; _categoryBtn.titleLabel.text = @""111111""; [_

html-插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的

问题描述 插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的 com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java:814) >> org.apache.jasper.JasperException: Validation error messages from TagLibraryValidator for c null: org.xml.sax.SAXParseException: Attr

c++-初学C++ 一个小程序 求大神帮忙看下

问题描述 初学C++ 一个小程序 求大神帮忙看下 //分秒显示函数 #include using namespace std; //全局引用std命名空间 void showTime(int ,int); int main() { int hours =0 , mins = 0;//定义且初始化分 和秒 cout << "Input the hour "; cin >> hours; cout << "Input the mins &quo

c语言-求大神帮忙读下qt程序

问题描述 求大神帮忙读下qt程序 rebuff.append(c); if(c=='Z' && rebuff.find('!',0)>=0) rebuff=""; if(c=='Z' && rebuff.find('!',0)>=0) rebuff=""; if(c=='Z' && rebuff.find("RFID ID",0)>=0) 这是什么意思?rebuff.append(

编程-跪求大神帮忙看下代码,错了不晓得怎么改哦

问题描述 跪求大神帮忙看下代码,错了不晓得怎么改哦 switch (uMsg) { case WM_CHAR: char szChar[20]; sprintf(_T(szChar),_T( "char code is %d"), wParam); 错误 1 error C2065: "LszChar": 未声明的标识符 IntelliSense: "const wchar_t *" 类型的实参与 "const char *"