c++小游戏之贪吃蛇

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
#include<math.h>
#define sqr(x) x*x
int i,j,x,y,d,k,f,stx,sty,score,e,l,w,h;
char s[21][21];
int a[21][21];
int hard[13]={1,2,5,10,15,20,30,45,60,80,100};
void find()
{
	for(int q=1;q<=20;q++)
	    for(int r=1;r<=20;r++)
	        if(a[q][r]==e)
	        {
	        	s[q][r]=' ';
	        	return;
			}
}
int yd()
{
	if(w=='H'&&k=='P')return 0;
	if(w=='P'&&k=='H')return 0;
	if(w=='M'&&k=='K')return 0;
	if(w=='K'&&k=='M')return 0;
	if(w=='K')return 1;
	if(w=='P')return 1;
	if(w=='H')return 1;
	if(w=='M')return 1;
	return 0;
}
int main()
{
	for(i=1;i<=20;i++)
	    for(j=1;j<=20;j++)
	       s[i][j]=' ';
	s[9][10]=1;s[10][10]=1;s[11][10]=1;
	for(i=9;i<=11;i++)
	{
		a[i][10]=i-8;
	}
	stx=11;
	sty=10;
	e=1;
	srand(time(0));
	z:;
	x=rand()%20+1;
	y=rand()%20+1;
	while(s[x][y]!=' ')
	{
		x=rand()%20+1;
		y=rand()%20+1;
	}
	s[x][y]='*';
	l=3;
	for(i=1;i<=20;i++)
	{
		s[i][1]=2;
		s[1][i]=2;
		s[20][i]=2;
		s[i][20]=2;
	}
	w='P';
	h=12;
	while(!d)
	{
		system("cls");
		for(;kbhit();)w=getch();
		if(w!=0&&yd())k=w;
		if(k=='H')stx--;
		if(k=='M')sty++;
		if(k=='P')stx++;
		if(k=='K')sty--;
		if(s[stx][sty]=='*')
		{
			score++;
			while(s[x][y]!=' ')
			{
				x=rand()%20+1;
				y=rand()%20+1;
			}
			s[x][y]='*';
			l++;
			s[stx][sty]=1;
			a[stx][sty]=l;
		}
		else
		if(s[stx][sty]!=' ')
		{
			for(i=1;i<=20;i++)
			{
			    for(j=1;j<=20;j++)
			        putchar(s[i][j]);
			    puts("");
			}
			printf("Game over!\nscore:%d\nhard:%d",score,13-h);
			getch();
			getch();
			return 0;;
		}
		else
		{
			l++;
			s[stx][sty]=1;
			a[stx][sty]=l;
			find();
			e++;
		}
		for(i=1;i<=20;i++)
		{
		    for(j=1;j<=20;j++)
		        printf("%c",s[i][j]);
		    puts("");
		}
		printf("score:%d",score,13-h);
		printf("\nhard:%d",13-h);
		if(score>=hard[13-h])h--;
		Sleep(h*sqr((int)sqrt(h))*3);
	}
	return 0;
}
时间: 2024-10-25 05:52:29

c++小游戏之贪吃蛇的相关文章

C语言 小游戏之贪吃蛇

还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半的编程,如今认为这个C语言的贪吃蛇还是比較简单的,花的时间不非常多! 我认为主要是思路正确,基本上就米什么大的问题. 如今贴上我的代码和我的详解,希望大家多交流. 首先说下我这个贪吃蛇仅仅是一个简单的,游戏结束有2种可能:一碰墙,二自杀即蛇头碰到蛇身. 如有不好之处,请见谅把. 首先说下我这个贪吃蛇

【C语言小游戏】 贪吃蛇

windows编译运行 源代码: /*这是一个贪吃蛇代码,运行环境VC++6.0(亲测完美运行)*/ /*该程序在dos系统下运行,不需要graphics.h头文件*/ #include <windows.h> #include <stdlib.h> #include <time.h> #include <stdio.h> #include <string.h> #include <conio.h> #define N 21 int 

关于第一次用java写小游戏(贪吃蛇)的体会记录

作为一只菜鸡,对于编程的世界还一无所知,但是感觉应该要写点实用的东西.突然发现好像贪吃蛇应该能写出来(那种几乎没有用户界面的),于是就开始了. 1.关于对简单的动画呈现的资料准备 因为只有一些捉襟见肘的知识,所以这些资料还得一步步来. 首先我发现动画呈现和键盘输入这些都可以用 awt/swing + Thread线程类 的组合来搞定.首先是线程类在这方面的应用 2 关于主面板(JFrame 和 JPanel) 和 画图工具Graphics JPanel 和其子类可以被添加到JFrame中 作为一

WPF小程序:贪吃蛇

原文地址:http://hankjin.blog.163.com/blog/static/337319372009535108234/ 一共两个文件:EasterEgg.xaml + EasterEgg.xaml.csEasterEgg.xaml<Window x:Class="Inspect.UI.EasterEgg"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  

Python:游戏:贪吃蛇(附源码)

贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么画? 蛇是由一个个小方块组成的,那么我们可以用一个 list 记录每一个小方块的坐标,显示的时候将所有小方块画出来即可. 2.蛇怎么移动? 第一反应就是想蚯蚓蠕动一样,每一个方块向前移动一格,但这样做很麻烦,仔细想下,其实除了头尾,蛇的其他部分根本就没有动过,那就简单了,将下一格的坐标添加到 list 开头,并移除 list 的最后一个元素,就相当于蛇向前移动了一格. 3.如何判定游戏结束? 蛇移动超出了游戏区的范围或者碰到了

C++控制台游戏之贪吃蛇——(1)

做一个贪吃蛇的游戏,不用现成的游戏引擎直接使用控制台.第一个内容应该是需求分析,任何程序都应该基于需求分析来进行.否则全凭脑补,走一步看一步那回滚代码都会让你喊GG. 那么做一个控制台的贪吃蛇游戏需要啥子东西. 1.node类保存坐标点 2.map保存整张地图 3.蛇.蛇的长度.蛇的方向 4.食物结点.食物是否被吃了 5.蛇的移动速度 6.游戏是否失败/结束.游戏是否开始 7.类方法:移动.上下左右.自动生成食物 8.游戏分数(吃到食物的个数) 暂时就想到这么多,还有啥子东西....慢慢想,慢慢

[原创]html5游戏_贪吃蛇

代码随便写写,尚有许多不足,PC与手机端皆可运行 手机端滑屏操作,PC端方向键操作 疑问: 生成食物,与判断是否可以移动方面 有两种实现方式, 1.使用js内存,数组循环判断 2.使用dom的query方法 哪种比较快,哪种比较好? 目前的代码是用第二种方法实现 在线地址: http://wangxinsheng.herokuapp.com/snake 截图: 部分代码: html: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <m

python之游戏开发-贪吃蛇

#!/usr/bin/env python# coding=utf-8import pygameimport sysimport random # 全局定义,screen的长和宽SCREEN_X = 600SCREEN_Y = 600 # 蛇类# 点以25为单位class Snake(object): # 定义一个类--Snake,默认使用object类,如果你有更好的话,可以替换它 # 初始化各种需要的属性 [开始时默认向右/身体块x5] def __init__(self): # 定义ini

游戏系列~贪吃蛇(3)

#include<iostream>#include<windows.h>#include<ctime>#include<cstdlib>#include<conio.h>#include <bits/stdc++.h> #define N 21using namespace std;void gotoxy(int x,int y)//位置函数{COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorP