想用c++编写一个贪吃蛇,怎么编啊?

目前只会c++基础知识,怎么创建出图形界面啊,需要的工具有哪些?望高手指导!

MFC 一般学校学完c++的课程设计就是MFC 。
MFC说简单点就是微软把创建图形的函数都给你了,比如说对话框啊,按钮啊什么的,你只要响应对应的函数就可以了。
但是学起来还是挺繁杂的。
还有其他很多的类是的工具,比如说QT 目前也很流行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-11
#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "stdlib.h"
#include "time.h"
#define null 0

void wall(void);
void printpoint(int x,int y);
void gotoxy(int x,int y);
void playgame(void);
void printsnake(void);
void printfood(void);
void printscore(void);
void move(struct snake);

struct snake
{
int x,y;
struct snake *next;
struct snake *front;
};struct snake snake[100],snakebody,*head,*p,*m;
void main()
{
printscore();
wall();
playgame();
getchar();
}

void wall(void)
{
char pwall;
int hang;
int lie;
int blank;
pwall=43;
for(lie=1;lie<80;lie++)
{
printf("%c",pwall);
}
printf("\n");
for(hang=1;hang<20;hang++)
{
printf("%c",pwall);
for(blank=1;blank<78;blank++)
{
printf(" ");
}
printf("%c\n",pwall);
}
for(lie=1;lie<80;lie++)
{
printf("%c",pwall);
}
printf("\n");
printf("上:w 下:s 左:a 右:d");
}

void printpoint(int x,int y)
{

HANDLE hout;
COORD coord;

coord.X=x;
coord.Y=y;

hout=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout,coord);

printf("*"); // 在第x行,第y列开始显示字符串
}

void gotoxy(int x,int y)
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
HANDLE hConsoleOut;
hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
csbiInfo.dwCursorPosition.X = x;
csbiInfo.dwCursorPosition.Y = y;
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
}

void playgame(void)
{
printfood();
printsnake();
}

void printsnake(void)
{
int bodynum,judgebodynum,step;

snake[bodynum];
snake[0].x=10;
snake[0].y=10;
bodynum=3;
for(judgebodynum=1;judgebodynum<=bodynum;judgebodynum++)
{
snake[judgebodynum].x=snake[judgebodynum-1].x+1;
snake[judgebodynum].y=snake[judgebodynum-1].y;
snake[judgebodynum-1].next=&snake[judgebodynum];
snake[bodynum-1].next=null;
}
snake[0].front=null;
p=&snake[0];
do
{
printpoint(p->x,p->y);
p=p->next;
}
while(p!=null);
p=&snake[0];
do
{
printpoint(p->x,p->y);
p=p->next;
(p->x)++;
}
while(p!=null);
}

void printfood(void)
{
struct food
{
int x,y;
};
struct food food1;
srand((int)time(0));
do
{
food1.y=rand()%20;
}
while(food1.y<2);
do
{
food1.x=rand()%80;
}
while(food1.x<1);
printpoint(food1.x,food1.y);

}

void printscore(void)
{
int score;
score=0;
printf("score:%d\n",score);
}

