الاثنين، 30 سبتمبر 2019

تصميم لعبة كاسحة الالغام بلغة البرمجة سي بلس بلس c++ Minesweeper









سورس كود
تصميم لعبة كاسحة الالغام بلغة البرمجة سي بلس بلس c++
Minesweeper
تم الشرح في الصور
اتمنى ان تستفيدو منها
تحياتي لكم جميعاااا

الكووود ::

#include<iostream.h>
#include<conio.h>
int i=0;
int ju=0;
int add1=9;
int add2=7;
void print(int *a)
{
  int e=3;
  for(i=0;i<16;i++){
    cout<<*a<<"\t";
      a++;
      if(e==i)
      {
        cout<<"\n";
          e+=4;
      }
   }
}
void proses_array(int *base,int *mines)
{
 int *min_point=mines;
 int *a;
   int *j;
   for(i=0;i<4;i++)
   {
    j=base + (*mines - 1);
    if((*mines==1) || (*mines==13))
      {
        int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         for(ju=0;ju<4;ju++)
       {
              if(*mines+1==*sure_min)
               {
                key1=false;
                 // continue;
               }
              if(*mines==1)
               {
                  if((*mines + 4) == *sure_min)
                  {
                   key2=false;
                   //continue;
                  }
                  if((*mines + 5 )== *sure_min)
                  {
                   key3=false;
                   //continue;
                  }
               }
               else// if(*mines==13)
                  {
                         if((*mines - 4)== *sure_min)
                   {
                    key2=false;
                                  //continue;
                   }
                   if((*mines - 3)==*sure_min)
                   {
                    key3=false;
                                //  continue;
                    }
                  }
             sure_min++;
            }

         if(key1==true)
         {
       a=j+1; *a +=1;
         }
         if(key2==true)
         {
          if(*mines==1) {a=j+4;}
          else          {a=j-4;}
            *a +=1;
         }
         if(key3==true)
         {
             if(*mines==1) {a=j+5;}
          else          {a=j-3;}
          *a +=1;
         }
      }
      else if((*mines==4) || (*mines==16))
      {
          int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         for(ju=0;ju<4;ju++)
       {
              if(*mines-1==*sure_min)
               {
                key1=false;
                 // continue;
               }
              if(*mines==4)
               {
                  if((*mines + 4) == *sure_min)
                  {
                   key2=false;
                   //continue;
                  }
                  if((*mines + 3 )== *sure_min)
                  {
                   key3=false;
                   //continue;
                  }
               }
               else// if(*mines==13)
                  {
                         if((*mines - 4)== *sure_min)
                   {
                    key2=false;
                                  //continue;
                   }
                   if((*mines - 5)==*sure_min)
                   {
                    key3=false;
                                //  continue;
                    }
                  }
             sure_min++;
            }

         if(key1==true)
         {
       a=j-1; *a +=1;
         }
         if(key2==true)
         {
          if(*mines==4) {a=j+4;}
          else          {a=j-4;}
            *a +=1;
         }
         if(key3==true)
         {
             if(*mines==4) {a=j+3;}
          else          {a=j-5;}
          *a +=1;
         }

      }
      else if((*mines==2) || (*mines==3))
      {
         int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         bool key4=true;
         bool key5=true;
         for(ju=0;ju<4;ju++)
       {
              if((*mines - 1 ) == *sure_min)
               {
                key1=false;

               }
               if((*mines + 1) == *sure_min)
               {
                key2=false;

               }
                  if((*mines + 3) == *sure_min)
                  {
                   key3=false;

                  }
                  if((*mines + 4 )== *sure_min)
                  {
                   key4=false;

                  }
                         if((*mines + 5)== *sure_min)
                   {
                    key5=false;

                   }
             sure_min++;
            }

         if(key1==true)
         {
       a=j-1; *a +=1;
         }
         if(key2==true)
         {

               a=j+1; *a +=1;
         }
         if(key3==true)
         {

            a=j+3; *a +=1;
         }
         if(key4==true)
         {
       a=j+4; *a +=1;
         }
         if(key5==true)
         {
       a=j+5; *a +=1;
         }
      }
      else if((*mines==14) || (*mines==15))
      {
       int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         bool key4=true;
         bool key5=true;
         for(ju=0;ju<4;ju++)
       {
              if((*mines - 1 ) == *sure_min)
               {
                key1=false;

               }
               if((*mines + 1) == *sure_min)
               {
                key2=false;

               }
               if((*mines - 3) == *sure_min)
                  {
                   key3=false;

                  }
                  if((*mines - 4 )== *sure_min)
                  {
                   key4=false;

                  }

                   if((*mines - 5)== *sure_min)
                    {
                      key5=false;

                    }

             sure_min++;
            }

         if(key1==true)
         {
       a=j-1; *a +=1;
         }
         if(key2==true)
         {

               a=j+1; *a +=1;
         }
         if(key3==true)
         {

            a=j-3; *a +=1;
         }
         if(key4==true)
         {
       a=j-4; *a +=1;
         }
         if(key5==true)
         {
       a=j-5; *a +=1;
         }
      }
      else if((*mines==5) || (*mines==9))
      {
    int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         bool key4=true;
         bool key5=true;
         for(ju=0;ju<4;ju++)
       {
              if((*mines + 1 ) == *sure_min)
               {
                key1=false;

               }
               if((*mines - 4) == *sure_min)
               {
                key2=false;

               }
               if((*mines - 3) == *sure_min)
                  {
                   key3=false;

                  }
               if((*mines + 4 )== *sure_min)
                  {
                   key4=false;

                  }
               if((*mines + 5)== *sure_min)
                {
                   key5=false;

                  }
               sure_min++;
            }
         if(key1==true)
          {
       a=j+1; *a +=1;
          }
          if(key2==true)
          {
                a=j-4; *a +=1;
          }
         if(key3==true)
         {
            a=j-3; *a +=1;
         }
         if(key4==true)
         {
       a=j+4; *a +=1;
         }
         if(key5==true)
         {
       a=j+5; *a +=1;
         }
      }
      else if((*mines==8) || (*mines==12))
      {
       int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         bool key4=true;
         bool key5=true;
         for(ju=0;ju<4;ju++)
       {
              if((*mines - 1 ) == *sure_min)
               {
                key1=false;
               }
               if((*mines - 4) == *sure_min)
               {
                key2=false;
               }
               if((*mines - 5) == *sure_min)
                  {
                   key3=false;

                  }
               if((*mines + 4 )== *sure_min)
                  {
                   key4=false;

                  }

               if((*mines + 3)== *sure_min)
               {
                    key5=false;

               }

             sure_min++;
            }

         if(key1==true)
         {
       a=j-1; *a +=1;
         }
         if(key2==true)
         {
               a=j-4; *a +=1;
         }
         if(key3==true)
         {
            a=j-5; *a +=1;
         }
         if(key4==true)
         {
       a=j+4; *a +=1;
         }
         if(key5==true)
         {
       a=j+3; *a +=1;
         }
      }
      else // ((*mines==6) || (*mines==7)|| (*mines==10) || (*mines==11))
      {
       int *sure_min= min_point;
        bool key1=true;
 bool key2=true;
 bool key3=true;
         bool key4=true;
         bool key5=true;
         bool key6=true;
         bool key7=true;
         bool key8=true;
         for(ju=0;ju<4;ju++)
       {
              if((*mines - 1 ) == *sure_min)
               {
                key1=false;
               }
               if((*mines + 1) == *sure_min)
               {
                key2=false;

               }
               if((*mines - 3) == *sure_min)
                  {
                   key3=false;

                  }
               if((*mines - 4 )== *sure_min)
                  {
                   key4=false;

                  }

               if((*mines - 5)== *sure_min)
                   {
                    key5=false;

                   }

               if((*mines + 3 ) == *sure_min)
               {
                key6=false;
               }
               if((*mines + 4 ) == *sure_min)
               {
                key7=false;
               }
               if((*mines + 5 ) == *sure_min)
               {
                key8=false;
               }
             sure_min++;
            }

         if(key1==true)
         {
       a=j-1; *a +=1;
         }
         if(key2==true)
         {
               a=j+1; *a +=1;
         }
         if(key3==true)
         {
            a=j-3; *a +=1;
         }
         if(key4==true)
         {
       a=j-4; *a +=1;
         }
         if(key5==true)
         {
       a=j-5; *a +=1;
         }
         if(key6==true)
         {
       a=j+3; *a +=1;
         }
         if(key7==true)
         {
       a=j+4; *a +=1;
         }
         if(key8==true)
         {
       a=j+5; *a +=1;
         }
      }
      mines++;
   }
}

