无法运行的贪吃蛇游戏代码,求大神帮忙修改!

原创 2014年11月04日 08:00:07
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>                                 //使用当前时间做种子
enum dir {up,down,left,right};                    //枚举类型enum dir //围墙
class Fence
{
public:
    void initFence();
    void OutputF();
public:
    char game[20][20];
} f;                                               //定义对象  //画框框
void Fence::lnitFence()
{
    for (int i=0; i<20; i++)
        for (int j=0; j<20; j++)
        {
            if (i==0||i==19||j==0||j==19)
                game[i][j]='*';
            else
                game[i][j]=' ';
        }
}                                                   //显示框框
void Fence::OutputF()
{
    for (int i=0; i<20; i++)
    {
        for (int j=0; j<20; j++)
            cout<<game[i][j]<<'';
        cout<<endl;
    }
}                                                    //蛇结点
class SnakeNode
{
private:
    int x,y;
    SnakeNode *prior,*next;
public:
    void add_head(int x,int y)
    int get_x();
    int get_y();
    void delete_tail();
}
*head=NULL,*tail=NULL;                                 //插入头结点
void SnakeNode::add_head(int x,int y)
{
    SnakeNode *q=new SnakeNode;
    q->x=x;
    q->y=y;
    q->next=head;
    q->prior=NULL;
    if (head)
        head->prior=q;
    head=q;
    if (!tail)
        tail=head;
    f.game[x][y]='*';                                   //f对象可以在定义Fence类时定义;且Fnce类在SnakeNode类前定义
}
int SnkeNode::get_x()
{
    return x;
}
int SnakeNode::get_y()
{
    return y;
}                                                        //删除尾结点
void SnakeNode::delete_tail()
{
    SnakeNode *p=tail;
    f.game[tail->get_x()][tail->get_y()]=' ';            //把尾结点的坐标表示的'*'置为空格;
    if (tail==head)
        tail=head=NULL;
    else
    {
        tail=tail->prior;
        tail=next=NULL;
    }
    delete p;
}
class move
{
public:
    dir point;                                            //枚举变量point:控制方向
    int food_x;
    int food_y;
public:
    void moving();
    void change_point(char);                               //改变方向;
    void get_food();
};
void move::moving()
{
    int a,b;
    a=head->get_x();                                        //取得头结点横坐标
    b=head->get_y();                                        //取得头结点纵坐标
    switch (point)
    {
    case up:
        --a;
        break;
    case down:
        ++a;
        break;
    case left:
        --b;
        break;
    case right:
        ++b;
        break;
    }
    if (a==19||b==19||a==0||b==0||game[a][b]='*')             //判断是否撞墙
    {
        cout<<"gameover!!!"<<endl;
        exit(0);
    }
    if (a==food_x&&b==food_y)                                 //吃food
    {
        head->add_head(a,b);
        get_food;
    }
    else
    {
        head->add_head(a,b);                                   //插入头结点
        head->delete_tail();                                   //删除尾结点
    }
    void move::change_point(char keydown)
    {
        switch (keydown)
        {
        case 'w':
            point=up;
            break;
        case 's':
            point=down;
            break;
        case 'a':
            point=left;
            break;
        case 'd':
            point=right;
            break;
        }
    }
    void move::get_food()
    {
        srand((unsigned int) time(NULL));                       //做种子(程序运行时间)
        food_x=rand()%18+1;
        food-y=rand()%18+1;
        f.game[food_x][food_y]='*';
    }
}
int main()
{
    cout<<"Using 'w,a,s,d'to control direction!!!\n\n\n";     //画框框和小蛇;
    move m;
    f.lnitFence();
    head->add_head(4,3);
    head->add_head(4,4);
    head->add_head(4,5);
    m.get_food();
    f.OutputF();
    while (ture)
    {
        char keydown =getch();                                  //getch()返回
        m.chan
        ge_point(keydown);
        while (!kbhit())                                        //判断有没有按键落下
        {
            system("cls");                                       //清屏函数;
            m.moving();
            f.OutputF();
            sleep(200);
        }
    }
    return 0;
}

 

 错误显示:



  


