[c++] snake-amatorski-Jak dodać "owoce",punkty i brak mozliwosci "wjechania" w małą "przeszkodę" na środku planszy?

0

Witam. Programowanie zacząłem od niedawna w technikum (od września). Teraz mamy na zad. zrobić amatorskiego snake. Ma sie on poruszać za pomocą strzałek (nie sam). Mój problem dotyczy tego co w temacie czyt. "Jak dodać "owoce",punkty i brak mozliwosci "wjechania" w małą "przeszkodę" na środku planszy". W internecie nic nie znalazłem bo tam ludzie piszą snake na poziomie którego w technikum nie mamy i mieć nie będziemy więc się w tym nie odnajduje jakie polecenie do czego idzie itd. Z góry dzięki za pomoc :) Oto kod:

#include <iostream>
#include <windows.h>
#include <conio.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void gotoxy(int x, int y)
{

COORD c;
c.X = x;
c.Y = y;
SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
const int GORA=72, DOL=80, LEWO=75, PRAWO=77;
int main()
{

	HANDLE kolor;

HANDLE hOut;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 6 );
cout <<endl;
cout <<endl;
gotoxy(57,2);

	//kolor tla tekstu na niebieski
	 SetConsoleTextAttribute( hOut, BACKGROUND_GREEN );
	cout<<"Gra SNAKE!"<<endl;
		SetConsoleTextAttribute( hOut, BACKGROUND_BLUE );
		gotoxy(70,7);
	cout<<"Wykonal:"<<endl;
	//fioletowy intensywny
	SetConsoleTextAttribute( hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY );
	gotoxy(74,8);
	cout<<"Damian"<<endl;
	gotoxy(72,9);
	//turkusowy intensywny
	SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY );
	cout<<"xx"<<endl;

	gotoxy(41,9);
	SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
	cout<<"06.12.2019r"<<endl;
	SetConsoleTextAttribute( hOut, FOREGROUND_RED | FOREGROUND_RED | FOREGROUND_INTENSITY );

	//-----------------------------------ramka glowna---------------------\\

gotoxy(40,1);
cout<<char(201);
int i;
for (i=1;i<40;i++)
cout<<char(205);
gotoxy(80,1);
cout<<char(187);
cout<<endl;
for (i=1;i<10;i++)
{
gotoxy(40,1+i);
cout<<char(186)<<endl;
}
gotoxy(40,20);
cout<<endl;
gotoxy(40,10);
cout<<char(200);

for (i=1;i<40;i++)
{

cout<<char(205);
gotoxy(250,10);

}
gotoxy(80,10);
cout<<char(188);

for (i=1;i<9;i++)
{

gotoxy(80,1+i);

cout<<char(186)<<endl;
}

kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 2 );
	cout <<endl;
		cout <<endl;
cout<<"                                   ";

cout<<"<----------------->";

		cout <<"    Menu: ";
cout<<"   <------------------>";
cout<<endl;
cout<<endl;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 4 );
	cout <<endl;
		cout <<endl;
cout <<" 1.Graj.\n 2.Informacje o autorze.\n 3.Czas pracy przy tworzeniu gry.\n";
cout <<endl;
	cout <<endl;
		cout <<endl;

			int wybieranie1;
