Help!!!, snake game
Oct 7, 2016 at 11:55am UTC
i am newbie to cpp and is wondering if you pro programmers could help me sort this problem out . i do not know how to add a continues level in snake program like chaning to level 3 , 4 ,5 and so on after it reach a certain score and also how to increase the speed of the snake after the level .. this is the code ,its just some guy's code on the internet and i made a few modification for it .. pls 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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
bool gameOver;
const int width = 20;
const int height = 20;
int x, y, fruitX, fruitY, score, level;
int tailX[100], tailY[100];
int nTail;
enum eDirecton { STOP = 0, LEFT, RIGHT, UP, DOWN};
eDirecton dir;
void Setup(){
gameOver = false ;
dir = STOP;
x = width / 2;
y = height / 2;
fruitX = rand() % width;
fruitY = rand() % height;
score = 0;
level = 1;
}
void Draw ()
{
system("cls" );
for (int i = 0; i < width+2; i++)
cout << "X" ;
cout << endl;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
if (j == 0)
cout << "X" ;
if (i == y && j == x)
cout << "0" ;
else if ( i== fruitY && j == fruitX)
cout << "M" ;
else
{
bool print = false ;
for (int k = 0; k < nTail; k++)
{
if (tailX[k] == j && tailY[k] == i)
{
cout << "o" ;
print = true ;
}
}
if (!print)
cout << " " ;
}
if (j == width -1 )
cout << "X" ;
}
cout << endl;
}
for (int i = 0; i < width+2; i++)
cout << "X" ;
cout << endl;
cout << "score:" << score << endl;
cout << "level:" << level <<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()
{
int prevX = tailX[0];
int prevY = tailY[0];
int prev2X, prev2Y;
tailX[0] = x;
tailY[0] = y;
for (int i = 1; i < nTail; i++)
{
prev2X = tailX[i];
prev2Y = tailY[i];
tailX[i] = prevX;
tailY[i] = prevY;
prevX = prev2X;
prevY = prev2Y;
}
switch (dir)
{
case LEFT:
x--;
break ;
case RIGHT:
x++;
break ;
case UP:
y--;
break ;
case DOWN:
y++;
break ;
default :
break ;
}
if (x > width || x < 0 || y > height || y < 0)
gameOver = true ;
for (int i = 0; i < nTail; i++)
if (tailX[i] == x && tailY[i] == y)
gameOver = true ;
if (x == fruitX && y == fruitY)
{
score += 10;
fruitX = rand() % width;
fruitY = rand() % height;
nTail++;
if ( score == 80 )
{
level += 1;
fruitX = rand() % width;
fruitY = rand() % height;
nTail++;
}
}
}
int main()
{
cout << "Welcome to Snake Game created by group 4 " << endl;
cout << endl;
cout << "Instruction:" << endl;
cout << "use the follwing keys to move your snake:" << endl;
cout << "w = forward" << endl;
cout << "s = backward" << endl;
cout << "a = left side" << endl;
cout << "d = right side" << endl;
cout << endl;
cout << "Do not run the snake into the wall nor his own tail or you die" << endl;
system("pause" );
Setup();
while (!gameOver)
{
Draw();
Input();
Logic();
}
return 0;
}
Last edited on Oct 7, 2016 at 12:01pm UTC
Oct 8, 2016 at 1:01am UTC
117 118 119 120 121 122 123 124 125 126 127 128 129 130
switch (dir)
{
case LEFT:
x--;
break ;
case RIGHT:
x++;
break ;
case UP:
y--;
break ;
case DOWN:
y++;
break ;
This is where I believe you should tweak the code to get your desired output, the rest is left for you....
PS: I can't compile the game on my PC so I can appreciate the code only, not the game
Oct 8, 2016 at 8:51am UTC
can you please tell me on how to make the snake faster after it reaches the level using the code i've provided ... thank you
Last edited on Oct 8, 2016 at 9:11am UTC
Oct 8, 2016 at 2:09pm UTC
Like I said I can't compile the code on my PC, So all I can do is guess
when the level of the player increases increase the counter like x+=2/x+=3 so on....
Topic archived. No new replies allowed.