这是我在网上看到的,照着原图花了半个多小时敲出来的代码,可问题还是一大堆;网上的东西果然不可信啊   这里面好像大部分都是C语言,求有空的大神帮我修改成C++,找出错误并改正,谢谢啦;新手上路,请多多关照。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Liuchang54/article/details/40778761

JavaScript贪吃蛇游戏视频课程

本课程介绍了使用js实现游戏贪吃蛇功能,设计到物体的检测碰撞以及计算和运行顺序的问题,逻辑层加强的判断。
  • 2017年09月18日 21:54

python 贪吃蛇小游戏代码

#!/usr/bin/python # -*- coding: UTF-8 -*- #作者:黄哥 #链接:https://www.zhihu.com/question/55873159/answer/...
  • lixiangyong123
  • lixiangyong123
  • 2017-02-16 14:43:52
  • 2167

从0开始如何开发贪吃蛇游戏

作为一款经典游戏,贪吃蛇相信很多朋友都玩过,规则简单易上手。但您有没有想过自己制作一款贪吃蛇游戏呢?鄙人最近有意学习MFC,所以先拿贪吃蛇练了一下手。接下来就介绍一下这款最简陋的贪吃蛇的开发历程。...
  • wenpinglaoyao
  • wenpinglaoyao
  • 2016-06-01 13:08:53
  • 1764

贪吃蛇代码~~自编~~~

这个是贪吃蛇的代码,没设置加速系统~~自己可以根据自己的需求加功能 #include #include #include #include #include #define MAX_SIZE 50 ...
  • u013451221
  • u013451221
  • 2014-03-25 17:39:16
  • 598

无法运行的贪吃蛇游戏代码,求大神帮忙修改!

跪求大神指点!!!
  • Liuchang54
  • Liuchang54
  • 2014-11-04 08:00:07
  • 1774

编程实现贪吃蛇游戏界面的主要代码

- (void)viewDidLoad {     [super viewDidLoad];     allsheshen=[[NSMutableArray alloc ] init];   ...
  • u010912122
  • u010912122
  • 2013-10-17 13:25:36
  • 608

贪吃蛇游戏代码

#include #include #include #include const int maxn = 100; const int n = 20; struct nod...
  • ACdreamers
  • ACdreamers
  • 2012-06-03 09:01:58
  • 1686

经典游戏---贪吃蛇从C++代码实现

本文转载自:http://blog.csdn.net/shawn_hou/article/details/27734217 1.   题目描述 小时候都玩过贪吃蛇这个经典的小游戏,在我们的...
  • Robin_Ge
  • Robin_Ge
  • 2017-02-12 09:32:44
  • 6059

用C代码写贪吃蛇游戏--用按键控制蛇移动

通过按键控制蛇的移动,首先需要读取按键,通过按键来控制。通过百度后得知用kbhit();用一小段代码进行测试:一直输出Hello World,直到用户按Esc结束#include "stdafx.h"...
  • fml1997
  • fml1997
  • 2017-08-02 15:03:32
  • 1024

再次重写贪吃蛇代码(多线程,有游戏的小地图)

/*  *12.24日,完成了蛇撞到自己的检测.修改方法是在蛇的初始化的时候,用双循环来置FALSE; * 在重写代码的时候,我借鉴了别人的思路:将整个游戏的界面定义为一个布尔型的二维数组. * 用一...
  • wyp_810618
  • wyp_810618
  • 2005-12-24 22:41:00
  • 2145
收藏助手
不良信息举报
您举报文章:无法运行的贪吃蛇游戏代码,求大神帮忙修改!
举报原因:
原因补充:

(最多只允许输入30个字)