void show1()
{
 int rr=1;
   for(int roww=0;roww<4;roww++)
   {                                               //for(roww)
   if(roww==0)
   {
    cout<<"\t\t\t\t" ;
    for(int t=0;t<4;t++)     // {     first row
    {
    if((t==0)||(t==3))
    for(int i=0;i<5;i++)
    {cout<<"_";}
    else
    for(int i=0;i<4;i++)
    {cout<<"_";}
    cout<<" ";
    }                        // }
   }
    cout<<"\n\t\t\t\t|";
   for(int t=0;t<4;t++)     // {     between row
   {
   for(int y=0;y<4;y++)
   {
   cout<<" ";
   if(y==3)
   cout<<"|";
   }
   }                       //  }
   cout<<"\n\t\t\t\t|";
   for(int t=0;t<4;t++)    //  {  //////////////////
   {
   for(int y=0;y<4;y++)
   {
    if(y==1)
      {
       cout<<rr;
         if(rr>9)
         y++;
      }
      else
      {
       cout<<" ";
      }
      if(y==3)
      cout<<"|";
   }
   rr++;
   }                       //  }  ///////////////////
   cout<<"\n\t\t\t\t|";
   for(int t=0;t<4;t++)    //  {       last row
   {
   for(int i=0;i<4;i++)
   {
   cout<<"_";
   if(i==3) cout<<"|";
   }
   }                       //  }
   }                                                    //for(roww)
}
int show_pro(int *array,int *x,int add)
{
 bool key_manes=false;
 int rr=1;
 int *arrayy=array;
   for(int roww=0;roww<4;roww++)
   {                                               //for(roww)
 cout<<"\t" ;
   if(roww==0)
   {
    for(int t=0;t<4;t++)     // {     first row
    {
    if((t==0)||(t==3))
    for(int i=0;i<5;i++)
    {cout<<"_";}
    else
    for(int i=0;i<4;i++)
    {cout<<"_";}
    cout<<" ";
    }                        // }
   }
    cout<<"\n\t|";
   for(int t=0;t<4;t++)     // {     between row
   {
   for(int y=0;y<4;y++)
   {
   cout<<" ";
   if(y==3)
   cout<<"|";
   }
   }                       //  }
   cout<<"\n\t|";
   for(int t=0;t<4;t++)    //  {  //////////////////
   {
   for(int y=0;y<4;y++)
   {
    if(y==1)
      {
       int *xe=x;
         bool key_m=false;
         for(int rt=0;rt<=add;rt++)
         {
            key_m=false;
          if(*xe==rr)
            {
             if(*arrayy==9)
               {
                cout<<"@";
                  key_m=false;
                  key_manes=true;   //return 1;
                  break;
               }
               else
             {
               cout<<*arrayy;
               key_m=false;
               break;
               }
            }
            else
            {key_m=true;}
            xe++;
         }
         if(key_m==true)
            cout<<"*";
         arrayy++;
         rr++;
      }
      else
      {
       cout<<" ";
      }
      if(y==3)
      cout<<"|";
   }
   //rr++;
   }                       //  }  ///////////////////
   cout<<"\n\t|";
   for(int t=0;t<4;t++)    //  {       last row
   {
   for(int i=0;i<4;i++)
   {
   cout<<"_";
   if(i==3) cout<<"|";
   }
   }                       //  }
   }                                                    //for(roww)
 if(key_manes==true)
 return 1;
 return 0;
}
void num_ash(int *mines,int ad_d1,int ad_d2)
{
   //int base==mines;
 int *val_num=mines;

   for(int a=0;a<4;a++)
   {
    re:
    *val_num=((ad_d1 * ad_d2) % 17);           //darb
      for(int aa=0;aa<a;aa++)
      {
       int *col=( mines + aa );
       if(*val_num==(*col))
        {
          ad_d1++;
       ad_d2++;
          goto re;
        }
      }
       if(*val_num==0)
          {
           ad_d1++;
       ad_d2++;
          goto re;
          }
    val_num++;
      ad_d1++;
      ad_d2++;
   }
}
int main()
{
int resaltt ;
   int finsh_blay[16];
   for(int fin=0;fin<16;fin++)
    finsh_blay[fin]=fin+1;
   int exitt;
   do
    {
       int mines[4];
         int array[4][4];
 int add_m[16-4];
         for(int adm=0;adm<13;adm++)
         add_m[adm]=0;
         int *base=&array[0][0];
         num_ash(&mines[0],add1,add2);
         add1 *=3;
         add2+=3;
   for( i=0;i<4;i++)
         for( ju=0;ju<4;ju++)
    {
           array[i][ju]=0;
    }
          for(i=0;i<4;i++)
    {
     int *val_m = base + (mines[i]-1);
       *val_m=9;
           }
           proses_array(&array[0][0],&mines[0]);
       for(i=1;i<(16-3);i++)
    {
           rere:
           clrscr();
          cout<<"\t\t\t*** Welcam to my gemes ***\n\n";
          show1() ;
               cout<<"\n\n" ;
               if(i>1)
               resaltt=show_pro(&array[0][0],&add_m[0],i);
          cout<<"\n\nshoes anny number of the table :: " ;
    re:
       cout<<"\n\n enter number :: ";
               cin>>add_m[i];
        if((add_m[i]>0)&&(add_m[i]<17))
        {
               for(int ie=1;ie<i;ie++)
               if(add_m[ie]==add_m[i])
               {goto rere;}
                for(int ru=0;ru<4;ru++)
                if(add_m[i]==mines[ru])
                {
                cout<<"\n\n\t\t\t finsh  bad game !!\n\n\t\t\t try agine \n\n" ;
                goto ex;
                }
                if(i == 12)
        {
                  goto ex2;
               }
         resaltt=show_pro(&array[0][0],&add_m[0],i);
        }
       else
               {
        cout<<"\terorr enter !! agin  ";
        goto re;
        }
          }
          ex2:
          cout<<"\n\nyou are the best good \n\n";
          ex:
          int op=show_pro(&array[0][0],&finsh_blay[0],15);
          cout<<"\n\n\t\t finshed game !!\n\n\t\t\t<-- go to exit press number --> ( 0 ) \n\n\t\t\t<-- try agine pres any number --> :: ";
          cin>>exitt;
      }while(exitt!=0);
   cout<<"\n\n\t\t good bay ^_^";
   getch();
}

تصميم لعبة

تصميم لعبة إلكترونية
تصميم لعبة على برنامج سي بلس بلس
تصميم لعبة على برنامج c++
لغة سي بلس بلس
لغة c++
لعبة باستخدام سي بلس بلس

لعبة باستخدام c++


***********************


***********************

إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد. هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة, ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميلً