wstyd to pokazywac, ale kazdy kiedys zaczynal :D
program nr 1:
#include <conio.h>
#include <graphics.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
const int ESC=2;
int X=40; //wspolrzedne naszego pojazdu
int czas=20,o=0; //zmienne potrzebne do czasy rundy
int punkty=0,speed=8,poziom=1,zycia=5;
int j=0; //zmienna uzywana przy szybkosci
int a1=10,a2=45,a3=70,a4=20,a5=60,a6=15; //poczatkowa wspolzedna x kamieni
int b1=10,b2=1,b3=15,b4=5,b5=2; //poczatkowa wspolzedna y kamieni
void pojazd(int x,int y,char znaczek,int kolor) //pojazd
{
textcolor(kolor);
for(int w=0;w<3;w++) //rysowanie grubosci statku
{
gotoxy(x+w,y);
putch(znaczek);
gotoxy(x+w,y+1);
putch(znaczek);
//************ mazanie ekranu wokul maszego statku
gotoxy(x-1,y);putch(' ');
gotoxy(x+3,y);putch(' ');
gotoxy(x-1,y+1);putch(' ');
gotoxy(x+3,y+1);putch(' ');
gotoxy(x-2,y);putch(' ');
gotoxy(x+4,y);putch(' ');
gotoxy(x-2,y+1);putch(' ');
gotoxy(x+4,y+1);putch(' ');
gotoxy(x-3,y);putch(' ');
gotoxy(x+5,y);putch(' ');
gotoxy(x-3,y+1);putch(' ');
gotoxy(x+5,y+1);putch(' ');
}
}
void kamien(int x,int y, char znak)
{
gotoxy(x,y);
putch(znak);
}
void bum(int x)
{
pojazd(x,23,'^',4);
delay(20);
pojazd(x,23,' ',0);
}
int klawisze()
{
int c;
int zwrot;
if(!kbhit()) return 0;
c=getch();
if (c!=0) zwrot=(c==27 ? ESC : 0);
else{
c=getch();
switch (c){
case 77: if((X>4)&&(X<71))X=X+3; //zeby nie wyjsc za ekran (chodzenie w prawo)
break;
case 75: if((X>7)&&(X<75))X=X-3; //to samo co wyzej (chodzenie w lewo)
break;
default: zwrot=0;
}}return zwrot;
};
void obcy()
{
textcolor(13);
if(b1==24){kamien(a1,b1,' '); a1=random(12)+12;b1=1;} //czysci ekran na dole... i ustawia nawe wspolzedne
if(b2==24){kamien(a2,b2,' '); a2=random(12)+24;b2=1;}
if(b3==24){kamien(a3,b3,' '); a3=random(12)+36;b3=1;}
if(b4==24){kamien(a4,b4,' '); a4=random(12)+48;b4=1;}
if(b5==24){kamien(a5,b5,' '); a5=random(12)+60;b5=1;}
if(j>speed){j=0;b1++,b2++,b3++;b4++;b5++;}
j++;
kamien(a1,b1,'*'); kamien(a1,b1-1,' '); //czysci ekran za lecacym kamieniem...
kamien(a2,b2,'*'); kamien(a2,b2-1,' ');
kamien(a3,b3,'*'); kamien(a3,b3-1,' ');
kamien(a4,b4,'*'); kamien(a4,b4-1,' ');
kamien(a5,b5,'*'); kamien(a5,b5-1,' ');
}
int main()
{
int gdriver=DETECT , gmode,d;
initgraph(&gdriver,&gmode,"");
do{
//**************************tryb graficzny****************
setcolor(random(15)+1);
outtextxy(100,300," Nacisnij ESC ");
ellipse(150,200,d,d+10,80,50);
delay(5);
setcolor(0);
ellipse(150,200,d,d+10,80,50);
d=d+10;
}
while(klawisze()!=2);
restorecrtmode(); //wraca do trybu tekstowego
//************************tryb tekstowy******************
clrscr(); //czyszczenie obrazu
do{ //petla do while (cala gra w niej jest)
obcy(); //kamienie spadajace....
if(((a1==X)||(a1==X+1)||(a1==X+2))&&((b1==23)||(b1==22))){kamien(a1,b1,' ');bum(a1);a1=random(12)+12;b1=1;zycia--;sound(4678);delay(20);sound(3678);delay(10);nosound();gotoxy(60, 18);cprintf(" ");} //X,X+1,X+2 szerokosc pojazdu (SPRAWDZA KOLIZJE) , maze kamien
if(((a2==X)||(a2==X+1)||(a2==X+2))&&((b2==23)||(b2==22))){kamien(a2,b2,' ');bum(a2);a2=random(12)+24;b2=1;zycia--;sound(4678);delay(20);sound(3678);delay(10);nosound();gotoxy(60, 18);cprintf(" ");} //X,X+1,X+2 szerokosc pojazdu (SPRAWDZA KOLIZJE) , maze kamien
if(((a3==X)||(a3==X+1)||(a3==X+2))&&((b3==23)||(b3==22))){kamien(a3,b3,' ');bum(a3);a3=random(12)+36;b3=1;zycia--;sound(4678);delay(20);sound(3678);delay(10);nosound();gotoxy(60, 18);cprintf(" ");} //X,X+1,X+2 szerokosc pojazdu (SPRAWDZA KOLIZJE) , maze kamien
if(((a4==X)||(a4==X+1)||(a4==X+2))&&((b4==23)||(b4==22))){kamien(a4,b4,' ');bum(a4);a4=random(12)+48;b4=1;zycia--;sound(4678);delay(20);sound(3678);delay(10);nosound();gotoxy(60, 18);cprintf(" ");} //X,X+1,X+2 szerokosc pojazdu (SPRAWDZA KOLIZJE) , maze kamien
if(((a5==X)||(a5==X+1)||(a5==X+2))&&((b5==23)||(b5==22))){kamien(a5,b5,' ');bum(a5);a5=random(12)+60;b5=1;zycia--;sound(4678);delay(20);sound(3678);delay(10);nosound();gotoxy(60, 18);cprintf(" ");} //X,X+1,X+2 szerokosc pojazdu (SPRAWDZA KOLIZJE) , maze kamien
if(zycia==0){clrscr();
textcolor(6);gotoxy(37, 12);cprintf("Game Over");gotoxy(37, 13);cprintf("Doszedles(as) do poziomu %d ",poziom); //jezeli stracisz zycie to napis... i koniec
sound(3565);delay(10);sound(4656);delay(20);sound(5456);nosound();delay(1000);
getch();
break;
}
if(o>100){o=0;czas--;} // odlicza czas w tyl
o++;
textcolor(6);gotoxy(10, 7);cprintf("czas do konca rundy : %d ",czas);
if(czas==0){czas=20;poziom++;if(speed>2)speed=speed-1;}
textcolor(3);gotoxy(60, 13);cprintf("poziom : ");
textcolor(9);gotoxy(62, 14);cprintf(" %d ",poziom);
textcolor(4); for(int h=0;h<zycia;h++){ gotoxy(60+h, 18);cprintf("#");}
textcolor(2); gotoxy(60, 17);cprintf("zycia : ");
klawisze();
pojazd(X,23,'^',14);
}
while(klawisze()!=2);
}
program nr 2:
#include <conio.h>
#include <graphics.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
const int lewo=-1;
const int prawo=1;
const int ESC=2;
int tak=1,tak1=1,tak2=1,tak3=1,tak4=1; //potrzebne do punktow,aby nie zerowac wartosci za kazdym razem gdy sie ma jednakowa ilosc pinktow
int X=40,Y=6,XX,YY=23,punkty=0,strzal=0,szybkosc=20,poziom=1,niet=0,zyc=5;
int cc=75,ilo=5;
int j=0;
void obiekt(int x,int y, char znaczek)
{
gotoxy(x,y);
putch(znaczek);
}
int klawisz()
{
int c;
int zwrot;
if(!kbhit()) return 0;
c=getch();
if (c!=0) zwrot=(c==27 ? ESC : 0);
else{
c=getch();
switch (c){
case 77: zwrot=prawo;
if((X>4)&&(X<71))X=X+3; //zeby nie wyjsc za ekran
break;
case 75: zwrot=lewo;
if((X>7)&&(X<75))X=X-3; //to samo co wyzej
break;
case 80: if(strzal==0){strzal=1;sound(3456);delay(10);nosound();
XX=X; } //XX - jest to x pocisku, X - jest to x maszego statku
break;
default: zwrot=0;
}
}
return zwrot;
};
void samolot(int x,int y,char znaczek) //samolocik
{
for(int d=0;d<1;d++) //rysowanie grubosci statku
{
gotoxy(x+d,y);
putch(znaczek);
gotoxy(x+d,y+1);
putch(znaczek);
gotoxy(x-1,y+1);
textcolor(19);
putch('#');
gotoxy(x+1,y+1);
putch('#');
textcolor(7);
//mazanie ekranu wokol naszego statku
gotoxy(x-1,y);
putch(' ');
gotoxy(x+3,y);
putch(' ');
//gotoxy(x-1,y+1);
//putch(' ');
gotoxy(x+3,y+1);
putch(' ');
gotoxy(x-2,y);
putch(' ');
gotoxy(x+4,y);
putch(' ');
gotoxy(x-2,y+1);
putch(' ');
gotoxy(x+4,y+1);
putch(' ');
gotoxy(x-3,y);
putch(' ');
gotoxy(x+5,y);
putch(' ');
gotoxy(x-3,y+1);
putch(' ');
gotoxy(x+5,y+1);
putch(' ');
gotoxy(x+2,y);
putch(' ');
gotoxy(x+2,y+1);
putch(' ');
gotoxy(x+1,y);
putch(' ');
gotoxy(x-5,y);
putch(' ');
gotoxy(x-5,y+1);
putch(' ');
gotoxy(x-4,y);
putch(' ');
gotoxy(x-4,y+1);
putch(' ');
}
}
void stat() // stateczek na gorze
{
obiekt(cc,5,'0'); //statek obcych :))))
obiekt(cc+1,5,' '); //mazanie ekranu za statkiem
if(j>szybkosc){ cc--;j=0;} //szybkosc poruszania sie statku
j++;
if(cc<5){ niet++;obiekt(cc+1,5,' ');cc=75;} //jezeli dojedzie do konca,
} //to od nowa rozpoczyna
void pocisk() //pocisk ktorym strzelamy
{
if(strzal==1){ obiekt(XX,YY,'^');obiekt(XX,YY+1,' ');
YY--;
if(YY==0){obiekt(XX,1,' '); YY=23;strzal=0;}
}
}
void eksplozja(int x)
{
clrscr();
textcolor(RED);
gotoxy(x-1,4);putch('*');
gotoxy(x+1,4);putch('*');
gotoxy(x-1,6);putch('*');
gotoxy(x+1,6);putch('*');
delay(60);
gotoxy(x-2,3);putch('*');
gotoxy(x+2,3);putch('*');
gotoxy(x-2,7);putch('*');
gotoxy(x+2,7);putch('*');
gotoxy(x-1,4);putch(' ');
gotoxy(x+1,4);putch(' ');
gotoxy(x-1,6);putch(' ');
gotoxy(x+1,6);putch(' ');
delay(60);
gotoxy(x-2,3);putch(' ');
gotoxy(x+2,3);putch(' ');
gotoxy(x-2,7);putch(' ');
gotoxy(x+2,7);putch(' ');
}
int main()
{
int gdriver=DETECT , gmode;
initgraph(&gdriver,&gmode,"");
do{
setcolor(random(15));
settextstyle(20,0,116);
outtextxy(238,360,"\n\t\n Snajper v1.0 \n\t\n");
putpixel(random(640),random(480),18);
setcolor(65);
circle(320,180,100);
fillellipse(320,180,99,99);
line(310,60,330,300);
line(309,60,329,300);
line(311,60,331,300);
line(200,190,440,170);
line(200,189,440,169);
line(200,191,440,171);
setcolor(7);
outtextxy(50,420,"Projekt z WdP, grupa ID, autor: Jacek Migacz (5853) - Nacisnij ESC... ");
settextstyle(12,0,12);
}
while(klawisz()!=2);
restorecrtmode(); //wraca do trybu tekstowego
clrscr();
_setcursortype(_NOCURSOR);
do{
stat(); //stateczek u gory
pocisk(); //pocisk
if((cc==XX)&&(YY==5)){eksplozja(cc);obiekt(cc+1,5,' '); cc=75;punkty++;}
if(niet>=ilo){sound(4678);delay(20);nosound();niet=0;zyc--;gotoxy(7, 19);
textcolor(zyc+5+128); cprintf("Stracies zycie!");} //na dole bajer z zyciem
if((punkty==5)&&(tak==1)){tak=0; szybkosc=8;poziom=2;ilo=3;niet=0;}
if((punkty==10)&&(tak1==1)){tak1=0; szybkosc=6;poziom=3;ilo=3;niet=0;}
if((punkty==15)&&(tak2==1)){tak2=0;szybkosc=5;poziom=4;ilo=4;niet=0;} //szybkosc na danym poziomie max 1
if((punkty==20)&&(tak3==1)){tak3=0; szybkosc=3;poziom=5;ilo=5;niet=0;}
if((punkty==25)&&(tak4==1)){tak4=0; szybkosc=1;poziom=6;ilo=7;niet=0;}
if(zyc==0){ //jesli f16 kaput...
clrscr();
textbackground(YELLOW);
textcolor(BLACK);
gotoxy(34, 12);cprintf("-=- Game Over -=-");
sound(3445);
delay(10);
sound(4566);
delay(20);
sound(3456);
nosound();
delay(1000);
getch();
break;
}
gotoxy(5, 14);textcolor(GREEN);cprintf("Punkty : %d ",punkty);
gotoxy(5, 15);textcolor(BLUE);cprintf("Poziom : %d ",poziom);
gotoxy(5, 16);textcolor(RED);cprintf("Zycie : %d ",zyc);
textcolor(WHITE);
klawisz();
textcolor(YELLOW);
samolot(X,23,'|');
}
while(klawisz()!=2);
_setcursortype(_NORMALCURSOR);
}