snake game
Dec 5, 2018 at 1:05pm UTC
hey guys im doing a snake game(its not nearly finished) but i have a one problem...my snake-head is always goes on the left...but its suposed to be on the center of wall because i have to move snake-head with keys(a.s.d.w) can anyone help me???
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
#include <iostream>
#include <stdlib.h>
#include <string>
#include<conio.h>
using namespace std;
bool gameOver;
const int width = 20;
const int height = 20;
int x, y, fruitX, fruitY, score;
enum Edirection { LEFT, RIGHT, UP, DOWN, stop = 0 };
Edirection dir;
void setup()
{
gameOver = false ;
dir = stop;
x = width / 2;
y = height / 2;
fruitX = rand() % width;
fruitY = rand() % height;
score = 0;
}
void Draw()
{
system("cls" );
for (int i = 0; i < width + 2; i++)
cout << "#" ;
cout << endl;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
if (j == 0)
cout << "#" ;
if (i == y&&j == x)
cout << "O" ;
else if (i == fruitY && j == fruitX)
cout << "F" ;
else
cout << " " ;
if (j == width - 1)
cout << "#" ;
}
cout << endl;
}
for (int i = 0; i < width + 2; i++)
cout << "#" ;
cout << endl;
}
void input()
{
if (_kbhit())
{
switch (_getch())
{
case 'a' :
dir = LEFT;
break ;
case 'd' :
dir = RIGHT;
break ;
case 'w' :
dir = UP;
break ;
case 's' :
dir = DOWN;
break ;
case 'x' :
gameOver = true ;
break ;
}
}
}
void logic()
{
switch (dir)
{
case LEFT:
x--;
break ;
case RIGHT:
x++;
break ;
case UP:
y--;
break ;
case DOWN:
y++;
break ;
default :
break ;
}
}
int main()
{
setup();
while (!gameOver)
{
Draw();
input();
logic();
}
system("pause" );//
return 0;
}
Last edited on Dec 5, 2018 at 1:05pm UTC
Topic archived. No new replies allowed.