趣味程序C语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clrscr();/*清屏函数*/ printf("Hello, world!\n\n"); printf(“%c”,2); /*在屏幕上画一个笑脸,
笑脸的ASCII码是2 */
getch();/*接受按键,按任意键结束这个程序*/ return 0; }
运动 心动的开始——一个
中的笑脸
大家小时侯喜欢看动画片吗 ?
}
我们发现几个值得改进的地方,1、程序 的运行结果一闪而过。2、每执行这个程 序一次都能看见上次运行留下的字符。3、 我们还希望屏幕输出一个笑脸来欢迎我 们。
改进后的程序如下:
#include <stdio.h> #include <conio.h> /*使用了clrscr和getch函数*/
int main() {
C语言——优秀的计算机语言
C语言对于计算机科学来说是一种非常重要的语言,也是最受欢迎 的语言之一。它具有功能强大、适用范围广、运算符简洁明了等优点。 很多系统软件就是C语言开发的,比如UNIX和我们耳熟能详的Windows 系统。现在要开发好的应用软件,离不开“C语言家族”(包括:VC++、 VC#、C++ build等)。有人说:初学的程序员用VB、聪明的程序员用 delphi、而真正的程序员用VC。从这句话也可以看出C语言的重要性。
man.yv = -man.yv; }
怎么样?是不是很有趣呢?不过这个 笑脸一直是自己运动,能不能让我们 来控制它运动呢?答案是肯定的,让 我们继续往下学吧!
的开始—— 让我们来
控制笑脸 运动!
这个程序的主要功能是接受按键,如果接收的 是方向键,就让笑脸顺着方向移动,如果接收的是 ESC键就退出程序,其他按键则忽略处理。
的多 这媒 头体 ,电 梦脑 境 在
——
当计算机技术给游戏提供了强有力的支持后,一个 陌生而又似曾相识的新奇世界展示在人们面前。这里有 逝去的童年梦想,有心头压抑已久的情感;有疯狂、神 秘,也有脑力和技巧的挑战;有轻松获得实实在在的知 识,也有用“虚拟”成就一个别样的人生。这不是一个 神奇的世界吗?
让将要出界的物体“弹”回 出。
运动后还要判断物体是否出界,如果出了 界,就令物体反弹,即让它下一刻的速度等于 现在的速度的相反数。
好的,让我们看以下代码:
if (man.x >= 80 || man.x <= 0) {
man.xv = -man.xv; } if (man.y >= 25 || man.y <= 0) {
趣味程序导学C语言
你玩过电脑游戏吗? 你喜欢电脑游戏吗? 电脑游戏是你生活中的一部分吗?
有的游戏改变过人的一生。。。
小时候,
游戏是 一台黑白的 电视机—— 现实在手柄 的这头,梦 境在手柄的 那头。
长大后,
游戏是一枚小小的铜币——现实 在摇杆的这头,梦境在摇杆的那头。
……
鼠现 游 现 标实 戏 在 的在 是 啊 那鼠 一 , 头标 台
struct move_point {
int x, y;/*该点的位置,包括x坐标和y坐标*/ int xv, yv;/*该点在x轴、y轴的速度*/ };
1、擦去物体原来的轨迹:
gotoxy(man.x, man.y);/*把光标移到指定的坐标*/
printf(“ “);/*输出一个空格,把先前的字符擦去*/
2、然后我们让物体按其速度运动:
man.x += man.xv;/*水平方向按x轴的速度运动*/
man.y += man.yv;/*垂直方向按y轴的速度运动*/
3、最后打印出这个笑脸:
gotoxy(man.x, man.y);
printf(“%c\b”, 2); /*输出ASCII码值为2的“笑脸”字符*/
if (map[y][x] == '#') {
DrawWall(x, y); } } }
}
人不能穿过墙壁!
在判断按键时,如果玩家按的是方向键,我们还要先判断前 面是不是有“墙壁”,如果有的话,就不能往前移动了。好
的,我们在判断按键的switch语句的各个分支加上了判断
语句,如下: case UP:
集思广益
好的,编游戏就这么简单……呵呵.
接受按键我们用了bioskey函数, 并且用宏定义了一些键盘码,如下:
#define ESC 0x011b #define UP 0x4800 #define DOWN 0x5000 #define LEFT 0x4b00 #define RIGHT 0x4d00
让我们来看游戏的主循环:
接受按键
ESC键?
if (map[man.y - 1][man.x] == ‘#’) break;/*如果人前面是墙壁,就不执行下去*/
/* 否则让人向上移动*/ break;
判断玩家是否到达目的地:
在main函数里,我们定义了“小人”man的坐标和“目的 地”des的坐标。在游戏循环中,我们增加了一些用来判断 胜负的语句: if (man.x == des.x && man.y == des.y) /*如果人的坐
好的,现在我们用一个二维数组map定义了一个 非常酷的地图。如下:
char map[10][20] =
{
"####################",
"# #
#",
"# ######### # # #",
"# ####
#
###",
"# #
###
# Hale Waihona Puke Baidu#",
"# # #### # # # #",
"# #
## #
#",
"# ##### # ## #
#",
"#
#
#",
"####################"
};
接着,我们用DrawMap函数把这个地图在 屏幕上画出来。
void DrawMap() {
int x = 0, y = 0; for (; y < 10; ++y) {
for (x=0; x < 20; ++x) {
下面,我们就用编游戏来学习C语言吧!^_^
总是从 开始。
学习编程的第一个程序,一般就是打
印一个亲切的词语——“Hello, world!”。让我们来看看这个最简单的C 程序:
#incolude <stdio.h> /*把输入输出函数的头文件包含进来*/ int main()
{ printf(“Hello, world!”);/*在屏幕上输出字符串“Hello, world!”*/ return 0;/*退出main函数,并返回0*/
char map[10][10] =
{
"
",
" ####",
" ### @#",
" # b #",
" ## # ###",
" # # # *#",
" # # b *#",
"# b
*#",
" ########",
"
"
};
游戏主循环
接受一个方 向键后
空地或目 的地?
直接移动
判断人前面 一格的状态
墙壁? 不可移动
break;/*其他按键则忽略处理*/ } }
怎么样,是不是有了玩游戏的感觉了?不过 这个程序没有什么目的,也没有什么判断胜负的 条件。下面我们就利用这个能控制它移动的笑脸
来做一个更有趣的游戏吧!
游戏一:在 迷宫 中探索
小时侯,我常在一些小人书和杂志上看见一些迷宫的游戏, 非常喜欢玩,还常到一些书上找迷宫玩呢。好的,现在我们 用C语言来编个迷宫的游戏,重温一下童年的乐趣。
是啊,动画片那么有趣,谁不喜欢呢?
那么我请问大家,动画和图片的最
? 大区别是什么
没有错,动画之所以有趣,是 因为它是会动的,对不对?好的,现 在我们就让屏幕显示一个会自己移动 的笑脸。
运动的原理是,先擦去物体先前 的轨迹,让物体按其速度移动一段距 离,再画出该物体。让我们看到以下 代码:
程序开头,我们定义了一个在屏幕中运动 的点的结构类型:
推箱子 是
否 不可移动
是否为空地 或目的地?
箱子或目 的地上的 箱子?
继续判断箱 子的前面一 格的状态
程序还有一个重要的功能就是判断胜负。 数组Des用来记录全部目的地的坐标,我 们每执行一步操作后,程序就要通过Des 数组判断这些目的地上是否都有箱子了。
for (i=0, count=0; des[i].x != -1; ++i) /*清空count*/ {
大家一定玩过“搬运工”的游戏吧!这 是在电脑和电子字典上较流行的益智游 戏,让我们动手做一个属于自己的“搬 运工”吧!
游戏地图
程序依然用数组map来 保存地图,数组元素如 果为空格则表示什么也 没有,‘b’表示箱子, ‘#’表示墙壁,‘*’ 表示目的地,‘i’表示箱 子在目的地。我们以后 每推一下箱子,不但要 改变屏幕的显示,也要 改变map相应元素的值。
… break; /*让物体向上运动,并退出switch*/ case DOWN: /*如果按的是向下键*/
… break; /*让物体向下运动,并退出switch*/ case LEFT: /*向左键*/
… break;;/*向左运动*/ case RIGHT: /*向右键*/
… break;/*向右运动*/ default:
/*如果发现游戏地图还有“目的地”没有箱子在上面,就让count+1。*/ if (map[des[i].y][des[i].x] == ‘*’)
++count; } if (count == 0)/*全部目的地上都有箱子了,你赢了!*/ {
gotoxy(35, 3); printf("Ok! you win!"); }
标等于目的地的坐标*/ {
gotoxy(35, 3); printf(“Ok! You win!”); /*输出胜利信息*/ …./*执行退出前的其他操作。*/ }
OK!这个“迷宫”的 游戏我们已经编好了! 下面,我们编一个更 好玩的游戏——推箱 子!
游 戏 二 : 聪 明 的
“ 搬 运 工 ”
退出游戏
接受按键
判断按键
上下左右键? 执行相关操作
无效按键?
忽略处理
While (key != ESC) {
while (bioskey(1) == 0);/*等待按键*/ key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/
switch (key) /*对变量key的值进行判断*/ { case UP: /*如果按的是向上键*/
相关文档
最新文档