rendered paste body#include <cstdlib>
#include <iostream>
#include <conio.h>
#include "console.ddt"
#include <time.h>
void cursoroff() //funkcja dająca znikanie kursora
{
CONSOLE_CURSOR_INFO ccinf;
HANDLE _hcout = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleCursorInfo(_hcout,&ccinf);
ccinf.bVisible = false;
SetConsoleCursorInfo(_hcout,&ccinf);
}
using namespace std;
using namespace ddt::console;
/*
Name: --------------------GRA DARKSPACE---------------------
Copyright: Tomasz 'Sawik' Sawicki
Author: Tomasz 'Sawik' Sawicki
Description: Gra, zarówno jej kod jak i plik wykonawczy są własnością w/w Autora,
Zmienianie kodu(dotyczy również komentarzy) jest surowo zakazane,
Pozdrawiam!
*/
int main(int argc, char *argv[])
{
time_t sekundy; //zmienne do odliczania czasu
time_t koniec;
time_t czas;
char napis[10] = {'D','A','R','K',' ','S','P','A','C','E'};
string imie;
int wybor;//zmienna switch;
int tab[80][26]; //tablica zapisujaca pozycje kursora
char z; //znak-zmienna w której zapisyawany jest kod klawisza
int x=1; //zmienne komendy gotoxy
int y=1;
int poziom; //zmienna wyboru poziomu
int temp = 0; //zmienna naliczająca punkty
//symulacja naciśnięcia klawisz Alt+Enter(fullscreen)
keybd_event(VK_MENU,0x38,0,0);
keybd_event(VK_RETURN,0x1c,0,0);
keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0);
cout<<"podaj swoje imie..."<<endl;
getline (cin,imie);
cursoroff();
gotoxy(15,14);
cout<<"Studio Ubisoft Montreal we wspolpracy z CD Projekt RED"<<endl;
_sleep(2000);
gotoxy(30,15);
cout<<"przedstawiaja: "<<endl;
_sleep(2000);
system("cls");
cout<<"Dawno, dawno temu w odleglej galaktyce..."<<endl;
_sleep(4000);
system("cls");
gotoxy(35,13);
for(int i=0;i<10;i++)
{ _sleep(500);
cout<<napis[i];
}
gotoxy(35,14); //pseudo ładowanie
cout<<"loading...";
gotoxy(35,15);
cout<<"----------";
gotoxy(35,15);
for(int i = 0;i<10;i++)
{
_sleep(500);
cout<<"|";
}
system("cls"); //wyświetlanie fabuły
gotoxy(1,1);
_sleep(1000);
cout<<"Dowodca statku kosmicznego 'hash' kapitan "<<imie<<endl;
_sleep(2000);
cout<<"wyruszyl ku odleglej planecie"<<endl;
_sleep(2000);
cout<<"niespodziewanie napotkal tam dziwne stworzenia"<<endl;
_sleep(2000);
cout<<"do zludzenia prypominajce dolary"<<endl;
_sleep(2000);
cout<<"stworzenia zaczely go atakowac i gryzc jego statek"<<endl;
_sleep(2000);
cout<<"przebiegly kapitan zamontowal na swoim statku pozeracz tych stworzen"<<endl;
_sleep(2000);
cout<<"jestes kapitanem tego statku"<<endl;
_sleep(2000);
cout<<"zjedz jak najwiecej stworzen w wybranym przez siebie czasie"<<endl;
_sleep(2000);
cout<<"czy chcesz kontynuowac? (nacisnij dowlony klawisz)"<<endl;
getch();
system("cls");
do{
gotoxy(33,13);
cout<<"Dark Space";
gotoxy(33,14);
cout<<"1.Nowa Gra";
gotoxy(33,15);
cout<<"2.O Autorze";
gotoxy(33,16);
cout<<"3.Koniec";
gotoxy(33,17);
cin>>wybor;
//początek pętli switch
switch(wybor)
{
case 1:
//wybor poziomu
system("cls");
gotoxy(33,13);
cout<<"wybierz pozizom"<<endl;
gotoxy(33,14);
cout<<"1. latwy(2 minuty)"<<endl;
gotoxy(33,15);
cout<<"2. sredni(minuta)"<<endl;
gotoxy(33,16);
cout<<"3. trudny(10 sekund)"<<endl;
gotoxy(33,17);
cout<<"4. wybierz sam ilosc sekund"<<endl;
gotoxy(33,18);
cin>>poziom;
switch(poziom) //switch wyboru poziomu
{
case 1:
koniec=120;
break;
case 2:
koniec=60;
break;
case 3:
koniec=10;
break;
case 4:
cout<<"wpisz ilosc sekund"<<endl;
cin>>koniec;
break;
}
system("cls");
//petla for zerująca tablice
for(int a = 0; a < 80; a++)
{
for(int b = 0; b < 26; b++)
{
tab[a][b] = 0;
}
}
// rysowaie pierwszego znaku(potrzebne żeby zadziałał późniejszy if)
x=20;
y=5;
gotoxy(x,y);
tab[x][y] =1;
printf("$");
x=1;
y=1;
//koniec rysowania
gotoxy(x,y);
sekundy = time (NULL); //pobieranie czasu systemowego i zapamiętywanie go w zmiennej
czas =sekundy + koniec; //dodawanie do zmiennej "sekundy" wyboru poziomu
//pętla zczytująca kod wciśniętego klawisza i wykonująca odpowiednią komende
do{
//sprawdzanie trafienia na znak
if(tab[x][y] == 1)
{
int d,f;
tab[x][y]=0;
srand (time(NULL));
d = rand() % 23;
temp++;
f = rand() % 78;
gotoxy(f,d);
printf("$");
tab[f][d]=1;
}
sekundy = time (NULL); //uaktualnianie zmiennej "sekundy"
z=getch(); //pobieranie kodu wciśniętego klawisza
//poczatek sterowania
if (z==72)gotoxy(x,y--),printf(" "),gotoxy(x,y++),printf("#"),gotoxy(x,y--); //góra
if (z==80)gotoxy(x,y++),printf(" "),gotoxy(x,y--),printf("#"),gotoxy(x,y++); //dół
if (z==75)gotoxy(x--,y),printf(" "),gotoxy(x++,y),printf("#"),gotoxy(x--,y); //lewo
if (z==77)gotoxy(x++,y),printf(" "),gotoxy(x--,y),printf("#"),gotoxy(x++,y); //prawo
//powtórne sprawdzanie trafienia na znak, eliminujące pewnien problem
if(tab[x][y] == 1)
{
int d,f;
tab[x][y]=0;
srand (time(NULL));
d = rand() % 23;
temp++;
f = rand() % 78;
gotoxy(f,d);
printf("$");
tab[f][d]=1;
}
//koniec sterowania, komendy warunkowe sprawdzajace zderzenia ze ścianą
if (y==1)gotoxy(x,y++),printf(" "),y=24,gotoxy(x,y); //górna ściana
if (y==25)gotoxy(x,y--),printf(" "),y=2,gotoxy(x,y); //dolna ściana
if (x==0)gotoxy(x+2,y),printf(" "),x=79,gotoxy(x,y); //lewa ściana
if (x==80)gotoxy(x--,y),printf(" "),x=1,gotoxy(x,y); //prawa ściana
//if sprawdzajcy czy czas upłyną
if(sekundy>=czas)
{
system("cls");
gotoxy(29,11);
cout<<"koniec czasu. twoj wynik to "<<temp<<endl;
_sleep(2000);
z=13;
gotoxy(33,17);
}
}while(z!=13);
//koniec pętli do...while.
break;
case 2:
cout<<"Copyright (C) by Tomasz 'Sawik' Sawicki Technikum SCI 2009"<<endl;
getch();
system("cls");
break;
case 3:
return 0;
break;
}//koneic pętli switch
}while(wybor!=4);
return EXIT_SUCCESS;
}