佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: Wongkokchoy

Asignment新的小问题。。。

[复制链接]
发表于 1-10-2008 11:44 AM | 显示全部楼层

回复 20# Wongkokchoy 的帖子

我写了一个, 你或许可以参考参考
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>

  4. using namespace std;

  5. /************* Function Phototype BEGIN *******************/

  6. void initialize_player_position( int pos[], int no_player );
  7. /* set player starting position
  8.    argument: pos[] `player_position array`
  9.              no_player ` variable that hole " number of player " `
  10. */

  11. int player_move( int position );
  12. /* Player roll dice and move
  13.    If position > 100, reverse
  14.    climb ladder or slide down the snake if any

  15.    argument: position `Player current position`
  16.    return  : position `Player position`
  17. */


  18. int snake_and_ladder( int position );
  19. /* Change player position when player meets ladder or snake
  20.    print out statement to inform player

  21.    argument: position `Player current position`
  22.    return  : position `Player position after ladder and snake`
  23. */

  24. bool gameover( int position );
  25. /* Check is game over criteria meets?

  26.    argument: position `Player current position`
  27.    return  : TRUE  ` When game over`
  28.              FALSE ` When not yet game over`
  29. */

  30. void print_ladder( int position );
  31. /* print the statement when player meets a ladder
  32.    argument : position `Player position after meets a ladder`
  33.    return   : NONE
  34. */

  35. void print_snake( int position );
  36. /* print the statement when player meets a snake
  37.    argument : position `Player position after meets a snake`
  38.    return   : NONE
  39. */

  40. void print_gameover( int player );
  41. /* print out game over statement . i.e who wins
  42.    argument : player `Winning player`
  43.    return   : NONE
  44. */

  45. /************** END FUNCTION PHOTOTYPE *****************/

  46. int main( int argc, char *argv[])
  47. {
  48.     // randomize rand() seed
  49.     srand( time(0));

  50.     int no_player, *player_position, current_player;

  51.     cout << "Enter Number of Players : ";
  52.     cin >> no_player;
  53.     cin.get(); // get rid of enter key "line break"

  54.     player_position = new int[ no_player ];

  55.     initialize_player_position( player_position, no_player );


  56.     while( true )
  57.     {
  58.         for( current_player = 0; current_player < no_player; current_player++)
  59.         {
  60.             cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
  61.             player_position[ current_player ] = player_move( player_position[ current_player ]);

  62.             if ( gameover( player_position[ current_player ] ))
  63.                     print_gameover( current_player );

  64.         }
  65.     }
  66.                

  67.     return 0;

  68. }

  69. // set starting position of all player
  70. void initialize_player_position( int pos[], int no_player )
  71. {
  72.     while( --no_player >= 0 )
  73.         pos[ no_player ] = 1 ;

  74.     return;
  75. }
  76.    
  77. int player_move( int position )
  78. {
  79.     int dice;
  80.     // roll dice and move

  81.     cout << "Rolling dice .. .. "
  82.          << "Press ENTER to continue ...";

  83.     cin.get();

  84.     dice = rand() % 6 + 1;

  85.     cout << "\n . . \n"
  86.          << ". . \n"
  87.          << ". . \n"
  88.          << "\n\nyou get " << dice << " !!" << endl
  89.          << "\nMoving forward !! " << endl;
  90.          
  91.     position += dice;

  92.     if( position > 100 )
  93.     {
  94.         cout << "OPPS!! \n"
  95.              << "You got to the wall , more than 100 !! \n"
  96.              << "Moving " << position - 100 << " steps backward " << endl;

  97.         position = 100 - ( position - 100 );
  98.     }

  99.     cout << "You are now in position " << position << "!!" << endl;

  100.     position = snake_and_ladder( position );

  101.     return position;

  102. }


  103. int snake_and_ladder( int position )
  104. {
  105.     // put your snake and ladder information here
  106.     // e.g a ladder at position 4, goes to position 16
  107.     // case 4:
  108.     //    return 16;

  109.     switch( position )
  110.     {
  111.         case 4:
  112.             print_ladder(16);
  113.             return 16;

  114.         default:
  115.             return position;
  116.     }
  117. }

  118. bool gameover( int position )
  119. {
  120.     if (position == 100)
  121.         return true;
  122.     else
  123.         return false;
  124. }

  125. void print_gameover( int player )
  126. {
  127.     cout << "Player " << player + 1 << " WINS!! " << endl
  128.          << "Congratulation " << endl;

  129.     // exit program
  130.     exit(0);
  131. }

  132. void print_ladder( int position )
  133. {

  134.      cout << "Congratulation !! \n"
  135.           << "You climb up a ladder \n"
  136.           << "You are now at position " << position << " !!" << endl;
  137. }

  138. void print_snake( int position )
  139. {

  140.      cout << "OPPS!! \n"
  141.           << "You meets a snake \n"
  142.           << "You are now at position " << position << " !!" << endl;
  143. }
