在格子上随机填入不重复的数字

时间:2022-11-05 15:08:13

屏幕上有 16x8 的方格,按随机顺序在将 1~128 的数字写到每个格子上。涉及到标记,可以应用在找配对等小游戏上。

// 在格子上随机写数字.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "easyx.h"
#include "stdio.h"
#include "conio.h"
#include "time.h"


void main( )
{
int i,j;
bool cell[16][8];
//int whichone[16][8];
int x,y;
char num[4];
MOUSEMSG m;
//初始化图形窗口
initgraph(480,240);

//设置画笔颜色
setlinecolor(WHITE);
//绘制背景
for(i=0;i<=480;i=i+30)
line(i,0,i,240);
for(j=0;j<=240;j=j+30)
line(0,j,480,j);
for(i=0;i<16;i++)//预设所有格子上面的空标志
for(j=0;j<8;j++)
cell[i][j]=false;
//判断空格子并填写随机数字
for(i=0;i<128;i++){
//找到没有填数字的随机格子
do
{
x=rand()%16;
y=rand()%8;
}while(cell[x][y]==true);
//whichone[x][y]=i;
cell[x][y]=true;//将找到的空格子标志置为1
sprintf(num,"%d",i);
outtextxy(x*30+10,y*30+10,num);

}
/* while(true)
{
m=GetMouseMsg();
if(m.uMsg==WM_LBUTTONDOWN)
{
sprintf(num,"%d",whichone[m.x/30][m.y/30]);
outtextxy(0,0,num);
}
}
*/
getch();
//关闭图形窗口
closegraph();
}