奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C++ 實現游戲

時間:2024-12-18 05:27:59 C語言 我要投稿
  • 相關推薦

C++ 實現2048游戲范例

  《2048》是一款比較流行的數字游戲,最早于2014年3月20日發行。下面是由小編為你精心編輯的C++ 實現2048游戲范例,歡迎閱讀!

  說明:我一開始玩的是IOS APP版的TRHEES,后來才玩的2048,兩者在滑動的規則上有些區別,本人這個版本是這兩者的結合。

  最后,祝試玩愉快!

  界面丑陋,求不笑。

  以下是源代碼:

  復制代碼 代碼如下:

  /*By Reason*/

  #include

  #include

  #include

  #include

  #include

  #include//為了讀取方向鍵

  #include

  using namespace std;

  //srand( (unsigned)time( NULL ) );//隨機數種子 不能用在這里

  int pane[4][4];//棋盤

  int N=1;//2的n次方

  void showpane()//顯示棋盤

  {

  cout<<setw(46)<<"X2048 by Reason"<<endl;

  cout<<setw(50)<<" |-----------------------|"<<endl;

  for(int i=0;i<=3;i++)

  {

  cout<<setw(24)<<"";

  for(int j=0;j<=3;j++)

  {

  //SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);

  if(pane[i][j]==0)

  cout<<setw(2)<<"|"<<setw(4)<<" ";

  else

  cout<<setw(2)<<"|"<<setw(4)<<pane[i][j];

  if(j==3)

  {

  cout<<setw(2)<<"|"<<endl;

  cout<<setw(50)<<" |-----------------------|"<<endl;

  }

  }

  }

  }

  void newgame()//開始游戲

  {

  N=1;

  for(int i=0;i<=3;i++)//初始化棋盤

  for(int j=0;j<=3;j++)

  pane[i][j]=0;

  srand( (unsigned)time( NULL ) );

  int m=rand()%4;

  int n=rand()%4;

  int p=rand()%4;

  int q=rand()%4;

  pane[m][n]=pane[p][q]=2;

  showpane();

  }

  int if2n(int x)//判斷x是否是2的n次方

  {

  int flag=0;

  for(int n=1;n<=11;n++)

  {

  if(x==pow(2,n))

  {

  flag=1;

  if(n>N)

  N=n;

  return flag;

  }

  }

  return flag;

  }

  int upmove()//上移

  {

  int flag=0;

  for(int j=0;j<=3;j++)

  for(int i=0;i<3;i++)

  {

  if(if2n(pane[i][j]+pane[i+1][j])==1)

  {

  pane[i][j]=pane[i][j]+pane[i+1][j];

  pane[i+1][j]=0;

  flag=1;

  }

  }

  return flag;

  }

  int downmove()//下移

  {

  int flag=0;

  for(int j=0;j<=3;j++)

  for(int i=3;i>0;i--)

  {

  if(if2n(pane[i][j]+pane[i-1][j])==1)

  {

  pane[i][j]=pane[i][j]+pane[i-1][j];

  pane[i-1][j]=0;

  flag=1;

  }

  }

  return flag;

  }

  int leftmove()//左移

  {

  int flag=0;

  for(int i=0;i<=3;i++)

  for(int j=0;j<3;j++)

  {

  if(if2n(pane[i][j]+pane[i][j+1])==1)

  {

  pane[i][j]=pane[i][j]+pane[i][j+1];

  pane[i][j+1]=0;

  flag=1;

  }

  }

  return flag;

  }

  int rightmove()//右移

  {

  int flag=0;

  for(int i=0;i<=3;i++)

  for(int j=3;j>0;j--)

  {

  if(if2n(pane[i][j]+pane[i][j-1])==1)

  {

  pane[i][j]=pane[i][j]+pane[i][j-1];

  pane[i][j-1]=0;

  flag=1;

  }

  }

  return flag;

  }

  int testup()//能否上移測試

  {

  int flag=0;

  for(int j=0;j<=3;j++)

  for(int i=0;i<3;i++)

  {

  if((if2n(pane[i][j]+pane[i+1][j])==1)&&pane[i+1][j])

  {

  flag=1;

  }

  }

  return flag;

  }

  int testdown()//測試能否下移

  {

  int flag=0;

  for(int j=0;j<=3;j++)

  for(int i=3;i>0;i--)

  {

  if((if2n(pane[i][j]+pane[i-1][j])==1)&&pane[i-1][j])

  {

  flag=1;

  }

  }

  return flag;

  }

  int testleft()//測試能否左移

  {

  int flag=0;

  for(int i=0;i<=3;i++)

  for(int j=0;j<3;j++)

  {

  if((if2n(pane[i][j]+pane[i][j+1])==1)&&pane[i][j+1])

  {

  flag=1;

  }

  }

  return flag;

  }

  int testright()//測試能否右移

  {

  int flag=0;

  for(int i=0;i<=3;i++)

  for(int j=3;j>0;j--)

  {

  if((if2n(pane[i][j]+pane[i][j-1])==1)&&pane[i][j-1])

  {

  flag=1;

  }

  }

  return flag;

  }

  int panemax()//棋盤最大數

  {

  int max=pane[0][0];

  for(int i=0;i<=3;i++)

  for(int j=0;j<=3;j++)

  if(pane[i][j]>max)

  max=pane[i][j];

  return max;

  }

  int ifwin()//判斷是否勝利

  {

  int flag=0;

  if(panemax()==2048)

  {

  cout<<setw(45)<<"You Win!"<<endl;

  flag=1;

  }

  return flag;

  }

  int ifGameOver()//判斷是否游戲結束

  {

  int flag=0;

  if(testup()+ testdown() + testleft() + testright() == 0)

  {

  cout<<setw(43)<<"Game Over!"<<endl;

  flag=1;

  }

  return flag;

  }

  void addnewnumberup()//上移后添加新數

  {

  srand( (unsigned)time( NULL ) );

  int n;

  if(N==1)

  n=1;

  else

  n=(rand()%(N)+1);

  int newnumber=pow(2,n);

  for(int i=3;i>=0;i--)

  for(int j=0;j<=3;j++)

  if(pane[i][j]==0)

  {

  pane[i][j]=newnumber;

  return;

  }

  }

  void addnewnumberdown()//下移后添加新數

  {

  srand( (unsigned)time( NULL ) );

  int n;

  if(N==1)

  n=1;

  else

  n=(rand()%(N)+1);

  int newnumber=pow(2,n);

  for(int i=0;i<=3;i++)

  for(int j=0;j<=3;j++)

  if(pane[i][j]==0)

  {

  pane[i][j]=newnumber;

  return;

  }

  }

  void addnewnumberleft()//左移后添加新數

  {

  srand( (unsigned)time( NULL ) );

  int n;

  if(N==1)

  n=1;

  else

  n=(rand()%(N)+1);

  int newnumber=pow(2,n);

  for(int j=3;j>=0;j--)

  for(int i=0;i<=3;i++)

  if(pane[i][j]==0)

  {

  pane[i][j]=newnumber;

  return;

  }

  }

  void addnewnumberright()//右移后添加新數

  {

  srand( (unsigned)time( NULL ) );

  int n;

  if(N==1)

  n=1;

  else

  n=(rand()%(N)+1);

  int newnumber=pow(2,n);

  for(int j=0;j<=3;j++)

  for(int i=0;i<=3;i++)

  if(pane[i][j]==0)

  {

  pane[i][j]=newnumber;

  return;

  }

  }

  int GetDirection()//讀取方向

  {

  int ret = 0;

  do

  {

  int ch = _getch();

  if(isascii(ch))

  continue;

  ch = _getch();

  switch(ch)

  {

  case 72:

  ret = 2; // top

  break;

  case 75:

  ret = 1; // left

  break;

  case 77:

  ret = 3; // right

  break;

  case 80:

  ret = 4; // down

  break;

  default:

  break;

  }

  } while (ret == 0);

  return ret;

  }

  int main()//主函數

  {

  system("color f9");

  int makesure=1;

  while(makesure)

  {

  system("cls");

  newgame();

  while(ifwin()+ifGameOver()==0)

  {

  int c=GetDirection();

  switch(c)

  {

  case 2:

  if(testup()==1)

  {upmove();

  addnewnumberup();

  system("cls");

  showpane();

  }

  break;

  case 4:

  if(testdown()==1)

  {

  downmove();

  addnewnumberdown();

  system("cls");

  showpane();

  }

  break;

  case 1:

  if(testleft()==1)

  {

  leftmove();

  addnewnumberleft();

  system("cls");

  showpane();

  }

  break;

  case 3:

  if(testright()==1)

  {

  rightmove();

  addnewnumberright();

  system("cls");

  showpane();

  }

  break;

  default:

  break;

  }

  }

  cout<<setw(43)<<"你的最后成績為:"<<panemax()<<endl;

  cout<<setw(60)<<"若要重新開始游戲請輸入1,若要結束請輸入0。"<<endl;

  cin>>makesure;

  while(makesure!=1&&makesure!=0)

  {

  cout<<"輸入不正確,請重新輸入!"<<endl;

  cin>>makesure;

  }

  }

  cout<<"再見!"<<endl;

  system("pause");

  return 0;

【C++ 實現游戲】相關文章:

C++實現一維向量旋轉算法07-31

c++利用windows函數實現計時范例11-03

C++實現自底向上的歸并排序算法09-09

c和c++中實現函數回調的方法08-30

C++實現自頂向下的歸并排序算法09-14

堆排序算法及用C++實現基于最大堆的堆09-19

C++如何實現二叉樹葉子節點個數計算09-16

C++ this指針詳解07-04

C++類的轉換10-17

主站蜘蛛池模板: 吉木乃县| 岳阳市| 卢氏县| 黄大仙区| 博野县| 西畴县| 太仆寺旗| 保山市| 米泉市| 乌什县| 交口县| 榆社县| 故城县| 邢台县| 浮山县| 阳曲县| 辛集市| 灵丘县| 曲靖市| 共和县| 左贡县| 长宁县| 仁怀市| 湖口县| 四平市| 麦盖提县| 临沧市| 信阳市| 红河县| 德清县| 二手房| 洛扎县| 贵溪市| 米脂县| 平原县| 四子王旗| 余庆县| 台安县| 湟中县| 新泰市| 黄骅市|