复制代码
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 1-10-2008 12:23 PM | 显示全部楼层
不是很明白,因为我没有学过像下面酱的冬冬(argument):
int main( int argc, char *argv[])
我学的都是void main(),int main()
需要时间消化消化以一下

[ 本帖最后由 Wongkokchoy 于 1-10-2008 12:25 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 12:25 PM | 显示全部楼层

回复 22# Wongkokchoy 的帖子

那么你就用 int main()

int main( int argc, char *argv[]) 就别管他。
回复

使用道具 举报

 楼主| 发表于 1-10-2008 12:32 PM | 显示全部楼层
bool
#include <ctime>

using namespace std;


又是什么?
回复

使用道具 举报

发表于 1-10-2008 12:34 PM | 显示全部楼层

回复 24# Wongkokchoy 的帖子

bool 是 boolean。 也就是 TRUE or FALSE
回复

使用道具 举报

发表于 1-10-2008 12:36 PM | 显示全部楼层

回复 24# Wongkokchoy 的帖子

#include <ctime>

#include <time.h> 基本上一样 time.h 待会用来更改rand的seed, 不然你的rand 每一次都会给你相同的号码。

using namespace std, 使用namespace, 这里是standard namespace
回复

使用道具 举报

Follow Us
 楼主| 发表于 1-10-2008 12:39 PM | 显示全部楼层
很多function没教到,不知道能不能用。。。。。
#include <ctime>

using namespace std;
是什么?

然后如果player 1 赢了,可是我要让剩下的player 2 和 player 3 continue玩到完,酱又要如何呢?

[ 本帖最后由 Wongkokchoy 于 1-10-2008 12:42 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 12:44 PM | 显示全部楼层

回复 27# Wongkokchoy 的帖子

我这里用的 library 只有 srand, rand(), time, 罢了, 其他的都是自己的function。 当然还有cin cout endl

using namespace std; .. 这个是关于namespace的, 现在你可以别管他, 记得每一次写c++ 的时候就加下去。

#include <ctime> 这个加入 time.h 这个library。
在c++ 里 #include <time.h> 不是正规写法 ( 因为不是每一个系统的 filename extention 都是.h) , 说一就写
#include <ctime>
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 1-10-2008 12:48 PM | 显示全部楼层
我尝试放
using namespace std; 进去code 里面, 可是有error:
Namespace name expected
回复

使用道具 举报

发表于 1-10-2008 01:23 PM | 显示全部楼层

回复 27# Wongkokchoy 的帖子

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>

  4. using namespace std;

  5. /************* Function Phototype BEGIN *******************/

  6. void initialize_player_info( int pos[], bool player_gameover_flag[] , int no_player );
  7. /* set player starting position
  8.    argument: pos[] `player_position array`
  9.              no_player ` variable that hole " number of player " `
  10. */

  11. int player_move( int position );
  12. /* Player roll dice and move
  13.    If position > 100, reverse
  14.    climb ladder or slide down the snake if any

  15.    argument: position `Player current position`
  16.    return  : position `Player position`
  17. */


  18. int snake_and_ladder( int position );
  19. /* Change player position when player meets ladder or snake
  20.    print out statement to inform player

  21.    argument: position `Player current position`
  22.    return  : position `Player position after ladder and snake`
  23. */

  24. bool gameover( int position );
  25. /* Check is game over criteria meets?

  26.    argument: position `Player current position`
  27.    return  : TRUE  ` When game over`
  28.              FALSE ` When not yet game over`
  29. */

  30. void print_ladder( int position );
  31. /* print the statement when player meets a ladder
  32.    argument : position `Player position after meets a ladder`
  33.    return   : NONE
  34. */

  35. void print_snake( int position );
  36. /* print the statement when player meets a snake
  37.    argument : position `Player position after meets a snake`
  38.    return   : NONE
  39. */

  40. void print_gameover( int player );
  41. /* print out game over statement . i.e who wins
  42.    argument : player `Winning player`
  43.    return   : NONE
  44. */

  45. bool all_gameover( bool gameover_flag[], int no_player );

  46. /************** END FUNCTION PHOTOTYPE *****************/

  47. int main( int argc, char *argv[])
  48. {
  49.     // randomize rand() seed
  50.     srand( time(0));

  51.     int no_player, *player_position, current_player;
  52.     bool *player_gameover_flag;

  53.     cout << "Enter Number of Players : ";
  54.     cin >> no_player;
  55.     cin.get(); // get rid of enter key "line break"

  56.     player_position = new int[ no_player ];
  57.     player_gameover_flag = new bool [ no_player];

  58.     initialize_player_info( player_position, player_gameover_flag, no_player );


  59.     while( all_gameover( player_gameover_flag, no_player) == false )
  60.     {
  61.         for( current_player = 0; current_player < no_player; current_player++)
  62.         {
  63.             if( player_gameover_flag[ current_player ] == false )
  64.             {
  65.                 cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
  66.                 player_position[ current_player ] = player_move( player_position[ current_player ]);
  67.             }
  68.             else
  69.                 continue;

  70.             if ( player_gameover_flag[current_player] = gameover( player_position[ current_player ] ))
  71.                     print_gameover( current_player );

  72.         }
  73.     }
  74.                

  75.     return 0;

  76. }

  77. // set starting position of all player
  78. void initialize_player_info( int pos[], bool player_gameover_flag[], int no_player )
  79. {
  80.     while( --no_player >= 0 )
  81.     {
  82.         player_gameover_flag[ no_player ] = false;
  83.         pos[ no_player ] = 1 ;
  84.     }

  85.     return;
  86. }
  87.    
  88. int player_move( int position )
  89. {
  90.     int dice;
  91.     // roll dice and move

  92.     cout << "Rolling dice .. .. "
  93.          << "Press ENTER to continue ...";

  94.     cin.get();

  95.     dice = rand() % 6 + 1;

  96.     cout << "\n . . \n"
  97.          << ". . \n"
  98.          << ". . \n"
  99.          << "\n\nyou get " << dice << " !!" << endl
  100.          << "\nMoving forward !! " << endl;
  101.          
  102.     position += dice;

  103.     if( position > 100 )
  104.     {
  105.         cout << "OPPS!! \n"
  106.              << "You got to the wall , more than 100 !! \n"
  107.              << "Moving " << position - 100 << " steps backward " << endl;

  108.         position = 100 - ( position - 100 );
  109.     }

  110.     cout << "You are now in position " << position << "!!" << endl;

  111.     position = snake_and_ladder( position );

  112.     return position;

  113. }


  114. int snake_and_ladder( int position )
  115. {
  116.     // put your snake and ladder information here
  117.     // e.g a ladder at position 4, goes to position 16
  118.     // case 4:
  119.     //    return 16;

  120.     switch( position )
  121.     {
  122.         case 4:
  123.             print_ladder(16);
  124.             return 16;

  125.         default:
  126.             return position;
  127.     }
  128. }

  129. bool gameover( int position )
  130. {
  131.     if (position == 100)
  132.         return true;
  133.     else
  134.         return false;
  135. }

  136. void print_gameover( int player )
  137. {
  138.     cout << "Player " << player + 1 << " WINS!! " << endl
  139.          << "Congratulation " << endl;
  140. }

  141. void print_ladder( int position )
  142. {

  143.      cout << "Congratulation !! \n"
  144.           << "You climb up a ladder \n"
  145.           << "You are now at position " << position << " !!" << endl;
  146. }

  147. void print_snake( int position )
  148. {

  149.      cout << "OPPS!! \n"
  150.           << "You meets a snake \n"
  151.           << "You are now at position " << position << " !!" << endl;
  152. }

  153. bool all_gameover( bool gameover_flag[], int no_player )
  154. {
  155.     int count, i;

  156.     for( count = 0, i = 0;  i < no_player ; i++ )
  157.         if( gameover_flag[i] == true )
  158.             count++;

  159.     if( count < no_player  )
  160.         return false;
  161.     else
  162.         return true;


  163. }
复制代码

[ 本帖最后由 onlylonly 于 1-10-2008 01:41 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 01:23 PM | 显示全部楼层

回复 29# Wongkokchoy 的帖子

你将 code 贴上来。

----------

改了少许code, 之前忘记 initialize 1 个 variable

[ 本帖最后由 onlylonly 于 1-10-2008 01:39 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 1-10-2008 04:10 PM | 显示全部楼层
我直接paste你的code下去罢了,想试看看,可是不能run。




"Ambiguous operators need parentheses"我能解决,只是namespace std和argc.argv不能解决。
还有如果不用bool的话,还有什么方法吗? 因为老师没交,不懂能不能用

[ 本帖最后由 Wongkokchoy 于 1-10-2008 04:13 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 07:05 PM | 显示全部楼层

回复 32# Wongkokchoy 的帖子

等等,

做莫
#include <iostream>
#include <cstdlib>
#include <ctime>

变成

#include <iostream.h>
#include <stdlib.h>
#include <time.h>

的?


---------------------------------------------------------------

感觉上是 borland c++ 5.02 ?

这个太久了。 老师规定要用这个?

如果或是的话, 那么就将
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>

  4. using namespace std;
复制代码
改成
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <time.h>
复制代码
------------

[ 本帖最后由 onlylonly 于 1-10-2008 07:20 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 07:08 PM | 显示全部楼层

回复 32# Wongkokchoy 的帖子

如果不是的话就换一个compiler吧, 你用的是在太旧了。

用 mingw 的吧

dev-c++ : http://prdownloads.sourceforge.n ... p-4.9.9.2_setup.exe

要 VC 也行, 去M$ 网下载吧, virtual c++ 2008 express edition。 应该是免费的。( 用opensource的吧, gcc( unix based ), mingw)
回复

使用道具 举报

 楼主| 发表于 1-10-2008 07:30 PM | 显示全部楼层
你说对了,老师规定要用borland C++ 5.02,一个老旧的program.....:@
我看了整个下午,还是不懂argv,argc和这个地方:


    while( all_gameover( player_gameover_flag, no_player) == false )
    {
        for( current_player = 0; current_player < no_player; current_player++)
        {
            if( player_gameover_flag[ current_player ] == false )
            {
                cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
                player_position[ current_player ] = player_move( player_position[ current_player ]);
            }
            else
                continue;
            if ( player_gameover_flag[current_player] == gameover( player_position[ current_player ] ))
                    print_gameover( current_player );
        }
    }
            

所以就是说我不能用你的code啰?
其实小事像dice,snake 和 ladder 我都可以做到了,只是我不能够让用户们交替丢dice

解决了这个问题我就完成了。

[ 本帖最后由 Wongkokchoy 于 1-10-2008 07:32 PM 编辑 ]
回复

使用道具 举报

发表于 1-10-2008 07:38 PM | 显示全部楼层

回复 35# Wongkokchoy 的帖子

你可以用, 只是不用 namespace 罢了
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <time.h>



  4. /************* Function Phototype BEGIN *******************/

  5. void initialize_player_info( int pos[], bool player_gameover_flag[] , int no_player );
  6. /* set player starting position
  7.    argument: pos[] `player_position array`
  8.              no_player ` variable that hole " number of player " `
  9. */

  10. int player_move( int position );
  11. /* Player roll dice and move
  12.    If position > 100, reverse
  13.    climb ladder or slide down the snake if any

  14.    argument: position `Player current position`
  15.    return  : position `Player position`
  16. */


  17. int snake_and_ladder( int position );
  18. /* Change player position when player meets ladder or snake
  19.    print out statement to inform player

  20.    argument: position `Player current position`
  21.    return  : position `Player position after ladder and snake`
  22. */

  23. bool gameover( int position );
  24. /* Check is game over criteria meets?

  25.    argument: position `Player current position`
  26.    return  : TRUE  ` When game over`
  27.              FALSE ` When not yet game over`
  28. */

  29. void print_ladder( int position );
  30. /* print the statement when player meets a ladder
  31.    argument : position `Player position after meets a ladder`
  32.    return   : NONE
  33. */

  34. void print_snake( int position );
  35. /* print the statement when player meets a snake
  36.    argument : position `Player position after meets a snake`
  37.    return   : NONE
  38. */

  39. void print_gameover( int player );
  40. /* print out game over statement . i.e who wins
  41.    argument : player `Winning player`
  42.    return   : NONE
  43. */

  44. bool all_gameover( bool gameover_flag[], int no_player );

  45. /************** END FUNCTION PHOTOTYPE *****************/

  46. int main( int argc, char *argv[])
  47. {
  48.     // randomize rand() seed
  49.     srand( time(0));

  50.     int no_player, *player_position, current_player;
  51.     bool *player_gameover_flag;

  52.     cout << "Enter Number of Players : ";
  53.     cin >> no_player;
  54.     cin.get(); // get rid of enter key "line break"

  55.     player_position = new int[ no_player ];
  56.     player_gameover_flag = new bool [ no_player];

  57.     initialize_player_info( player_position, player_gameover_flag, no_player );


  58.     while( all_gameover( player_gameover_flag, no_player) == false )
  59.     {
  60.         for( current_player = 0; current_player < no_player; current_player++)
  61.         {
  62.             if( player_gameover_flag[ current_player ] == false )
  63.             {
  64.                 cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
  65.                 player_position[ current_player ] = player_move( player_position[ current_player ]);
  66.             }
  67.             else
  68.                 continue;

  69.             if ( player_gameover_flag[current_player] = gameover( player_position[ current_player ] ))
  70.                     print_gameover( current_player );

  71.         }
  72.     }
  73.                

  74.     return 0;

  75. }

  76. // set starting position of all player
  77. void initialize_player_info( int pos[], bool player_gameover_flag[], int no_player )
  78. {
  79.     while( --no_player >= 0 )
  80.     {
  81.         player_gameover_flag[ no_player ] = false;
  82.         pos[ no_player ] = 1 ;
  83.     }

  84.     return;
  85. }
  86.    
  87. int player_move( int position )
  88. {
  89.     int dice;
  90.     // roll dice and move

  91.     cout << "Rolling dice .. .. "
  92.          << "Press ENTER to continue ...";

  93.     cin.get();

  94.     dice = rand() % 6 + 1;

  95.     cout << "\n . . \n"
  96.          << ". . \n"
  97.          << ". . \n"
  98.          << "\n\nyou get " << dice << " !!" << endl
  99.          << "\nMoving forward !! " << endl;
  100.          
  101.     position += dice;

  102.     if( position > 100 )
  103.     {
  104.         cout << "OPPS!! \n"
  105.              << "You got to the wall , more than 100 !! \n"
  106.              << "Moving " << position - 100 << " steps backward " << endl;

  107.         position = 100 - ( position - 100 );
  108.     }

  109.     cout << "You are now in position " << position << "!!" << endl;

  110.     position = snake_and_ladder( position );

  111.     return position;

  112. }


  113. int snake_and_ladder( int position )
  114. {
  115.     // put your snake and ladder information here
  116.     // e.g a ladder at position 4, goes to position 16
  117.     // case 4:
  118.     //    return 16;

  119.     switch( position )
  120.     {
  121.         case 4:
  122.             print_ladder(16);
  123.             return 16;

  124.         default:
  125.             return position;
  126.     }
  127. }

  128. bool gameover( int position )
  129. {
  130.     if (position == 100)
  131.         return true;
  132.     else
  133.         return false;
  134. }

  135. void print_gameover( int player )
  136. {
  137.     cout << "Player " << player + 1 << " WINS!! " << endl
  138.          << "Congratulation " << endl;
  139. }

  140. void print_ladder( int position )
  141. {

  142.      cout << "Congratulation !! \n"
  143.           << "You climb up a ladder \n"
  144.           << "You are now at position " << position << " !!" << endl;
  145. }

  146. void print_snake( int position )
  147. {

  148.      cout << "OPPS!! \n"
  149.           << "You meets a snake \n"
  150.           << "You are now at position " << position << " !!" << endl;
  151. }

  152. bool all_gameover( bool gameover_flag[], int no_player )
  153. {
  154.     int count, i;

  155.     for( count = 0, i = 0;  i < no_player ; i++ )
  156.         if( gameover_flag[i] == true )
  157.             count++;

  158.     if( count < no_player  )
  159.         return false;
  160.     else
  161.         return true;


  162. }
复制代码

[ 本帖最后由 onlylonly 于 1-10-2008 07:57 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 1-10-2008 07:43 PM | 显示全部楼层
原帖由 Wongkokchoy 于 1-10-2008 07:30 PM 发表
你说对了,老师规定要用borland C++ 5.02,一个老旧的program.....:@
我看了整个下午,还是不懂argv,argc和这个地方:

    while( all_gameover( player_gameover_flag, no_player) == false )
    {
        for( current_player = 0; current_player < no_player; current_player++)
        {
            if( player_gameover_flag[ current_player ] == false )
            {
                cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
                player_position[ current_player ] = player_move( player_position[ current_player ]);
            }
            else
                continue;

            if ( player_gameover_flag[current_player] = gameover( player_position[ current_player ] ))
                    print_gameover( current_player );

        }
    }
           

     


    while( all_gameover( player_gameover_flag, no_player) == false )
这行用来检查是否每一个玩家都已经到达终点了

        for( current_player = 0; current_player < no_player; current_player++)
这行是用来 switch player 的

            if( player_gameover_flag[ current_player ] == false )
            {
                cout << "\n\nPlayer " << current_player + 1 << " turn : " << endl;
                player_position[ current_player ] = player_move( player_position[ current_player ]);
            }
            else
                continue;

如果玩家已经gameover的话, 那么就skip, 不然的话就继续

            if ( player_gameover_flag[current_player] = gameover( player_position[ current_player ] ))
                    print_gameover( current_player );

检查玩家是否到达终点了
回复

使用道具 举报

 楼主| 发表于 1-10-2008 07:50 PM | 显示全部楼层
OnlylOnly, 我run到了,可是很奇怪
你试run看看。
回复

使用道具 举报

发表于 1-10-2008 07:52 PM | 显示全部楼层

回复 38# Wongkokchoy 的帖子

什么地方有问题?

我现在在家没有compiler。 下载着。
回复

使用道具 举报

 楼主| 发表于 1-10-2008 07:56 PM | 显示全部楼层
玩家每走一步,就congratulation了。。。。

然后即使玩家已经到100了,玩家还是会继续走。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-12-2025 11:36 PM , Processed in 0.151316 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表