标题:都是新手,我在这里出道小游戏的题目,大家一块来做,在项目中学习
只看楼主
wskkhtkpl
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2011-9-30
得分:2 
刚学,等学到那一课了一定试试
2011-09-30 10:18
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
得分:2 
这个环境要说清楚
要在TC下。vc,cb是不行的。因为这些特性并不是标准的。。
但可以自己写gotoxy
crlscr这个。。
新手没必要学着写。。。
其实没必要害怕。。。
我记得我开始的时候,连数组都没有学会。
就学着写简单的游戏。慢慢发现写小游戏,学的东西很多。更快。。。
不过发现到了一定的程度,要么就写比较难一点的游戏,不然都是重复代码。
很难进步了。要不就学数据结构和算法。。。。。。
反正这个都是要学的。。。。。

用心做一件事情就这么简单
2011-09-30 11:11
刘风琪
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2011-9-2
得分:2 
呃    这哪里是基础编程啊 !
2011-09-30 12:08
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
得分:0 
问题是我现在只是自己看了结构,3个循环,数组,能做出来么?
2011-09-30 12:35
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
得分:0 
1.笑脸
    printf("%c",2);
    这样就生成了一个笑脸了。
2.上网查一下:
    c语言控制光标运动的实现方法,实现后,你就是要把光标换成笑脸就行了;你会有收获的
3.会动的概念:
    先打印一个"笑脸",移动一下,用清屏涵数清掉前面的,然后在下一格再打印“笑脸”,实现"移动"
4.点心
    有点心的坐标让他的值为1,只要有1的坐标全部打印“红心 printf("%c",3);,这里用到数组了”;笑脸路过了红心,值变成0;清屏;每清一次count记录下来,等count=10时,打印“good job”
5.障碍物
    有障碍物的坐标让他的值为2;当“笑脸”移动动这里的时候,判断能不能过。
:这里只用到了清屏和光标移动这两个课本里没有提到的,考一下大家的自学能力了,找一下gotoxy(x,y)的用法,
不会很难。其他的都是一些很基础的东西了,看大家怎样组织了。
可能会用到wintc,tc之类,因为现在的vs已经没有他们的头文件了;下面贴一下实现光标移动,大家可以试一下,"
case 后面的数值是什么东东?。
程序代码:
# include <stdio.h>
# include <bios.h>
int x = 5;
int y = 5;
int main()
{
    while(1)
    {
        switch(bioskey(0))
        {
        case 18432:
            y = y-1;clrscr();gotoxy(x,y);break;
        case 20480:
            y = y+1;clrscr();gotoxy(x,y);break;
        case 19200:
            x = x-1;clrscr();gotoxy(x,y);break;
        case 19712:
            x =x +1;clrscr();gotoxy(x,y);break;
        }
    }

    return 0;
   
}
补充一下,我们的dos窗口,其实大小是:80*25,单位是字符,这样你们好理解,所以数组嘛````

[ 本帖最后由 cosam 于 2011-9-30 14:27 编辑 ]
2011-09-30 13:59
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
得分:0 
回复 14楼 fedcab123
可以啊。。。。
2011-09-30 14:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
不管学什么,关键是培养学习能力,不是所有知识都等教了才会的,那根本是不可能的事情,因为学无止境,你永远也学不完,学会如何自学,才能自己走路。这个程序,用TC固然很方便,但别忘了MSC也一样有控制台专用库,跟TC是一样的性能,只不过函数名不同罢了。在Windows环境,不同版本的MSC控制台库函数也有不同的形式,这些只要查找资料就可以,不需要教的。如果有人专学TC,最后不会用MSC,或者反过来,会MSC,不会TC,这说明他其实没学会编程。

授人以渔,不授人以鱼。
2011-09-30 15:08
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
得分:0 
受教了,看来我还是思维方向不对啊
2011-09-30 15:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
这个程序的关键处是必须使用屏幕和键盘库函数,这是很特殊的与硬件相关的领域,不能用平常惯用的流函数(即printf()、getchar()系列)。这种库函数,集中在conio.h中。比如getch(),就是从键盘上读取一个按键的,它仅读键,但光标不会动,也不会回显读到的键(这是getchar()不具备的功能),当你要用方向键控制光标运动时,就必须要这样的功能。在TC,叫getch(),在MSC,叫_getch(),大同小异。

写这样的程序,响应速度很关键,故使用直接写屏的技术,不是用普通的输出函数诸如cprintf()、putchar()之类显示的,而是对屏幕内存(就是一块二维数组)赋值的。TC的putch()、MSC的_putch(),在DOS时代就是直接写屏的函数,在Windows时代,不允许直接写屏,但Windows提供的控制台窗口,可以模拟直接写屏,原先的这种库函数,可以正常运行,但内部已被Windows拦截过了,故显示速度与DOS时代相比慢了许多(明显差别,用过全屏TC程序的人都能感觉出来)。因此,现在用什么函数输出,反而不太重要,重要的是两点:1.光标能随意走动,或者能随时在不同位置显示内容而不移动光标;2.能够监测得到任何按键动作。

[ 本帖最后由 TonyDeng 于 2011-9-30 16:08 编辑 ]

授人以渔,不授人以鱼。
2011-09-30 15:50
豆芽小球
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2011-10-14
得分:0 
自己试试看!加油
2011-10-18 15:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351068-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.318252 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved