Problem bei Snake Programieren - SciFi-Forum

Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei Snake Programieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Problem bei Snake Programieren

    Ich hab jetzt mal mehr oder weniger aus Langeweile angefangen Snake mit c++ zu programieren. Als Bewegung hab ich einfach so gemacht das er das lezte Zeichen der Schlange überschreibt, und vorne dahin eins setzt wo die Schlange hinsoll, nur hab ich jetzt irgendwie das Problem, das er, wenn ich mit den Pfeiltasten steuere, er hinten eins zuviel überschreibt.

    Der Quellcode ist bisher (noch nicht ganz fertig):

    #include<iostream>
    #include "ic.hpp"
    #include<conio.h>
    #define SNAKE_LENGTH 10


    using namespace std;
    using namespace ic;
    using namespace ic::shorties;

    void drawFruit(int, int);
    void drawSnake(char);

    int x[SNAKE_LENGTH]={3,4,5,6,7,8,9,10,11,12},
    y[SNAKE_LENGTH]={6,6,6,6,6,6,6,6,6,6};

    int main()
    {
    int posFruitX, posFruitY;
    char key;

    posFruitX = rand()%80;
    posFruitY = rand()%25;

    drawFruit(posFruitX,posFruitY);


    do
    {
    key=getch();
    drawSnake(' ');

    for(int z=SNAKE_LENGTH-1; z>0 ; z--)
    {
    x[z]=x[z-1];
    y[z]=y[z-1];
    }
    switch(key)
    {
    case 'w':
    case 72: <-- Da ist wohl irgendwo das Problem
    case 'W':
    y[0]=y[0]-1;
    break;
    case 's':
    case 80:
    case 'S':
    y[0]=y[0]+1;
    break;
    case 'a':
    case 75:
    case 'A':
    x[0]=x[0]-1;
    break;
    case 'd':
    case 77:
    case 'D':
    x[0]=x[0]+1;
    break;
    }
    drawSnake('O');
    if(posFruitX==x[0] && posFruitY==y[0])
    {
    posFruitX = rand()%80;
    posFruitY = rand()%25;
    drawFruit(posFruitX,posFruitY);
    }
    }
    while(true);

    return 0;
    }

    void drawSnake(char c)
    {
    for (int z=0;z<SNAKE_LENGTH;z++)
    {
    gotoxy(x[z],y[z]);
    textcolor(FG_GREEN);
    cout << c;
    }
    }

    void drawFruit (int x, int y)
    {
    gotoxy(x,y);
    textcolor(FG_RED);
    cout << '@';
    }


    Ich weiss es ist noch nicht ganz fertig.
    Wenn ich mit w, a, s und d steuere fuktioniert das was ich bis jetzt hab, nur bei den Pfeiltasten gibs die Probleme.

    #2
    respekt!

    hab mich nur einmal an c++ getraut das war dann direkt ne abschreckung , da wir in der schule nur visual basic benutzen -.- bin ich wie die linux leute sagen würden "Microsoft abhängig"

    ich frag mich aber wie die grafiken für c++ gemacht werden, hab das noch nie gesehen kannst du mir das mal kurtz erklären?
    wäre nett ^^


    mfg reaper

    Kommentar

    Lädt...
    X