推箱子小游戏v1.5
来源:互联网 发布:男士商务手表 知乎 编辑:程序博客网 时间:2024/05/02 01:57
//// main.c// 08-推箱子小游戏//// Created by xiao on 15/7/6.// Copyright (c) 2015年 hx853318463. All rights reserved./* 分析: *///#include <stdio.h>#include <stdlib.h>#define ROWS 11#define COLS 10char map[ROWS][COLS] = { {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}, {'*', 'i', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '*', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {'*', ' ', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '*', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', '#', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', ' ', ' ', ' ', ' ', '*', '*', '*', '*', '*'}, {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}};int personCurrentRow = 1;int personCurrentCol = 1;int boxCurrentRow = 8;int boxCurrentCol = 2;/** * 打印地图 */void printf_map ();/** * 获取输入字符 * * @return 输入的字符 */char enterKey();/** * 向上移动 */void moveUp ();/** * 向下移动 */void moveDown ();/** * 向左移动 */void moveLeft ();/** * 向右移动 */void moveRight ();int main(int argc, const char * argv[]) { // insert code here... while(1) { system("clear"); printf("************推箱子小游戏************\n"); // 打印地图 printf_map(); // 如果箱子达到指定地点,就退出循环 if(boxCurrentRow == 3 && boxCurrentCol == 9) { printf("你真棒,智商真高"); break; } // 输入 char key = enterKey(); // 按输入的字符,移动 switch (key) { case 'w': case 'W': moveUp(); break; case 's': case 'S': moveDown(); break; case 'a': case 'A': moveLeft(); break; case 'd': case 'D': moveRight(); break; case 'q': case 'Q': printf("你智商真低!\n"); return 0; default : continue; } } // 推箱子 return 0;}/** * 打印地图 */void printf_map (){ for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { printf("%c ", map[i][j]); } printf("\n"); }}/** * 获取输入字符 * * @return 输入的字符 */char enterKey(){ char key = 'l'; printf("输入指定指令以移动小人。w-向上;s-向下;a-向左;d-向右:\n"); rewind(stdin); scanf("%c", &key); return key;}/** * 向上移动 */void moveUp (){ int personNextRow = personCurrentRow - 1; int personNextCol = personCurrentCol; if (map[personNextRow][personNextCol] == ' ') { map[personNextRow][personNextCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } else if (map[personNextRow][personNextCol] == '#') { if(boxCurrentRow == personNextRow && boxCurrentCol == personCurrentCol) { // 这时候人的下一个元素就是box int boxNextRow = boxCurrentRow - 1; int boxNextCol = boxCurrentCol; map[boxNextRow][boxNextCol] = '#'; map[boxCurrentRow][boxCurrentCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; boxCurrentRow = boxNextRow; boxCurrentCol = boxNextCol; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } }}/** * 向下移动 */void moveDown (){ int personNextRow = personCurrentRow + 1; int personNextCol = personCurrentCol; if (map[personNextRow][personNextCol] == ' ') { map[personNextRow][personNextCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } else if (map[personNextRow][personNextCol] == '#') { if(boxCurrentRow == personNextRow && boxCurrentCol == personCurrentCol) { // 这时候人的下一个元素就是box int boxNextRow = boxCurrentRow + 1; int boxNextCol = boxCurrentCol; map[boxNextRow][boxNextCol] = '#'; map[boxCurrentRow][boxCurrentCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; boxCurrentRow = boxNextRow; boxCurrentCol = boxNextCol; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } } }/** * 向左移动 */void moveLeft (){ int personNextRow = personCurrentRow; int personNextCol = personCurrentCol - 1; if (map[personNextRow][personNextCol] == ' ') { map[personNextRow][personNextCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } else if (map[personNextRow][personNextCol] == '#') { if(boxCurrentRow == personCurrentRow && boxCurrentCol == personNextCol) { // 这时候人的下一个元素就是box int boxNextRow = boxCurrentRow; int boxNextCol = boxCurrentCol - 1; map[boxNextRow][boxNextCol] = '#'; map[boxCurrentRow][boxCurrentCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; boxCurrentRow = boxNextRow; boxCurrentCol = boxNextCol; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } } }/** * 向右移动 */void moveRight (){ int personNextRow = personCurrentRow; int personNextCol = personCurrentCol + 1; if (map[personNextRow][personNextCol] == ' ') { map[personNextRow][personNextCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } else if (map[personNextRow][personNextCol] == '#') { if(boxCurrentRow == personCurrentRow && boxCurrentCol == personNextCol) { // 这时候人的下一个元素就是box int boxNextRow = boxCurrentRow; int boxNextCol = boxCurrentCol + 1; map[boxNextRow][boxNextCol] = '#'; map[boxCurrentRow][boxCurrentCol] = 'i'; map[personCurrentRow][personCurrentCol] = ' '; boxCurrentRow = boxNextRow; boxCurrentCol = boxNextCol; personCurrentRow = personNextRow; personCurrentCol = personNextCol; } }}
0 0
- 推箱子小游戏v1.5
- 推箱子小游戏
- 推箱子小游戏--控制台
- 推箱子小游戏
- 推箱子小游戏源码
- 推箱子小游戏实现
- 推箱子V1.1
- C++ 小游戏之推箱子
- QT 推箱子小游戏编写
- Qt实现推箱子小游戏
- Java实现推箱子小游戏
- c语言小游戏,推箱子
- js实现推箱子小游戏
- JAVA课程设计 推箱子小游戏
- 做推箱子小游戏的一些总结
- 012-C语言小游戏之推箱子
- C语言实现推箱子小游戏
- 微信HTML5小游戏之推箱子
- 记录事件
- eclipse+selenium+testNG+maven 学习二
- java.lang.NoClassDefFoundError: com.android.volley.toolbox.Volley
- Leetcode 238 Product of Array Except Self 时间O(n)和空间O(1)解法
- cocos2dx 常见的49中动作详解
- 推箱子小游戏v1.5
- 黑马程序员——Java基础——多线程(二)
- mybatis代码配置文件记录
- 关于内存池一些细节
- 【Hadoop系列第三章】Hadoop文件分布式管理命令
- 怎样做出符合客户预期的作品
- 多线程的使用
- unicode utf8 ascii
- iOS远程消息推送