听你说的意思,大概是写个模拟程序吧。
定义一个数组int pan[10][10]表示棋盘。
随机产生100个无重复的整数(<100),作为棋子。如果有重复的接着再产生。
接着随机产生两个数(<10),表示这枚棋子落下的位置。每落入一个格子,就在棋盘对应的位置中累加,直到有5个为止。
把超过5个位置的棋子存入数组,然后对这个数组排序.
我的思路只能走到这儿。
#include
#include
using namespace std;
int main()
{
int b = 1;
int chessboard[10][10];
long unsigned int n;
for (int i = 0; i <= 9; ++i)
{
for (int j = 0; j <= 9; ++j)
{
chessboard[i][j] = 0;
}
}
cout << "请输入投入棋子数量" << '\n';
cin >> n;
for (int i = 1; i <= n; ++i)
{
++b;
srand(b);
++chessboard[(rand() % 10)][(rand() % 10)];
srand(b);
if (chessboard[(rand() % 10)][(rand() % 10)] > 5)
{
srand(b);
cout << "棋盘的第" << (rand() % 10) << "行,第" << (rand() % 10);
srand(b);
cout<<"列有多余棋子,该位置有" << chessboard[(rand() % 10)][(rand() % 10)] << "个棋子。" << '\n';
}
}
return 0;
你可以用二维矩阵实现
变换可以用指针变换
你说的我看不懂啊,能不能说明白些。
首先围棋不是10*10的棋盘,其次一把扔进去怎么能分出先后,再次为什么要一次一次的出去棋子,最后这道题要做出什么样的结果,说的很不明白啊
完全不明白你的意思。随手扔一把,怎么判断谁先谁后?多余的棋子,怎么判断谁先出谁后出?