求一C++文字类小游戏源代码

作者&投稿:娄航 (若有异议请与网页底部的电邮联系)
求一C++小游戏源代码 简单点的?!!谢谢~

#include
#include
#include
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int i,key;
int score=0;
int gamespeed=32000;
struct Food /*食物的结构体*/
{
int x; /*食物的横坐标*/
int y; /*食物的纵坐标*/
int yes; /*食物是否出现的变量*/
}food;
struct Snack /*蛇的结构体*/
{
int x[N];
int y[N];
int node; /*蛇的节数*/
int direction; /*蛇的方向*/
int life; /*蛇的生命,0活着,1死亡*/
}snake;
void Init(void); /*图形驱动*/
void Close(void); /*关闭游戏函数*/
void DrawK(void); /*画图函数*/
void GameOver(void);/*输出失败函数*/
void GamePlay(); /*游戏控制函数 主要程序*/
void PrScore(void); /*分数输出函数*/

DELAY(char ch)/*调节游戏速度*/
{
if(ch=='3')
{
delay(gamespeed); /*delay是延迟函数*/
delay(gamespeed);
}
else if(ch=='2')
{
delay(gamespeed);
}
}

Menu()/*游戏开始菜单*/
{
char ch;
printf("Please choose the gamespeed:
");
printf("1-Fast 2-Normal 3-Slow
");
printf("
Please Press The numbers..
");
do
{ch=getch();}
while(ch!='1'&&ch!='2'&&ch!='3');
clrscr();
return(ch);
}

/*主函数*/
void main(void)
{
int ch;
ch=Menu();
Init();
DrawK();
GamePlay(ch);
Close();
}

void Init(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\c");
cleardevice();
}

void DrawK(void)
{
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
for(i=50;i<=600;i+=10)
{
rectangle(i,40,i+10,49); /*画出上边框*/
rectangle(i,451,i+10,460); /*画出下边框*/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /*画出左边框*/
rectangle(601,i,610,i+10); /*画出右边框*/
}
}

void GamePlay(char ch)
{
randomize(); /*随机数发生器*/
food.yes=1; /*1代表要出现食物,0表示以存在食物*/
snake.life=0;
snake.direction=1;
snake.x[0]=100;snake.y[0]=100;
snake.x[1]=110;snake.y[1]=100;
snake.node=2;
PrScore();
while(1) /*可以重复游戏*/
{
while(!kbhit()) /*在没有按键的情况下蛇自己移动*/
{
if(food.yes==1) /*需要食物*/
{
food.x=rand()%400+60;
food.y=rand()%350+60; /*使用rand函数随机产生食物坐标*/
while(food.x%10!=0)
food.x++;
while(food.y%10!=0)
food.y++; /*判断食物是否出现在整格里*/
food.yes=0; /*现在有食物了*/
}
if(food.yes==0) /*有食物了就要显示出来*/
{
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i--) /*贪吃蛇的移动算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1]; /*贪吃蛇的身体移动算法*/
}

switch(snake.direction) /*贪吃蛇的头部移动算法,以此来控制移动*/
{
case 1:snake.x[0]+=10;break;
case 2:snake.x[0]-=10;break;
case 3:snake.y[0]-=10;break;
case 4:snake.y[0]+=10;break;
}
for(i=3;i<snake.node;i++) /*判断是否头部与身体相撞*/
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();
snake.life=1;
break;
}
}
/*下面是判断是否撞到墙壁*/
if(snake.x[0]595||snake.y[0]455)
{
GameOver();
snake.life=1;
}
if(snake.life==1) /*如果死亡就退出循环*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y) /*判断蛇是否吃到食物*/
{
setcolor(0);
rectangle(food.x,food.y,food.x+10,food.y-10); /*吃的食物后用黑色将食物擦去*/
snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*现把增加的一节放到看不到的地方去*/

snake.node++;
food.yes=1;
score+=10;
PrScore();
}
setcolor(4); /*每次移动后将后面的身体擦去*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
delay(gamespeed);
DELAY(ch);
setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

}
if(snake.life==1)
break;
key=bioskey(0); /*接受按键*/
if(key==ESC)
break;
else
if(key==UP&&snake.direction!=4)/*判断是否改变方向*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}
}

void GameOver(void)
{
cleardevice();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();
}

void PrScore(void)
{
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"scord:%d",score);
outtextxy(55,20,str);
}
void Close(void)
{
getch();
closegraph();
}

贪吃蛇

#include
#include
main()
{
char a[3][3]={'\0'},b='1';
int i,j,k1,k2;randomize();
k1=random(3);k2=random(3);
a[k1][k2]=' ';
while(a[0][0]=='\0'||a[0][1]=='\0'||a[0][2]=='\0'||a[1][0]=='\0'||a[1][1]=='\0'||a[1][2]=='\0'||a[2][0]=='\0'||a[2][1]=='\0'||a[2][2]=='\0')
{
i=random(3),j=random(3);
if(a[i][j]=='\0')a[i][j]=b,b++;
}
loop:
clrscr();

for(i=0;i<3;i++) /*输出*/
{
for(j=0;j<3;j++)printf("%c ",a[i][j]);
putchar('
');
}

for(b=0;b!=72&&b!=75&&b!=77&&b!=80;b=getch()); /*输入*/
switch(b) /*判断*/
{
case 72: if(2==k1)goto loop;
else
{
a[k1][k2]=a[k1+1][k2];
a[k1+1][k2]=' ';
k1++;
}
break;
case 75: if(2==k2)goto loop;
else
{
a[k1][k2]=a[k1][k2+1];
a[k1][k2+1]=' ';
k2++;
}
break;
case 80: if(0==k1)goto loop;
else
{
a[k1][k2]=a[k1-1][k2];
a[k1-1][k2]=' ';
k1--;
}
break;
case 77: if(0==k2)goto loop;
else
{
a[k1][k2]=a[k1][k2-1];
a[k1][k2-1]=' ';
k2--;
}
break;
}

/*是否完成*/
if(a[2][2]==' '&&a[0][0]=='1'&&a[0][1]=='2'&&a[0][2]=='3'&&a[1][0]=='4'&&a[1][1]=='5'&&a[1][2]=='6'&&a[2][0]=='7'&&a[2][1]=='8')
{
clrscr();
printf("1 2 3
4 5 6
7 8
Yes!!!");
getch();
}
else goto loop;
}

  给你一个作为参考吧,简单了一点,
  可以在此基础上再发挥和作修改:

  #include<conio.h>
  #include<stdio.h>

  #include<windows.h>
  #include<stdlib.h>
  #include<time.h>

  /*************************** 定义换行函数 *********************************/
  change_line(int k)
  { int i;
  for(i=0;i<k;i++)
  {
  printf("\n");
  }
  }
  /**************************** 打印空格函数 ********************************/
  space(int k)
  { int i;
  for(i=0;i<k;i++)
  {
  printf(" ");
  }
  }
  /************************** 延时函数 ************************************/
  delay_x(int k)
  {
  int i;
  for(i=0;i<k;i++)
  {
  Sleep(50);
  }
  }
  /******************* 让光标居中(偏左)函数 ************************/
  center()
  {
  system("cls");
  change_line(20);
  space(25);
  }

  main()
  {
  int i;
  int line=0,col=0,num=0;
  int score=0,times=1;
  char one[26];
  char c;

  srand(time(0));

  for(i=0,c='a';i<26;i++,c++) /* 把a~z赋给数组 */
  {
  one[i]=c;
  }
  center();
  printf("press anykey to start");
  getch();

  while(1)
  { system("cls");
  printf("times:%d ",times); /* 打印关数 */
  printf(" score: %d",score); /* 打印分数 */
  printf(" 1----Pause,0----exit");
  printf("\n");
  printf("________________________________________________________________________");
  printf("\n");

  line=0;

  col=rand()%60+1;

  num=rand()%26;

  while(1) /* 开始下落 */
  {
  space(col);
  printf("%c",one[num]); /* 打印出字母 */
  delay_x(10-times);
  printf("\b \n");
  line++;

  if(line>45)
  {
  score-=10;
  break;
  }
  if(score<0)
  {
  center();
  printf("sorry,you faile!");
  getch();
  exit(0);
  }

  if(kbhit()) /* 如果有键按下 */
  {
  c=getch(); /* 接收输入的字符 */
  if(c==one[num])
  {

  score+=10;
  break;
  }
  switch(c)
  {
  case '0': exit(0);
  case '1': getch();
  default : ;
  }
  }
  }

  if(score>=100*times) /* 一关完毕 */
  {
  times++;
  center();
  if(times>9)
  {
  printf("congratulation,you win!");
  }
  printf("If you go to the %dy/n)",times);
  if((getch())=='n')
  {
  center();
  printf("I am sorry for you give up!");
  getch();
  break;
  }
  }
  }
  }


皮在语c圈是什么意思
语c圈中皮的意思是皮表,身份的意思,圈中其他功能如下:1、扩列:原创、同人、小说各种圈子。2、水聊:不穿帮的皮上聊天;讨论剧情。3、对戏:根据剧本上的背景、动作、语言、心理剧情进行演绎。4、皮表、人社、角色、吐槽、剧文、戏文、清晰展示功能。

有趣的汉字幼儿园大班语言教案
重点:引导幼儿自己发现象形字与会意字的特点,知道文字的目的及用途。 难点:引导幼儿用合作的方式表现汉字,在合作过程中学会分工、协商。 活动过程: 1、观看课件,引导幼儿初步了解中国汉字的起源和简单特点。 (1)出示甲骨文的P阳图片,了解甲骨文的特点。 教师:小朋友中有很多人都认识了许多字,今天罗老师准备了一些...

求C++小游戏源代码啊~
for(i=1;i<=N;i++){ for(j=1;j<=N;j++)wall[i][j]=1;} color(11);for(i=0;i<N+2;i++){ for(j=0;j<N+2;j++){ if(wall[i][j])cout<<"■";else cout<<"□" ;} cout<<endl;} gotoxy(N+3,1);\/\/显示信息 color(20);cout<<"按 W S A D 移动方向"<<...

游记怎么写
写游记更是这样,一定要有一条合理的线索贯穿其中。这条线索也可以说是写作的顺序。\\x0d\\x0a游记中,最常用的写作顺序可能就是行踪了。即按照游览的先后次序来写。比如一篇参观动物园的游记,就可以按照参观的顺序一一记述。此外,还有以景物的组织关系、方位关系等作为记游的线索的。我们建议大家初学...

四字俏皮成语游戏
顶针续麻 首尾相连,循环往复的一种文字游戏。如:成语接龙等。出处:宋、元以来的一种文字游戏。即一人说一条成语或诗文,下一个人以其尾字为首字,再接着说,说不出者为负,罚饮酒或其他。斗鸡养狗 指旧时剥削阶级子弟游手好闲的无聊游戏。同“斗鸡走狗”。出处:《金瓶梅词话》第九八回:“他...

求游戏...
详细资料】http:\/\/hi.baidu.com\/%C9%B5x%CB%A7\/blog\/item\/479e9ba076d42f814610640b.html (因为百度知道一些文字贴不出来,所以把我的回答放到博客里了)【预告片】-《希魔复活》让“魂斗罗精神”再度复活!http:\/\/you.video.sina.com.cn\/b\/25135221-1634108120.html 《蔷薇十字小剑》...

寻求c语言版的俄罗斯方块程序
c=bioskey(1); if(c!=0) c=bioskey(0); } main() { int dotx[4],doty[4],score; \/*dotx[]doty[]表示一个方块个点的坐标*\/ int ddx,ddy; int rzt1,rzt2,i,u,t=1; int a[5],b[11],o,p,an,bn; int rotx[4],roty[4],spd=0; begin: system("cls"); \/*游戏初始化阶段*\/ ...

关于游戏四字成语
成语 解释 拆白道字 把一个字拆成一句话的一种文字游戏。尘饭涂羹 涂:泥。尘做的饭,泥做的羹。指儿童游戏。比喻没有用处的东西。顶针续麻 首尾相连,循环往复的一种文字游戏。如:成语接龙等。斗鸡走狗 使公鸡相斗,使狗赛跑。指旧时剥削阶级子弟游手好闲的无聊游戏。群鸿戏海...

小学生汉字听写大赛六年级
7. .巢湖[cháo hú] 中国第五大淡水湖最小的一个湖泊,地处长江中下游。安徽省合肥市南部。8. 妒忌:dùjì对别人的长处感到不痛快或忿恨,同时又希望自己具有同样长处。9.文质彬彬:wén zhì bīn bīn 原形容人既文雅又朴实,后形容人文雅有礼貌。10.神采奕奕 :shén cǎi yì yì形容精神...

儿童玩具都有哪些分类?
详情请查看视频回答

上思县17055443176: 跪求用VC++编写的简单点的小游戏程序源代码,谢谢 -
仰峡复达: #include<graphics.h>#include<stdio.h>#include<math.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#define PI 3.1415926#define x0 320#define y0 240 DrawClock(int x,int y,int color) { int r=150; setcolor(color); circle(x,y,r); circle(x,y,2); } ...

上思县17055443176: 谁有c++的小游戏程序啊 ? -
仰峡复达: 谁有c++的小游戏程序啊 Program Description=程序名称:game.c */ /*程序目的:打砖块游戏演示 */ /*written by :董大钿 *...

上思县17055443176: 谁有c++小游戏代码
仰峡复达: #include<iostream>#include<windows.h>#include<conio.h>#include<time.h>#include<string>using namespace std;/*=============== all the structures ===============*/typedef struct Frame{COORD position[2];int flag;}Frame;/*===========...

上思县17055443176: 最近新学c++,求一份用c++写成的贪吃蛇代码,希望可以输入游戏者姓名,和最高分模块.谢谢 -
仰峡复达: C++编写 猜数字小游戏#include <iostream.h> #include <ctime> #include <cstdlib> void main(){ cout<<"猜数字游戏正式开始,请把握机会!"<<endl; int x,y; char z; do{ int i=1; srand(time(0)); y=rand()%1000; cout<<endl<<"系统已经随机生成0...

上思县17055443176: C++:趣味编程实现一个小游戏 -
仰峡复达: #include"stdio.h"#define N 17 void main(){ int a,b,temp,i,j,k,l,m,n; int num[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; int *ptr; printf("开始元素序号:"); scanf("%d",&a); printf("报几出列:"); scanf("%d",&b); ptr=&num[a-1]; ...

上思县17055443176: 能不能用C语言编个小游戏,代码在三百行左右? -
仰峡复达: 打字游戏#include<stdio.h>#include<time.h> char *kw[]={"Q W E R T Y U I O P [ ]","A S D F G H J K L ; '","Z X C V B N M , . / "}; long AllCounter=0,RightCounter=0,WrongCounter=0; main() {int i,j;int fun_Esc();clrscr();gotoxy(18,1);printf(...

上思县17055443176: 求游戏贪吃蛇的源程序,要求用C++编写. -
仰峡复达: #define N 200 #include#include#include#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*得分*/ int gamespeed=50000;/*游戏速度自己调整*/ struct Food ...

上思县17055443176: 用C语言设计小游戏的程序??急!!! -
仰峡复达: 用c++实现的"贪吃蛇"游戏源码 // greedsnake.cpp #include <bios.h> #include <conio.h> #include <dos.h> #include <graphics.h> #include <stdlib.h> #include <time.h> #include "conf.h" typedef struct node { int x,y; struct node *next; }Node; ...

上思县17055443176: 求助,用C语言做一个小游戏(什么游戏都行不要太复杂),最最最基础的C语言就可以,并赋予代码,求助大神 -
仰峡复达: 如果不需要图形界面,我倒是有个非常的简单的游戏,请复制中间的代码,建议你看下最后的注释#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h> int main(void) { int num[6], num1[6], num2[6]; int a, b; int number, number...

上思县17055443176: 求助,用C语言做一个小游戏(不要太复杂),最最最基础的C语言就可以,并赋予代码,谢谢! -
仰峡复达: 猜数字 超简单 去掉说明文字,也就十几行 简单说明见注释#include <stdio.h>#include <stdlib.h>#include<time.h> int main() { int i; int a; int t; printf("欢迎玩猜数字小游戏!\n"); printf("玩法介绍:\n"); printf("每次游戏会设置一个数...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网