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

Posted nerd呱呱de博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己做的一个小游戏--吃金币(基础版)相关的知识,希望对你有一定的参考价值。



效果图

代码

#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()之后做出来的游戏;其中随机数与位置跳转函数都是上网查的。所以说编程很有意思,它让你创造而不是让你接受。

以上是关于自己做的一个小游戏--吃金币(基础版)的主要内容,如果未能解决你的问题,请参考以下文章

Java 吃金币游戏设计与制作

Python游戏开发,pygame模块,Python实现经典吃豆豆小游戏

求一个关于松鼠吃松果的手机游戏,上下左右滑动操作,中途碰到啥野猪跟狼就会死掉的那个游戏

py小游戏系列吃豆人,儿时的回忆

py小游戏系列吃豆人,儿时的回忆

py小游戏系列吃豆人,儿时的回忆