void move(struct snake)
{
int step;
snake[0].x=10;
snake[0].y=10;
for(step=0;step<10;step++)
{
snake[0].x=snake[0].x+1;
m=&snake[0];
do
{
}
while(m->next=null);
}追问

不要复制粘贴好不!这些在网上我也能搜索到的

第2个回答  2011-04-12
用VC++啊

C语言C++图形库---贪吃蛇大作战【附源码】
首先,创建一个800 * 600的窗体,使用默认坐标系,设置背景色并清空窗体。接着,将窗体水平分隔为20等分,垂直分隔为15等分,构建网格坐标系统。在游戏界面,用5格白色的矩形表示蛇,用黄色的一格矩形表示食物。绘制网格线,水平线从x坐标0至800,垂直线从y坐标0至600,每条线段间隔为40像素,以方便观...

求贪吃蛇的C++程序代码
printf("Please choose the gamespeed:\\n");printf("1-Fast 2-Normal 3-Slow\\n");printf("\\nPlease Press The numbers..\\n");do {ch=getch();} while(ch!='1'&&ch!='2'&&ch!='3');clrscr();return(ch);} \/*主函数*\/ void main(void){ int ch;ch=Menu();Init();DrawK()...

如何用C++写贪吃蛇???
{ return ( getSymbol(cmp)=='@' || cmp.rSign == row-1 || cmp.rSign== 0 || cmp.lSign == line-1 || cmp.lSign == 0 );} void InitInstance(); \/\/初始化游戏界面 bool UpdataGame(); \/\/更新游戏界面 void ShowGame(); \/\/显示游戏界面 };endif \/\/ SNAKE_H snake.cpp...

c++编程小游戏代码
以下是贪吃蛇源代码: #include<iostream.h>#include<windows.h>#include#include<stdlib.h>#include<conio.h>#define N 21void gotoxy(int x,int y)\/\/位置函数{COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}void color(int a)\/\/颜色函数{Se...

求c++贪吃蛇的代码
贪吃蛇游戏,由于是C++源码 且 用到Windows API ,是控制台界面不是图形界面,需要用VC++6.0 或 VC++2010 在windows环境编译运行。如果符合上述条件一定可以编译运行zjlj,2015.3.16*\/#define DEBUG 0 \/\/当程序在调试阶段时 DEBUG为 1#include<iostream>#include<windows.h>#include#include<conio.h>using namespac...

谁有用c++写的贪吃蛇源代码分享一个给我吧, 好人一生平安!
1. 贪吃蛇可以自动直线前进,或者玩家可以通过方向键操纵贪吃蛇上下左右前进,每次前进一格。2. 贪吃蛇在规定的区域内活动,当:①贪吃蛇触碰到墙壁时;②贪吃蛇的蛇头触碰到蛇身或者蛇尾时;③玩家的键盘输入不是方向键时;命令行显示“Game Over!”并且退出游戏。3. 贪吃蛇活动的区域内每次随机产生一颗“...

求在VC++6.0中运行的贪吃蛇代码
贪吃蛇游戏,由于是C++源码 且 用到Windows API ,是控制台界面不是图形界面,需要用VC++6.0 或 VC++2010 在windows环境编译运行。如果符合上述条件一定可以编译运行zjlj,2015.3.16*\/#define DEBUG 0 \/\/当程序在调试阶段时 DEBUG为 1#include<iostream>#include<windows.h>#include#include<conio.h>using namespac...

基于C++的贪吃蛇游戏能运行出来的完整代码有哪些?
一个参考实例,在VC++6.0中可以运行成功(可能还有问题)\\x0d\\x0a\\x0d\\x0a#include \\x0d\\x0a#include \\x0d\\x0a#include \\x0d\\x0a#include \\x0d\\x0a#include \/\/使用当前时间做种子;\\x0d\\x0aenum dir{up,down,left,right}; \/\/枚举类型enum dir;\\x0d\\x0a\/\/围墙;\\...

C++编的贪食蛇游戏 #include<iostream.h>><windows.h><conio.h>_百度...
当循环1中clock()-start<=gamespeed刚好不成立之时,即上一次循环还成立,这一次循环就超出了,方向键又恰好在此时按下,那么timeover的值为0,于是后面的两个getch();均不会执行。那么在进入外层while的下一次循环时,由于循环1中kbhit()写在&&之前,根据kbhit()的非阻塞性,之前未被getch()读取的...

C++做一个小游戏,有源代码的最好,谢谢
for(c=1;c<=Column;c++) {cout<<" "<<surface[r][c];}; cout<<endl; }; cout<<"请按格式输入"<<endl <<"前两个数字为坐标,最后一个数字“1”表示此位置为雷,“0”则表示不是。"<<endl <<"如:1 3 1 表示一行三列是雷;2 4 0 表示二行四列不是雷"<<endl <<"提示:当数字周围雷都...

相似回答