#include <stdio.h>
#include <stdlib.h> //for system
#include <conio.h> //for char
#include <windows.h> //for beep
#include <string.h> //for strncmp
#include <ctype.h> //for tolower
#include <graphics.h> //for graphics
#include <math.h>
#include <time.h> //for randomizing
#include <irrKlang.h>
using namespace irrklang;
#pragma comment(lib, "irrKlang.lib") // link with irrKlang.dll
//80 length 25 height
void menu(); void jocnou(); void instructziuni(); void despre(); void apasa(); void cometa();
void ufo();
long WINAPI SunetArtificii(long lParam);
long WINAPI ExplozieArtificii(long lParam);
long WINAPI artificii(long lParam);
long WINAPI shterge(long lParam);
int numar_petarde, //petarde ramase in aer
nr, //numar petarde totale de tras
petarde_ramase; //petarde ramase de tras
HANDLE *hpetarde;
void ufo() {
int i;
float x,y;
x=(float)(159/10);y=(float)(63/10);
for (i=1;i<(getmaxx()/2)-70;i=(i+1)*1.03) {
readimagefile("ufo.bmp",0,0,x,y);
if (x<159) { x=x+1.325; y=y+0.525; }
setviewport(i,i*0.5,getmaxx(),getmaxy(),0);
setcolor(LIGHTMAGENTA);
outtextxy(30-i,getmaxy()-70-i*0.5,"Stefan:");
setcolor(WHITE);
if (i<100) outtextxy(95-i,getmaxy()-70-i*0.5,"ba ce pula mea ma..."); else outtextxy(95-i,getmaxy()-70-i*0.5,"BAAAAAAA !!! chematzi politzia! au venit extratereshtrii!");
Sleep(80);
cleardevice();
}
readimagefile("ufo.bmp",0,0,159,63);Sleep(1000);
setviewport(i-100,i*0.5-100,getmaxx(),getmaxy(),0);
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Nu ma recunoshti? Sunt eu Iisus Cristos!");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTMAGENTA);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Stefan:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Ce faci frate.. cum o mai duce cartieru..");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Bine bine shaule! Auzi am intzeles ca vrei s-o futzi pa Georgiana");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTMAGENTA);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Stefan:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Pai ce sa fac vere.. nu vezi ce curoasa e aia? sa-mi bag pula..");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Prinde-o la cotitura shi umple-o de puli in gura! Pai ori suntem golani ori nu mai suntem!");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Dar uite - pentru ca eshti baiat bun am sa-tzi fac un cadou");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Este un telefon mobil ultraperformant cu care potzi suna orice numar din univers");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
readimagefile("cristos.jpg",0,0,307,363);
setcolor(LIGHTGREEN);
outtextxy(130-i,getmaxy()-70-i*0.5+100,"Cristos:");
setcolor(WHITE);
outtextxy(195-i,getmaxy()+30-i*0.5,"Apropo numaru meu e 0720784882. E trecut in agenda. Daca ai nevoie de ceva suna-ma");
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-i+70,getmaxy()+70-i*0.5,"<Apasa>");getch();cleardevice();
}
void cometa() {
int x,y,i;
float f;
setcolor(WHITE);x=-30;
for (i=getmaxx()/4;i<3*getmaxx()/4;i=i+7) {
f=(float)((float)((float)((x*x))/(float)(20)));
circle(i,(getmaxy()/2)+f,2);Sleep(15);cleardevice();
x=x+1;
}
}
void apasa() {
setcolor(LIGHTGRAY);
outtextxy((getmaxx()/2)-30,getmaxy()-30,"<Apasa>");
getch();
}
long WINAPI SunetArtificii(long lParam) {
for (int i=2000;i>1400;i=i-10) Beep(i,20);
return 0;
}
long WINAPI ExplozieArtificii(long lParam) {
for (int i=200;i>150;i=i-5) Beep(i,25);
return 0;
}
long WINAPI shterge(long lParam) {
int i;
while (1) {
if ((petarde_ramase==0)&&(numar_petarde==0)) return 0;
Sleep(30);cleardevice();
for (i=0;i<nr;i++) ResumeThread(hpetarde[i]); }
return 0;
}
long WINAPI artificii(long lParam) {
int x,y; //coordonata x de unde pleaca petarda shi y inaltzimea la care explodeaza
int f; //ax^2 functzia dupa care zboara petarda
int i,j,x1,r1,r2,lungimecerc,numarpuncte,xx,yy,ii,jj;
float m,sin,cos,l;
int *cx;
int *cy;
int *cc;
HANDLE hThread,current;
DWORD dwID;
srand(time(NULL)+petarde_ramase+rand());
current=GetCurrentThread();
r1=rand()+1;r2=rand()+1;
x = (r1 * r2)%getmaxx();
if (x<0) x=-x;
//luam o coordonata x oarecare de la care lansam petarda
if (x<100) x=100; else if (x>getmaxx()-100) x = getmaxx()-100;
//prelucram x sa se incadreze bine pe ecran
y=((rand()%6)+1)*100;
f=0; //functzia
m=(float)(float(1)/float(((rand()%+1)));
x1=-sqrt((y)/m);
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)SunetArtificii,NULL,0,&dwID);
for (j=-sqrt(y/m);f<y;j++) {
f=(int)((float)(-m*j*j+y));
//LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE
r1=rand()%7;
switch (r1) {
case 0: r1=LIGHTBLUE; break;
case 1: r1=LIGHTGREEN; break;
case 2: r1=LIGHTCYAN; break;
case 3: r1=LIGHTMAGENTA; break;
case 4: r1=YELLOW; break;
case 5: r1=WHITE; break;
case 6: r1=LIGHTRED; break;
}
setcolor(r1);
if (x<getmaxx()/2) {
r1=x-x1+4*j; //r1 shi r2 sunt coordonatele care vor trebui la explozie
r2=getmaxy()-f;
circle(r1,r2,2);
} else {
r1=x+x1-4*j;
r2=getmaxy()-f;
circle(r1,r2,2);
}
SuspendThread(current);
} //end j - petarda zboara pana explodeaza
CloseHandle(hThread); //elibereaza SunetArtificii
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ExplozieArtificii,NULL,0,&dwID);
srand(rand()+time(NULL)+sqrt(petarde_ramase));
setcolor(LIGHTRED);
circle(r1,r2,10);
SuspendThread(current);
SuspendThread(current);
SuspendThread(current);
lungimecerc=30+(rand()%70);
numarpuncte=30+(rand()%70);
cx = (int*)malloc(numarpuncte*sizeof(int)); //coordonatele punctelor
cy = (int*)malloc(numarpuncte*sizeof(int));
cc = (int*)malloc(numarpuncte*sizeof(int)); //culoarea punctelor
for (ii=0;ii<numarpuncte;ii++) { //initzializez coordonatele punctelor
l=30;
while (l>15) {
xx=rand()%15;yy=rand()%15;
l=(float)(sqrt(((float)(((float)((xx)))*((float)((xx)))))+(((float)((yy)))*((float)((yy)))))); //lungimea ipotenuzei
}
if ((rand()%2)==0) cx[ii] = r1+xx+1; else cx[ii] = r1-xx-1;
if ((rand()%2)==0) cy[ii] = r2+yy+1; else cy[ii] = r2-yy-1;
cc[ii]=rand()%7; //culoarea punctelor
switch (cc[ii]) {
case 0: cc[ii]=LIGHTBLUE; break;
case 1: cc[ii]=LIGHTGREEN; break;
case 2: cc[ii]=LIGHTCYAN; break;
case 3: cc[ii]=LIGHTMAGENTA; break;
case 4: cc[ii]=YELLOW; break;
case 5: cc[ii]=WHITE; break;
case 6: cc[ii]=LIGHTRED; break;
}
} //initzializarea punctelor
for (ii=15;ii<lungimecerc;ii=ii+4) {
for (jj=0;jj<numarpuncte;jj++) {
putpixel(cx[jj],cy[jj],cc[jj]);
l=(float)(sqrt(((float)(((float)((cx[jj]-r1)))*((float)((cx[jj]-r1)))))+(((float)((cy[jj]-r2)))*((float)((cy[jj]-r2)))))); //lungimea ipotenuzei
sin=(float)((float)(abs(((float)(cy[jj]-r2)))/((float)(l))));
cos=(float)((float)(abs(((float)(cx[jj]-r1)))/((float)(l))));
l+=4;
xx=(int)(((float)(l*cos)));yy=(int)(((float)(l*sin)));
if ((cx[jj]-r1)>0) cx[jj]=r1+xx; else cx[jj]=r1-xx;
if ((cy[jj]-r2)>0) cy[jj]=r2+yy; else cy[jj]=r2-yy;
} //end j numarpuncte
SuspendThread(current);
} //end i lungimecerc
free(cc);free(cx);free(cy);
CloseHandle(hThread); //terminam sunetu exploziei
numar_petarde--; //scade numaru petardelor din aer
CloseHandle(current);
return 0;
} //end artificii
void jocnou() {
int i,j,k;
HANDLE hshterge;
DWORD dwID,dwID2;
system("CLS");
initwindow(getmaxwidth(),getmaxheight());
setfillstyle(SOLID_FILL,LIGHTGREEN);
setlinestyle(SOLID_LINE,1,3);
printf("\n\n\n\n\n\n\n");
printf(" Fa click pe fereastra aia din spate...\n\n");
while (!ismouseclick(WM_LBUTTONDOWN)); //a facut click
settextstyle(3,HORIZ_DIR,2);
outtextxy(getmaxx()/2-50,getmaxy()/2,"Ok. sa incepem...");Sleep(1000);cleardevice();
//artificii
nr=40+(rand()%60);
petarde_ramase=nr;numar_petarde=0;
hpetarde=(HANDLE*)malloc(nr*sizeof(HANDLE));
srand(rand()+time(NULL)+(petarde_ramase*petarde_ramase)+1);
hshterge=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)shterge,NULL,0,&dwID2);
for (i=0;i<nr;i++) {
j=rand()+1;k=rand()+1;j=((j*k)%800)+50;
hpetarde[i]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)artificii,NULL,0,&dwID);
petarde_ramase--;
numar_petarde++;
//printf("petarde_ramase = %d numar_petarde = %d\n",petarde_ramase,numar_petarde);
Sleep(j);
}
//printf("a ieshit din for\n");
WaitForMultipleObjects(nr,hpetarde,TRUE,INFINITE);
WaitForSingleObject(hshterge,INFINITE);
//printf("S-a terminat");
free(hpetarde);
CloseHandle(hshterge);
setcolor(LIGHTMAGENTA);
outtextxy(30,getmaxy()-70,"Stefan:");
setcolor(WHITE);
outtextxy(95,getmaxy()-70,"Sa-mi bag pula-n mortzii masi.. totzi petrec totzi se distreaza numa io nu!");
apasa();cleardevice();
setcolor(LIGHTMAGENTA);
outtextxy(30,getmaxy()-70,"Stefan:");
setcolor(WHITE);
outtextxy(95,getmaxy()-70,"Vreau shi io una cu cur mare shi gras ca sa-i infig pula-ntre buci!");
apasa();cleardevice();
cometa();
setcolor(LIGHTMAGENTA);
outtextxy(30,getmaxy()-70,"Stefan:");
setcolor(WHITE);
outtextxy(95,getmaxy()-70,"mm.. o cometa.. poate-ar trebui sa-mi fac o dorintza.. oricum n-o sa se indeplineasca da plm..");
apasa();cleardevice();
setcolor(LIGHTMAGENTA);
outtextxy(30,getmaxy()-70,"Stefan:");
setcolor(WHITE);
outtextxy(95,getmaxy()-70,"macar sa nu zic ca n-am incercat.. mmm? imi doresc?.. imi doresc?.. saaa?");
apasa();cleardevice();
setcolor(LIGHTMAGENTA);
outtextxy(30,getmaxy()-70,"Stefan:");
setcolor(LIGHTRED);
outtextxy(95,getmaxy()-70,"S-O FUT IN CUR PA GEORGIANA !!!");
apasa();cleardevice();
ufo();
getche();
closegraph();
}
void instructziuni() {
system("CLS");
printf("\n\n\n\n");
printf(" In Muianix trebuie sa joci rolul unui obsedat sexual care\n");
printf(" vrea sa futa-n cur numa fete cu buci mari shi grase......\n\n");
printf(" In mod aparent eshti un baiat cuminte shi tacut..........\n");
printf(" dar sub acea masca se afla o bestie flamanda.............\n\n");
printf(" Singuru tau avantaj in cucerirea fetelor este SEXUL......\n");
printf(" Odata ce futzi o fata nu are cum sa te refuze pe viitor..\n");
printf(" Dar ca sa ajungi acolo poate fi o cale foarte lunga......\n\n");
printf(" Dezavantajul tau principal va fi limbajul brut shi direct\n");
printf(" Fiind nascut pe strada n-ai avut prea mult contact cu\n");
printf(" societatea shi va trebui sa-tzi controlezi comportamentul\n");
printf(" Pentru ca-n functzie de raspunsurile date shi primite\n");
printf(" vei creshte sau vei scadea atat moralul tau cat shi al\n");
printf(" fetei pe care vrei s-o futzi in CUR\n\n");
printf(" BAGA MARE !!!\n");
getche();menu();
}
void despre() {
char raspuns[3];
system("CLS");
printf("M-am apucat de el pe sambata 30 octombrie! shi l-am terminat pe\n");
printf("shi care-i problema.. vrei sa zici ca mi-a luat prea mult timp?..\n");
printf("zi ma.. da sau nu\n\n");
scanf("%s",&raspuns);
for (int i = 0; raspuns[i]; i++) raspuns[i] = tolower(raspuns[i]);
if (strncmp(raspuns,"da",2)==0) printf("bine ca eshti tu mai dashtept!\n\n"); else
if (strncmp(raspuns,"nu",2)==0) printf("vezi maaaaaa?....\n\n"); else printf("tu nu shti sa vorbeshti?\n\n");
Sleep(2000);menu();
}
void menu() {
system("CLS");
printf("\n\n\n\n");
printf(" Muianix\n\n");
printf(" 1. Joc nou\n");
printf(" 2. Instructziuni\n");
printf(" 3. Depsre program\n");
printf(" 4. Ieshire\n\n");
char c;
c = getche();
switch (c) {
case '1': jocnou(); break;
case '2': instructziuni(); break;
case '3': despre(); break;
case '4': exit(EXIT_SUCCESS);
default: menu(); break;
}
}
int main() {
printf("\n\n\n\n");
printf(" *********\n");
printf(" * *\n");
printf(" * Muianix *\n");
printf(" * *\n");
printf(" *********\n");
printf("\n\n\n");
printf(" Un joc realizat de STEFANIAN STEFAN LIVIU\n\n");
printf(" (Asocierea personajelor din joc cu persoane reale este o coincidentza)\n\n");
Beep(300,100);Beep(400,100);Sleep(100);Beep(600,100);Beep(800,100);
ISoundEngine* engine = createIrrKlangDevice();
if (!engine)
{
printf("Could not startup engine\n");
return 0; // error starting up the engine
}
engine->play2D("1.mp3", true);
Sleep(6000);
menu();
/*char c;
c = getche();
printf("%c %d",c,int(c));
if (int(c)==13) printf("dfgfgh\n");
printf("%c %c",2,1);
int n;
while (1) {
printf("Datzi n\n");
scanf("%d",&n);
Beep(n,300);
}*/
system("PAUSE");
return 0;
}