啊哈c语言推箱子小游戏,啊哈C入门版学完了,现发推箱子源代码~

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

该推箱子拥有对成绩的记录功能,因此,请挑战自己的最少步数吧!

源代码如下:

#include

#include

int main()

{

system("color 0a");

char a[9][11]={" ###### ",

" # ###",

" # o #",

"### o ## #",

"#*** o #",

"#***o#o ##",

"#### # o #",

" # s #",

" #######"},b,c;

int i,e,f=0,x=7,y=6;

FILE *Re;

while(1)

{

for(i=0;i<=8;i++)

{

puts(a[i]);

}

printf("你已经走了%d步\n",f);

if (a[4][1]=='@' && a[4][2]=='@' && a[4][3]=='@' && a[5][1]=='@' && a[5][2]=='@' && a[5][3]=='@')

break;

b=getch();

if (b=='s')

{

if (a[x+1][y]=='o' && a[x+2][y]!='#' && a[x+2][y]!='o' && a[x+2][y]!='@')

{

a[x+2][y]='o';

a[x+1][y]='s';

a[x][y]=' ';

x++;

f++;

}

if (a[x+1][y]=='@' && a[x+2][y]!='#' && a[x+2][y]!='o' && a[x+2][y]!='@')

{

a[x+2][y]='o';

a[x+1][y]='s';

a[x][y]=' ';

x++;

f++;

}

if (a[x+1][y]!='o' && a[x+1][y]!='#' && a[x+1][y]!='@')

{

a[x+1][y]='s';

a[x][y]=' ';

x++;

f++;

}

}

if (b=='w')

{

if (a[x-1][y]=='o' && a[x-2][y]!='#' && a[x-2][y]!='o' && a[x-2][y]!='@')

{

a[x-2][y]='o';

a[x-1][y]='s';

a[x][y]=' ';

x--;

f++;

}

if (a[x-1][y]=='@' && a[x-2][y]!='#' && a[x-2][y]!='o' && a[x-2][y]!='@')

{

a[x-2][y]='o';

a[x-1][y]='s';

a[x][y]=' ';

x--;

f++;

}

if (a[x-1][y]!='o' && a[x-1][y]!='#' && a[x-1][y]!='@')

{

a[x-1][y]='s';

a[x][y]=' ';

x--;

f++;

}

}

if (b=='a')

{

if (a[x][y-1]=='o' && a[x][y-2]!='#' && a[x][y-2]!='o' && a[x][y-2]!='@')

{

a[x][y-2]='o';

a[x][y-1]='s';

a[x][y]=' ';

y--;

f++;

}

if (a[x][y-1]=='@' && a[x][y-2]!='#' && a[x][y-2]!='o' && a[x][y-2]!='@')

{

a[x][y-2]='o';

a[x][y-1]='s';

a[x][y]=' ';

y--;

f++;

}

if (a[x][y-1]!='o' && a[x][y-1]!='#' && a[x][y-1]!='@')

{

a[x][y-1]='s';

a[x][y]=' ';

y--;

f++;

}

}

if (b=='d')

{

if (a[x][y+1]=='o' && a[x][y+2]!='#' && a[x][y+2]!='o' && a[x][y+2]!='@')

{

a[x][y+2]='o';

a[x][y+1]='s';

a[x][y]=' ';

y++;

f++;

}

if (a[x][y+1]=='@' && a[x][y+2]!='#' && a[x][y+2]!='o' && a[x][y+2]!='@')

{

a[x][y+2]='o';

a[x][y+1]='s';

a[x][y]=' ';

y++;

f++;

}

if (a[x][y+1]!='o' && a[x][y+1]!='#' && a[x][y+1]!='@')

{

a[x][y+1]='s';

a[x][y]=' ';

y++;

f++;

}

}

if (a[4][1]=='o')

a[4][1]='@';

if (a[4][2]=='o')

a[4][2]='@';

if (a[4][3]=='o')

a[4][3]='@';

if (a[5][1]=='o')

a[5][1]='@';

if (a[5][2]=='o')

a[5][2]='@';

if (a[5][3]=='o')

a[5][3]='@';

if (a[4][1]!='@' && a[4][1]!='s')

a[4][1]='*';

if (a[4][2]!='@' && a[4][2]!='s')

a[4][2]='*';

if (a[4][3]!='@' && a[4][3]!='s')

a[4][3]='*';

if (a[5][1]!='@' && a[5][1]!='s')

a[5][1]='*';

if (a[5][2]!='@' && a[5][2]!='s')

a[5][2]='*';

if (a[5][3]!='@' && a[5][3]!='s')

a[5][3]='*';

system("cls");

}

puts("you are will!");

Re=fopen("Re.txt","r");

if (fscanf(Re,"%d",&e)>0)

{

if (f

{

fclose(Re);

Re=fopen("Re.txt","w");

fprintf(Re,"%d",f);

fclose(Re);

puts("新的记录已经产生了!");

}

if (f==e)

{

fclose(Re);

puts("与高手平举平起!");

}

if (f>e)

{

fclose(Re);

puts("请继续努力!");

}

}

else

{

fclose(Re);

Re=fopen("Re.txt","w");

fprintf(Re,"%d",f);

fclose(Re);

puts("新的记录已经产生了!");

}

system("pause");

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIDA64制作机箱副屏/性能监控屏, 刷新慢问题

AIDA64制作机箱副屏/性能监控屏, 刷新慢问题 手上有闲置的手机/平板, 非闲置也行, 毕竟也没人边刷手机边打游戏吧AIDA64可以监控大多数参数, 放到一些酷炫的LCD模板上, 通过手机/平板等的浏览器就可访问这个页面, 实现无线监控 在网上找一个AIDA64, 安装文件-设置-LCD找到Rem…

javaone_JavaOne 2012:Java策略主题演讲和IBM主题演讲

javaone与 JavaOne 2010 相似&#xff0c;我对JavaOne 2012有了一个粗略的起点。由于“计算机和打印机技术上的困难”&#xff0c;办理登机手续的人花了70分钟为我提供JavaOne徽章。 尽管我不是世界上最有耐心的人&#xff0c;但比等待更令人失望的是&#xff0c;我错过了参加“…

常用正则表达式(?i)忽略字母的大小写!

转载自&#xff1a;http://blog.csdn.net/iwanttoknow7/article/details/5773285 1。^/d$  //匹配非负整数&#xff08;正整数 0&#xff09; 2 。 ^ [ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * $   // 匹配正整数 3 。 ^ (( - /d) | ( 0))$   // 匹配非正整数&#xff08;负…

内存刷新机制

red log buffer、data buffer、binlog cache。在O和M中&#xff0c;讲究日志先行策略&#xff0c;就是一条DML语句进入数据库之后&#xff0c;都会先写日志&#xff0c;再写数据文件。 1.red log&#xff0c; 重做日志文件&#xff0c;用于记录事务操作的变化&#xff0c;记录的…

android 字符串对齐,android – 使用Spanable String对齐ImageSpan

我知道有很多相同类型的问题可供使用,我尝试了很多解决方案,但所有这些问题都达不到我的要求.我的问题是我必须在包含Spanable字符串和Imagespan的文本之间添加动态行间距,但是当我添加行间距时,文本和图像的对齐会变形.我已经尝试了Stackoverflow上几乎所有可用的解决方案,如t…

如何将JBoss HR员工奖励项目放入云端

我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 我们从头到尾讨论了各个层&#xff0c;但尚未为您提供除Red Hat Container Development Kit&#xff08;CDK&#xff09;之外的任何应用程序开发工具。 到目前为止&#xff0c;您所拥有…

用JIRA管理你的项目

https://blog.csdn.net/gaowenhui2008/article/details/70241657 (一) JIRA环境搭建 转载于:https://www.cnblogs.com/eustoma/p/9637509.html

ArcGIS编辑操作的常用快捷键一览表

在ArcMap中&#xff0c;快捷键与一些编辑工具和命令相关联。使用快捷键能使编辑工作更加快捷有效&#xff0c;总结如下&#xff1a; 一、公共快捷键&#xff08;对所有编辑工具有效&#xff09;&#xff1a; Z&#xff1a;放大 X&#xff1a;缩小 C&#xff1a;漫游 V&#xff…

javaone_JavaOne 2012:使用HTML5和Java构建移动应用程序

javaone我返回了Parc 55 &#xff08;任务会议室&#xff09;&#xff0c;观看Max Katz的&#xff08; Exadel开发人员关系&#xff09;“使用HTML5和Java构建移动应用程序” Bird-of-Feather&#xff08;BoF&#xff09;演示文稿。 具体来说&#xff0c;Katz在Tiggzi &#xf…

android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...

1.RecyclerView的Item宽度不能全屏显示出现这种的原因有两种&#xff1a;1.第一种是在adapter中加载inflater时parent传入为null2.如果第一种不行&#xff0c;第二种原因就是在RecyclerView外随意加一层布局即可充满解决方法&#xff0c;在onCreateViewHolder按照如下修改&…

剑指offer(一):二维数组中的查找

题目&#xff1a; 在一个二维数组中&#xff08;每个一维数组的长度相同&#xff09;&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否…

sed以及awk的替换命令

转载自&#xff1a;http://blog.csdn.net/imzoer/article/details/8721590 先看sed 的。 比如说&#xff0c; 在上面使用sed替换每行第一个出现的nau为n_a_u。 如果加上g参数&#xff0c;那么对已一行&#xff0c;每次遇到一个nau就要替换一次。 -----------------------------…

图片下载中文传输转义问题

// 定义utf-8转义失败&#xff0c;中文是一串什么3E%什么的 URLEncoder.encode((productName".jpeg"), "UTF-8") // 改成如下代码 new String((productName ".jpeg").getBytes("utf-8"), "ISO8859-1") 转载于:https://www.…

NetBeans Java EE技巧8:持久性单元

任何好的IDE的基本目标都是简化和组织代码和开发工作流程。 NetBeans在实现这些目标方面做得非常出色&#xff0c;有时我们将基础知识视为理所当然。 例如&#xff0c;如果您曾经试图在纯文本编辑器中阅读XML蒙上了双眼&#xff0c;那么过去在配置和使用Persistence Units时可能…

c语言循环链表中设立尾链表,C语言实现双向非循环链表(带头结点尾结点)的节点插入...

对于双向链表&#xff0c;个人推荐使用带头结点尾结点的方式来处理会比较方便。我在《C语言实现双向非循环链表(不带头结点)的节点插入》中详细实现了在不带头结点的情况下的插入。这次我们将会来在使用头结点尾结点的情况下在任意的位置插入元素。代码上传至 https://github.c…

ls实现列文件按时间排序

转载自&#xff1a;http://blog.csdn.net/gtuu0123/article/details/4420424 1) ls -lt 时间最近的在前面 2) ls -ltr 时间从前到后 3) 利用sort ls -l | sort 7 (日期为第8列) 时间从前到后 ls -l | sort -r 7 时间最近的在前面

sqlserver添加默认值

知识点&#xff1a; sql添加字段默认值时&#xff1a;1.如果有加 not null &#xff0c;则已有记录该字段值更新为默认值2.如果没有加 not null&#xff0c;则为null代码&#xff1a; IF EXISTS ( SELECT TOP 11FROM INFORMATION_SCHEMA.COLUMNSWHERE [TABLE_NAME] Produ…

android服务器 性能,Android性能优化(中)

Android性能优化在上一篇中介绍了性能优化的概念、内存泄漏和性能优化方式Android性能优化(上)我们继续说说Android性能优化数据库性能优化索引简单的说&#xff0c;索引就像书本的目录&#xff0c;目录可以快速找到所在页数&#xff0c;数据库中索引可以帮助快速找到数据&…

jvm系列二之GC收集器

目录 参考概念理解并发和并行吞吐量GC垃圾收集器Serial New收集器Parallel New&#xff08;并行&#xff09;收集器Parallel Scavenge&#xff08;并行&#xff09;收集器Serial Old&#xff08;串行&#xff09;收集器Parallel Old&#xff08;并行&#xff09;收集器CMS收集器…

shell脚本中一些特殊符号

在shell中常用的特殊符号罗列如下&#xff1a; # ; ;; . , / \\ string| ! $ ${} $? $$ $* \"string\"* ** ? : ^ $# $ command{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~ ~- & \\<...\\> - % ! # 井号 (…