运用C语言编写的推箱子小游戏(含代码和运行截图)

这篇博客介绍了如何使用C语言编写推箱子小游戏,通过二维数组表示游戏地图,包含墙、目的地、箱子和人的标记。游戏具有计时功能,记录玩家的游戏用时,并展示了游戏主界面及其各个选项的截图。
摘要由CSDN通过智能技术生成

设计思路

用一个二维数组来表示整个地图,我们先网上找一张地图来分析下。
推箱子借鉴地图
分析:地图上有 墙、目的地、箱子、人。可以用数字来在二维数组中对应的标记这些东西,二维数组的大小就是地图的大小。
  并加入了计时功能,通过游戏前后获取系统时间,计算二者时间差,差值及为游戏用时,还添加了游戏主界面模块。

#include<stdio.h> // 获取系统时间及计算差值函数
#include<time.h>
int main()
{
time_t timep;
struct tm *p1,*p2;
time(&timep);
p1= gmtime(&timep);
int t,t1,t2;
t1=(p1->tm_hour)6060+(p1->tm_min)*60+(p1->tm_sec);
time(&timep);
//游戏执行函数
p2= gmtime(&timep);
t2=(p2->tm_hour)6060+(p2->tm_min)*60+(p2->tm_sec);
t=t2-t1; // t的值为TIME值
printf(“SCORE:%02d\n”,count);
printf(“TIME:%02d:%02d\n”,t/60,t%60);
return;
}

-----------------------------------------------------------------------------------------------------------------------
while (1) // 主界面模块
{
if(flag)
{
break;
}
printf(" \n");
printf(“请输入选项按回车进入:”);
scanf("%d",&choice);
switch(choice) // 主界面选项判定函数
{
case :
{
system(“cls”);
printf(" \n");
break;
}
 
-----------------------------------------------------------------------------------------------------------------------
 

#include <stdio.h> 
#include <conio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h> 

time_t timep;
struct tm *p1,*p2;

int map[10][11] = {
               //定义地图大小10*11 
     {
   0,0,0,0,0,0,0,0,0,0,0},  
     {
   1,1,1,1,1,1,1,1,1,1,1},  //0代表空地   
     {
   1,1,1,0,0,1,0,0,1,1,1},  //1代表墙   
     {
   1,1,0,4,0,1,0,0,0,1,1},  //3代表目的地   
     {
   1,1,0,0,0,4,0,0,0,1,1},  //4代表箱子   
     {
   1,1,0,4,0,0,1,0,0,0,1},  //5代表人    
     {
   1,1,0,1,1,1,1,0,4,0,1},   
     {
   1,0,0,8,3,0,0,1,0,0,1},    
     {
   1,0,0,3,3,0,0,0,0,1,1},   
     {
   1,1,1,1,1,1,1,1,1,1,1} };
void DrawMap()   //绘制地图  //二维数组+switch()
{
   
    //遍历二维数组  //0 打印空格  //1 墙   //3 目的地
    for (int i = 0;i < 10; i++)
    {
   
        for (int j= 0; j < 11; j++)
        {
     //if  else  switch
            switch(map[i][j])
            {
   
            case 0:               
                printf("  ");               
            break;
            case 1:               
                printf("■")
  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值