#include #include #include #include int alt[100][2]; int Feld[100][100];//y/x int Position[2];// int i,x,y; char c; int error=0; int anz=1; int z,w; int Richtung=3; int Farbe(int Text, int Hintergrund) { int Colour=Text+16*Hintergrund; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),Colour); } DWORD WINAPI Thread() { while(error==0) { c=toupper(getch()); if(Richtung==2 || Richtung==4) if(c=='W') Richtung=1; if(Richtung==1 || Richtung==3) if(c=='A') Richtung=2; if(Richtung==2 || Richtung==4) if(c=='S') Richtung=3; if(Richtung==1 || Richtung==3) if(c=='D') Richtung=4; } } DWORD WINAPI Achtung() { srand(time(0)); int a,b; int en=0; int sume=0; int sume1=0; int Felder[400][1][2]; int mi=0; int j,k; while(error==0) { mi=0; if(Feld[Position[1]][Position[0]]==1 || Feld[Position[1]][Position[0]]==4) { error=1; system("cls"); return 0; } if(Feld[Position[1]][Position[0]]==3) { Feld[Position[1]][Position[0]]=0; do { sume=Position[1]*10 + Position[0]*100; mi=0; for(j=1;j<19;j++) { for(k=1;k<19;k++) { sume1=j*10+k*100; if(Feld[j][k]!=1 && Feld[j][k]!=4 && sume1!=sume ) { Felder[mi][0][0]=j; Felder[mi][0][1]=k; mi++; } } } a=Felder[(rand() % mi + 0)][0][0]; b=Felder[(rand() % mi + 0)][0][1]; sume=Position[1]*10 + Position[0]*100; sume1=a*10+b*100; if(Feld[a][b]!=1 && Feld[a][b]!=4 && sume1!=sume ) { Feld[a][b]=3; break; } }while(1); Farbe(rand() % 14 + 1,0); anz++; } } } int snake(int Schwierigkeit) { printf("Spielregeln:\n\n"); printf("Sie steuern ein Schlange($) mit den Tasten w,a,s,d. Das Spielziel besteht darin, so viele Kisten(X) wie moeglich zu sammeln ohne gegen sich selbst oder gegen die Wand zu stossen. Viel Spass!\n\n"); system("pause"); system("cls"); // Spieler steht auf den Koordinaten x=1, y=1 Position[0]=1;//x Position[1]=1;//y error=0; anz=1; Richtung=3; for(i=0;i<100;i++) { alt[i][0]=100; alt[i][1]=100; } //alles auf Null stellen for(y=0;y<100;y++) { for(x=0;x<100;x++) { Feld[y][x]=0; } } //Wand erstellen for(i=0;i<20;i++) { Feld[0][i]=1;//obere Wand wird gesetzt Feld[i][0]=1;//linke Wand wird gesetzt Feld[19][i]=1;//untere Wand wird gesetzt Feld[i][19]=1;//rechte Wand wird gesetzt } Feld[(rand() % 16 + 2)][(rand() % 16 + 2)]=3;//X soll auf den Koordinaten y=3,x=3 stehen //Spielfeldmalen+Bewegung CreateThread(NULL, 0, Thread, NULL, 0, NULL); CreateThread(NULL, 0, Achtung, NULL, 0, NULL); while(error==0) { for(y=0;y<20;y++)//Spielfeld wird gezeichnet { for(x=0;x<20;x++) { if(Position[0]==x && Position[1]==y) printf("$"); else { if(Feld[y][x]==0) printf(" "); if(Feld[y][x]==1) printf("#"); if(Feld[y][x]==3) printf("X"); if(Feld[y][x]==4) printf("$"); } } printf("\n"); } printf("Level: %d\n",anz); if(Richtung==1) Position[1]--; if(Richtung==2) Position[0]--; if(Richtung==3) Position[1]++; if(Richtung==4) Position[0]++; sleep(Schwierigkeit); system("cls"); for(i=1;i<100;i++) { if(Feld[alt[i][1]][alt[i][0]]==4) Feld[alt[i][1]][alt[i][0]]=0; } for(i=100;i>0;i--) { alt[i][0]=alt[i-1][0]; alt[i][1]=alt[i-1][1]; } alt[0][0]=Position[0]; alt[0][1]=Position[1]; for(i=1;iSehr leichtes Spiel\n"); printf("<2>Leichtes Spiel\n"); printf("<3>Mittelschweres Spiel\n"); printf("<4>Schweres Spiel\n"); printf("<5>Sehr schweres Spiel\n"); printf("\nIhre Wahl: "); scanf("%d",&Wahl); getchar(); system("cls"); }while(Wahl>5 || Wahl<1); do{ system("cls"); Farbe(14, 0); switch(Wahl) { case 1: snake(300); break; case 2: snake(200); break; case 3: snake(100); break; case 4: snake(50); break; case 5: snake(25); break; case 6: return 0; break; } Farbe(14, 0); system("cls"); do{ printf("Willkommen im Spiel Schlange!\n\n"); printf("Was fuer ein Spiel wollen Sie beginnen:\n"); printf("<1>Sehr leichtes Spiel\n"); printf("<2>Leichtes Spiel\n"); printf("<3>Mittelschweres Spiel\n"); printf("<4>Schweres Spiel\n"); printf("<5>Sehr schweres Spiel\n"); printf("<6>Ich habe genug von der komischen Schlange\n"); printf("\nIhre Wahl: "); scanf("%d",&Wahl); getchar(); system("cls"); }while(Wahl>6 || Wahl<1); }while(1); system("PAUSE"); return 0; }