cin>>wybieranie1;

	if (wybieranie1==1) {

system("CLS");

//-----------------------------------------PRZESZKODA W GRZE-------------------------------------\
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
gotoxy(40,10);
//kolor tla tekstu na niebieski
SetConsoleTextAttribute( hOut, BACKGROUND_GREEN );
cout<<"POWODZENIA!!!"<<endl;
gotoxy(45,11);

	cout<<":)"<<endl;

SetConsoleTextAttribute( kolor, 2 );
gotoxy(30,5);
cout<<char(201);
int j;
for (j=1;j<30;j++)

        cout<<char(205);
gotoxy(60,5);
cout<<char(187);
cout<<endl;

gotoxy(30,15);
cout<<char(200);

for (j=1;j<10;j++)
	{

gotoxy(30,j+5);
cout<<char(186)<<endl;
}
for (j=1;j<10;j++)
{
gotoxy(60,j+5);
cout<<char(186)<<endl;
}
gotoxy(31,15);
for (j=10;j<39;j++)

        cout<<char(205);

        gotoxy(60,15);
cout<<char(188);

//------------------------------------------------------------GŁÓWNA PLANSZA W GRZE----------------------------\

SetConsoleTextAttribute( kolor, 5 );

gotoxy(5,1);
cout<<char(201);

	for (j=1;j<85;j++)

cout<<char(205);
gotoxy(90,1);
cout<<char(187);
cout<<endl;
	for (j=1;j<20;j++)
	{

gotoxy(5,j+1);
cout<<char(186)<<endl;
}
gotoxy(30,20);
cout<<endl;
gotoxy(5,20);
cout<<char(200);

for (j=1;j<86;j++)
{

cout<<char(205);
//gotoxy(50,20);

}
gotoxy(90,20);
cout<<char(188);

for (j=1;j<19;j++)
{

gotoxy(90,1+j);

cout<<char(186)<<endl;
}

{

char c;
int x=10, y=5;

kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 0 );
gotoxy(x,y);
cout<<char(3);

do{ c=getch();
switch(c){
case GORA:
{
if(y>2 and y==5) {

		SetConsoleTextAttribute( kolor, 0 );
		gotoxy(x,y);
		cout<<char(214);
		y=y-1;
		gotoxy(x,y);
		SetConsoleTextAttribute(kolor, 100);
		cout<<char(214);

    }
		break;

	}
	case DOL:
		{
		    if(y<19){

	SetConsoleTextAttribute(kolor,0);
	gotoxy(x,y);
	cout<<char(214);
	y=y+1;
	gotoxy(x,y);
	SetConsoleTextAttribute(kolor,100);
	cout<<char(214);
		    }
		break;

}
case LEWO:
{
if(x>6){
SetConsoleTextAttribute(kolor,0);
gotoxy(x,y);
cout<<char(214);
x=x-1;
gotoxy(x,y);
SetConsoleTextAttribute(kolor,100);
cout<<char(214);
}
break;
}
case PRAWO:
{
if(x<89)
{

	SetConsoleTextAttribute(kolor,0);
	gotoxy(x,y);
	cout<<char(214);
	x=x+1;
	gotoxy(x,y);
	SetConsoleTextAttribute(kolor,100);
	cout<<char(214);
}
	break;
	}

}

}

while(c!=27);

}
}
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 6 );
if (wybieranie1==2) {

            cout<<"Wykonal: Damian xx\n Klasa:3TEI\n Wiek:18lat\n zawod:technik informatyk\n";
	}
	if (wybieranie1==3) {
            cout<<"Czas pracy przy wykonaniu gry:3 tygodnie\n";


	}





return 0;

}

1

Chciałoby Ci się taki kod analizować u kogoś? Jeśli chcesz, żeby ktoś Ci pomógł to po pierwsze sformatuj to porządnie za pomocą znaczników tutaj w poście, a po drugie podziel ten cały kod na funkcje.

0

A jest jakaś funkcja czy coś na te "owoce" ? Bo nie mam pojęcia jak to zrobić

0

Nie chodzi o funkcje na owoce, tylko spójrz na swój kod i spójrz na niego od strony osoby, która go nie zna i ma go przeanalizować żeby Ci pomóc. Wszystko w funkcji main zamiast rozdzielone, tak samo skąd ktoś może wiedzieć czym jest np to: for (j=1;j<19;j++) czym jest 19? Nikomu się nie będzie chciało czytać takiego kodu.

Podziel cały kod na mniejsze funkcje z odpowiednimi nazwami, te magic numbery typu 19 opakuj w jakieś zmienne z sensownymi nazwami itp itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1