Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- void generacampo(char campo[][12]);
- void visualizzacampo(char campo[][12],int righe,int colonne);
- int main()
- {
- char campo[20][12];
- char cubo[2][2] ={{'X','X'},{'X','X'}};
- char linea[3] = {'X','X','X'};
- int i,j;
- int rigacubo,colonnacubo;
- int colonnalinea,rigalinea;
- srand(time(NULL));
- generacampo(campo);
- int scelta = 0;
- int rigaverifica =1;
- int npezzi = 0;
- int qualepezzo = 0;
- int punti = 0;
- int verificarigapiena = 0;
- do{
- qualepezzo = rand()%2+1;
- //riga
- if(qualepezzo == 1){
- colonnalinea = rand()%8 + 1; //genera una colonna compresa tra 1 e 8
- rigalinea = 1;
- rigaverifica = 1;
- if((campo[rigalinea+1][colonnalinea] = ' ')||(campo[rigalinea+1][colonnalinea+1] == ' ')||(campo[rigalinea+1][colonnalinea+2] == ' ')){
- campo[rigalinea][colonnalinea] = linea[0];
- campo[rigalinea][colonnalinea+1] = linea[1];
- campo[rigalinea][colonnalinea+2] = linea[2];
- }
- visualizzacampo(campo,20,12);
- do{
- do{
- printf("Premi 1 per far scendere il pezzo\n");
- printf("Premi 2 per spostare a sinistra il pezzo\n");
- printf("Premi 3 per spostare a destra il pezzo\n");
- printf("Premi 4 per ruotare il pezzo\n");
- scanf("%d\n",&scelta);
- }while(scelta <= 0 || scelta > 4);
- if(scelta == 1){
- if(campo[rigalinea][colonnalinea] == 'X' && campo[rigalinea][colonnalinea+1] == 'X' && campo[rigalinea][colonnalinea+2] == 'X'){
- if(campo[rigalinea+1][colonnalinea] == 'X' || campo[rigalinea+1][colonnalinea+1] == 'X' || campo[rigalinea+1][colonnalinea+2] == 'X'){
- break;
- }
- campo[rigalinea][colonnalinea] = ' ';
- campo[rigalinea][colonnalinea+1] = ' ';
- campo[rigalinea][colonnalinea+2] = ' ';
- campo[rigalinea+1][colonnalinea] = linea[0];
- campo[rigalinea+1][colonnalinea+1] = linea[1];
- campo[rigalinea+1][colonnalinea+2] = linea[2];
- rigalinea++;
- rigaverifica++;
- }else{
- if(campo[rigalinea][colonnalinea+3] == 'X'){
- break;
- }
- if(campo[rigalinea+3][colonnalinea] == ' '){
- campo[rigalinea][colonnalinea] = ' ';
- campo[rigalinea+3][colonnalinea] = 'X';
- rigalinea++;
- rigaverifica++;
- }
- }
- }
- if(scelta == 2){
- if(campo[rigalinea][colonnalinea] == 'X' && campo[rigalinea][colonnalinea+1] == 'X' && campo[rigalinea][colonnalinea+2] == 'X'){
- if(campo[rigalinea][colonnalinea-1] == ' '){
- campo[rigalinea][colonnalinea+2] = ' ';
- campo[rigalinea][colonnalinea-1] = 'X';
- colonnalinea = colonnalinea -1;
- }else{
- printf("Impossibile spostare a sinistra\n");
- }
- }else{
- if(campo[rigalinea][colonnalinea-1] == ' '){
- campo[rigalinea][colonnalinea] = ' ';
- campo[rigalinea+1][colonnalinea] = ' ';
- campo[rigalinea+2][colonnalinea] = ' ';
- campo[rigalinea][colonnalinea-1] = 'X';
- campo[rigalinea+1][colonnalinea-1] = 'X';
- campo[rigalinea+2][colonnalinea-1] = 'X';
- colonnalinea = colonnalinea-1;
- }else{
- printf("Impossibile spostare a sinsitra\n");
- }
- }
- }
- if(scelta == 3){
- if(campo[rigalinea][colonnalinea] == 'X' && campo[rigalinea][colonnalinea+1] == 'X' && campo[rigalinea][colonnalinea+2] == 'X')
- if(campo[rigalinea][colonnalinea+3] == ' '){
- campo[rigalinea][colonnalinea] = ' ';
- campo[rigalinea][colonnalinea+3] = 'X';
- colonnalinea = colonnalinea+1;
- }else{
- printf("Impossibile spostare a destra\n");
- }
- else{
- if(campo[rigalinea][colonnalinea+1] == ' '){
- campo[rigalinea][colonnalinea] = ' ';
- campo[rigalinea+1][colonnalinea] = ' ';
- campo[rigalinea+2][colonnalinea] = ' ';
- campo[rigalinea][colonnalinea+1] = 'X';
- campo[rigalinea+1][colonnalinea+1] = 'X';
- campo[rigalinea+2][colonnalinea+1] = 'X';
- colonnalinea = colonnalinea+1;
- }else{
- printf("Impossibile spostare a destra\n");
- }
- }
- }
- if (scelta == 4){
- if(campo[rigalinea][colonnalinea] == 'X' && campo[rigalinea][colonnalinea+1] == 'X' && campo[rigalinea][colonnalinea+2] == 'X'){
- if((campo[rigalinea+1][colonnalinea] == ' ')||(campo[rigalinea+2][colonnalinea])== ' '){
- campo[rigalinea][colonnalinea+1] = ' ';
- campo[rigalinea][colonnalinea+2] = ' ';
- campo[rigalinea+1][colonnalinea] = 'X';
- campo[rigalinea+2][colonnalinea] = 'X';
- rigaverifica = rigaverifica+2;
- }
- }
- else{
- if((campo[rigalinea][colonnalinea+1] == ' ')||(campo[rigalinea][colonnalinea+2])== ' '){
- campo[rigalinea+1][colonnalinea] = ' ';
- campo[rigalinea+2][colonnalinea] = ' ';
- campo[rigalinea][colonnalinea+1] = 'X';
- campo[rigalinea][colonnalinea+2] = 'X';
- rigaverifica = rigaverifica-2;
- }
- }
- }
- visualizzacampo(campo,20,12);
- scelta = -1;
- }while(rigaverifica<18);
- }
- if(qualepezzo == 2){
- //cubo
- colonnacubo = rand()%9 + 1; //genera una colonna compresa tra 1 e 9
- rigacubo = 1;
- if((campo[rigacubo+1][colonnacubo] = ' ')||(campo[rigacubo+1][colonnacubo+1] == ' ')){
- campo[rigacubo][colonnacubo] = cubo[0][0];
- campo[rigacubo+1][colonnacubo] = cubo[1][0];
- campo[rigacubo][colonnacubo+1] = cubo[0][1];
- campo[rigacubo+1][colonnacubo+1] = cubo[1][1];
- }
- visualizzacampo(campo,20,12);
- do{
- do{
- printf("Premi 1 per far scendere il pezzo\n");
- printf("Premi 2 per spostare a sinistra il pezzo\n");
- printf("Premi 3 per spostare a destra il pezzo\n");
- scanf("%d\n",&scelta);
- }while(scelta <= 0 || scelta > 3);
- if(scelta == 1){
- if(campo[rigacubo+2][colonnacubo] == 'X' || campo[rigacubo+2][colonnacubo+1] == 'X'){
- break;
- }
- if(campo[rigacubo+2][colonnacubo] == ' ' && campo[rigacubo+2][colonnacubo+1] == ' '){
- campo[rigacubo][colonnacubo] = ' ';
- campo[rigacubo+2][colonnacubo] = 'X';
- campo[rigacubo][colonnacubo+1] = ' ';
- campo[rigacubo+2][colonnacubo+1] = 'X';
- rigacubo++;
- }
- }
- if(scelta == 2){
- if(campo[rigacubo][colonnacubo-1] == ' '){
- campo[rigacubo][colonnacubo+1] = ' ';
- campo[rigacubo+1][colonnacubo+1] = ' ';
- campo[rigacubo][colonnacubo-1] = 'X';
- campo[rigacubo+1][colonnacubo-1] = 'X';
- colonnacubo = colonnacubo -1;
- }else{
- printf("Impossibile spostare a sinistra\n");
- }
- }
- if(scelta == 3){
- if(campo[rigacubo][colonnacubo+2] == ' '){
- campo[rigacubo][colonnacubo] = ' ';
- campo[rigacubo+1][colonnacubo] = ' ';
- campo[rigacubo][colonnacubo+2] = 'X';
- campo[rigacubo+1][colonnacubo+2] = 'X';
- colonnacubo = colonnacubo +1;
- }else{
- printf("Impossibile spostare a destra\n");
- }
- }
- visualizzacampo(campo,20,12);
- scelta = -1;
- }while(rigacubo<17);
- }
- int contc;
- for(i=18;i>0;i--){
- for(j=1;j<11;j++){
- if(campo[i][j] == 'X'){
- verificarigapiena++;
- }
- if(verificarigapiena == 10){
- punti++;
- for(j=1;j<11;j++){
- campo[i][j] = ' ';
- }
- for(contc=i;contc>1;contc--){
- for(j=1;j<11;j++){
- campo[contc][j] = campo[contc-1][j-1];
- }
- }
- }
- }
- verificarigapiena = 0;
- }
- printf("Punti: %d\n",punti);
- }while(npezzi <20 || punti <10);
- system("pause");
- return 0;
- }
- //funzioni
- void generacampo(char campo[][12]){
- int i,j;
- for(i=0;i<20;i++){
- for(j=0;j<12;j++){
- campo[i][j] = ' ';
- }
- }
- for(j=0;j<12;j++){
- campo[0][j] = '0';
- campo[19][j]= '0';
- }
- for(i=0;i<20;i++){
- campo[i][0] = '0';
- campo[i][11] = '0';
- }
- }
- void visualizzacampo(char campo[][12],int righe,int colonne){
- int i,j;
- for(i=0;i<righe;i++){
- for(j=0;j<colonne;j++){
- printf("%c",campo[i][j]);
- }
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement