C/C++编写推箱子小游戏
程序员文章站
2022-06-23 09:08:39
本文实例为大家分享了c/c++编写推箱子小游戏的具体代码,供大家参考,具体内容如下我们用' #'来代表墙,‘o'来代表箱子,' * '代表终点,‘@'代表箱子已经到达终点,‘s来表示人'。注意:w,a...
本文实例为大家分享了c/c++编写推箱子小游戏的具体代码,供大家参考,具体内容如下
我们用' #'来代表墙,‘o'来代表箱子,' * '代表终点,‘@'代表箱子已经到达终点,‘s来表示人'。
注意:w,a,s,d为方向键,而且要在英文格式下
运行示例:
以下为完整代码:
/* 推箱子(示例二) */ #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> int main() { char a[12][12]={"##########", "## ###", "##o### #", "# s o o #", "# **# o ##", "##**# ##", "##########", }; int x=3,y=2; int i; char ch; for(i=0;i<7;i++) puts(a[i]); while(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@') { ch=getch(); if(ch=='s') { if(a[x+1][y]!='#'&&a[x+1][y]!='o'&&a[x+1][y]!='@') //如果只有人,没有箱子 { a[x][y]=' '; x++; a[x][y]='s'; } else if(a[x+2][y]!='#'&&a[x+1][y]=='o'&&a[x+2][y]!='*') //如果是箱子和人一起走 { a[x][y]=' '; x++; a[x][y]='s'; a[x+1][y]='o'; } else if(a[x+2][y]!='#'&&(a[x+1][y]=='o'||a[x+1][y]=='@')&&a[x+2][y]=='*') //如果人和箱子一起走,并且前面是终点 { a[x][y]=' '; x++; a[x][y]='s'; a[x+1][y]='@'; } } if(ch=='w') { if(a[x-1][y]!='#'&&a[x-1][y]!='o'&&a[x-1][y]!='@') //如果只有人,没有箱子 { a[x][y]=' '; x--; a[x][y]='s'; } else if(a[x-2][y]!='#'&&a[x-1][y]=='o'&&a[x-2][y]!='o') //如果是箱子和人一起走 { a[x][y]=' '; x--; a[x][y]='s'; a[x-1][y]='o'; } else if(a[x-2][y]!='#'&&(a[x-1][y]=='o'||a[x-1][y]=='@')&&a[x-2][y]=='*') //如果人和箱子一起走,并且前面是终点 { a[x][y]=' '; x--; a[x][y]='s'; a[x-1][y]='@'; } } if(ch=='a') { if(a[x][y-1]!='#'&&a[x][y-1]!='o'&&a[x][y-1]!='@') //如果只有人,没有箱子 { a[x][y]=' '; y--; a[x][y]='s'; } else if(a[x][y-2]!='#'&&a[x][y-1]=='o') //如果是箱子和人一起走 { a[x][y]=' '; y--; a[x][y]='s'; a[x][y-1]='o'; } else if(a[x][y-2]!='#'&&(a[x][y-1]=='o'||a[x][y-1]=='@')&&a[x][y-2]=='*') //如果人和箱子一起走,并且前面是终点 { a[x][y]=' '; y--; a[x][y]='s'; a[x][y-1]='@'; } } if(ch=='d') { if(a[x][y+1]!='#'&&a[x][y+1]!='o'&&a[x][y+1]!='@') //如果只有人,没有箱子 { a[x][y]=' '; y++; a[x][y]='s'; } else if(a[x][y+2]!='#'&&a[x][y+1]=='o'&&a[x][y+2]!='o') //如果是箱子和人一起走 { a[x][y]=' '; y++; a[x][y]='s'; a[x][y+1]='o'; } else if(a[x][y+2]!='#'&&(a[x][y+1]=='o'||a[x][y+1]=='@')&&a[x][y+2]=='*'&&a[x][y+2]!='o') //如果人和箱子一起走,并且前面是终点 { a[x][y]=' '; y++; a[x][y]='s'; a[x][y+1]='@'; } } if(a[4][2]!='@'&&a[4][2]!='s'&&a[4][2]!='*') { a[4][2]='*'; } if(a[4][3]!='@'&&a[4][3]!='s'&&a[4][3]!='*') { a[4][3]='*'; } if(a[5][2]!='@'&&a[5][2]!='s'&&a[5][2]!='*') { a[5][2]='*'; } if(a[5][3]!='@'&&a[5][3]!='s'&&a[5][3]!='*') { a[5][3]='*'; } if(a[1][2]=='o'||a[1][6]=='o'||a[2][8]=='o'||a[3][8]=='o'||a[5][5]=='o'||a[5][7]=='o') //判断失败的情况 { break; } system("cls"); for(i=0;i<7;i++) puts(a[i]); } system("cls"); if(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@') printf("you lose!"); else printf("you win!"); sleep(3000); return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: C++ deque容器的用法详解