码迷,mamicode.com
首页 > 其他好文 > 详细

自己做的一个小游戏(1)--吃金币(基础版)

时间:2018-09-12 20:20:56      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:core   gets   info   有意思   for   tst   pre   编程   math.h   

目录



效果图

技术分享图片

代码

#include<stdio.h>
#include<conio.h>
#include<Windows.h>
#include<time.h>//计时器
#include<math.h>
#include<stdlib.h>

//跳转函数
void turnto(int x,int y)
{
    COORD loc;
    loc.X = x;
    loc.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), loc);
}

//打印+清除
void clean(int x,int y)
{
    printf("I");
    turnto(x, y);
    printf(" ");
}

//随机数
int unknow(int x, int y)
{
    int i;
    i = (rand() * (y - x) / RAND_MAX + x);
    return i;
}

//o-(-.-)-I开始
int main(void)
{
    clock_t start, end;
    int t;
    int x, y, i, a, b;
    int score=0;
    char name[10];
    long coin[10];


    //输入名字
    printf("本游戏需要英文输入法");
    Sleep(1500);
    turnto(0, 0);
    printf("请输入你的英文名字:_______\b\b\b\b\b\b\b");
    scanf("%s", &name);
    printf("w向上,s向下,a向左,d向右,q to quit");
    
    //初始化
    
    x = 20;
    y = 13;
    turnto(x, y);

    printf("I");

    //coin创建
    srand((unsigned int)time(0));//不要把srand与rand放一个循环
    for (i = 0; i <= 9; i++)
    {
        a = unknow(2, 117);
        b = unknow(3, 27);
        turnto(a, b);
        printf("$");
        coin[i] = a * 100 + b;
    }
    
    //计时开始
    start = clock();

    //移动
    while((i=_getch())!=0)//getch也行?
    {
        if (i == (int)‘w‘)
        {
            turnto(x, y - 1);
            clean(x, y);
            turnto(x, y - 1);
            y = y - 1;
        }
        else if(i==(int)‘s‘)
        {
            turnto(x, y + 1);
            clean(x, y);
            turnto(x, y + 1);
            y = y +1;
        }
        else if (i == (int)‘a‘)
        {
            turnto(x-1, y );
            clean(x, y);
            turnto(x-1, y );
            x = x - 1;
        }
        else if (i == (int)‘d‘)
        {
            turnto(x + 1, y);
            clean(x, y);
            turnto(x + 1, y);
            x = x + 1;
        }
        else if (i == (int)‘q‘)
        {
            printf("你选择退出");
            Sleep(1000);
            return 0;
        }
        //遍历
        for (i = 0; i <= sizeof(coin) / sizeof(long); i++)
        {
            if (x * 100 + y == coin[i])
            {
                coin[i] = 100000;
                score++;
                turnto(0, 1);
                printf("得分:%d                    ",score);
                turnto(x, y);
            }
        }
        if (score == 10)
        {
            break;
        }
    }

    //计时结束
    end = clock();
    t = (end - start) / CLOCKS_PER_SEC;
    turnto(26, 1);
    printf("  用时: %d 秒     \n ", t);
    Sleep(1000);
    printf("%s,你的综合得分为%d",name,110-t);
    Sleep(1000);
    return 0;
}

ps:这是我上大学前几天看了printf()与scanf()之后做出来的游戏;其中随机数与位置跳转函数都是上网查的。所以说编程很有意思,它让你创造而不是让你接受。

自己做的一个小游戏(1)--吃金币(基础版)

标签:core   gets   info   有意思   for   tst   pre   编程   math.h   

原文地址:https://www.cnblogs.com/juicebox/p/9636442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!