你好,我写了一个C++的,在VS上完美运行,希望能够帮到你。
#include<stdio.h>#include<stdlib.h>
#include<conio.h>
#include<time.h>
/*定义全局变量*/
int puzz[9] // 九格游戏数组
int i=0,j,k // i 初始化界面的提示语,j 获取空格位置,k 移动次数
int space // 空缺位置
/*自定义函数原型*/
void interface() // 界面,包括打印充填矩形和数字
void change(int a,int b) // 交换
void press() // 按键
void start() // 初始化和判断是否胜利
void start() // 初始化和判断是否胜利
{
int a,b,c
int star[22]={300,120,320,160,360,160,320,200,340,240,300,200,260,240,280,200,240,160,280,160,300,120}
k=0
for(a=0a<8a++)
puzz[a]=a+1
puzz[8]=0
interface()
for(c=0c<100c++) // 随机打乱顺序
{
a=rand()%9
b=(a+2)%8 // 关于有无解问题,搞不清楚,引用的
change(a,b)
}
while(1)
{
interface()
for(a=0a<8a++)
if(puzz[a]!=a+1)
break
if(a==8)
{
drawpoly(11,star) // 五角星
setcolor(1) // 文本“SUCCESSFUL”颜色
setfillstyle(1,4) // 五角星填充色
floodfill(300,150,15) // 五角星内一点
outtextxy(260,180,"SUCCESSFUL!!")
getch()
start()
}
for(j=0j<=8j++)
if (puzz[j]==0)
break
space=j
press()
}
}
void interface() // 界面,包括打印充填矩形和数字
{
clearviewport() // 清楚屏幕图形
setbkcolor(6) // 设置背景色
setfillstyle(2,2) // 矩形块颜色
if(puzz[0]!=0)
bar(160,60,240,140)
if(puzz[1]!=0)
bar(260,60,340,140)
if(puzz[2]!=0)
bar(360,60,440,140)
if(puzz[3]!=0)
bar(160,160,240,240)
if(puzz[4]!=0)
bar(260,160,340,240)
if(puzz[5]!=0)
bar(360,160,440,240)
if(puzz[6]!=0)
bar(160,260,240,340)
if(puzz[7]!=0)
bar(260,260,340,340)
if(puzz[8]!=0)
bar(360,260,440,340)
gotoxy(25,7)
if(puzz[0]!=0)
printf("%d",puzz[0])
gotoxy(38,7)
if(puzz[1]!=0)
printf("%d",puzz[1])
gotoxy(50,7)
if(puzz[2]!=0)
printf("%d",puzz[2])
gotoxy(25,13)
if(puzz[3]!=0)
printf("%d",puzz[3])
gotoxy(38,13)
if(puzz[4]!=0)
printf("%d",puzz[4])
gotoxy(50,13)
if(puzz[5]!=0)
printf("%d",puzz[5])
gotoxy(25,19)
if(puzz[6]!=0)
printf("%d",puzz[6])
gotoxy(38,19)
if(puzz[7]!=0)
printf("%d",puzz[7])
gotoxy(50,19)
if(puzz[8]!=0)
printf("%d",puzz[8])
if(i==0)
{
printf("\n\n\n\n\n\t\tPress any key to dare ")
getch()
}
gotoxy(60,4) // 打印移动次数
printf("%d th",k)
i+=1
return
}
int main()
{
int gdriver=VGA,gmode=VGAHI
initgraph(&gdriver,&gmode,"c:\\tc30\\BGI")
srand((unsigned)time(NULL)) // 播种子
clearviewport() // 清屏
printf("\n\n\t\t\t/////////////////////////////\n")
printf("\n")
printf("\t\t\t\tPUZZLE GAME\n")
printf("\n")
printf("\t\t\t/////////////////////////////\n")
printf("\n\n\n\n\n\n\tPress any key to start game")
printf("\n\n\tPress Esc to exit\n\n\t")
if(getch()==27)
{
clrscr()
clearviewport()
printf("\n\n\n\t\t\t//////////////////////////////////\n")
printf("\n\t\t\t\tSee you next time\n")
printf("\n\t\t\t//////////////////////////////////\n")
printf("\n\n\n\n\n\t\t\tPress any key to exit ")
getch()
closegraph()
return 0
}
start()
return 0
}
AngleArc 用一个连接弧画一条线Arc 画一个圆弧
BeginPath 启动一个路径分支
CancelDC 取消另一个线程里的长时间绘图 *** 作
Chord 画一个弦
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
CloseFigure 描绘到一个路径时,关闭当前打开的图形
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
CopyMetaFile 制作指定(标准)图元文件的一个副本
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
CreateHatchBrush 创建带有阴影图案的一个刷子
CreateMetaFile 创建一个图元文件设备场景
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
CreatePen 用指定的样式、宽度和颜色创建一个画笔
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
CreateSolidBrush 用纯色创建一个刷子
DeleteEnhMetaFile 删除指定的增强型图元文件
DeleteMetaFile 删除指定的图元文件
DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放
DrawEdge 用指定的样式描绘一个矩形的边框
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
DrawFocusRect 画一个焦点矩形
DrawFrameControl 描绘一个标准控件
DrawState 为一幅图象或绘图 *** 作应用各式各样的效果
Ellipse 描绘一个椭圆,由指定的矩形围绕
EndPath 停止定义一个路径
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
ExtCreatePen 创建一个扩展画笔(装饰或几何)
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
FillRect 用指定的刷子填充一个矩形
FlattenPath 将一个路径中的所有曲线都转换成线段
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
FrameRect 用指定的刷子围绕一个矩形画一个边框
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
GdiFlush 执行任何未决的绘图 *** 作
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
GetBkColor 取得指定设备场景当前的背景颜色
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
GetCurrentObject 获得指定类型的当前选定对象
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
GetObjectAPI 取得对指定对象进行说明的一个结构
GetObjectType 判断由指定句柄引用的GDI对象的类型
GetPath 取得对当前路径进行定义的一系列数据
GetPixel 在指定的设备场景中取得一个像素的RGB值
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
GetROP2 针对指定的设备场景,取得当前的绘图模式
GetStockObject 取得一个固有对象(Stock)
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
LineDDA 枚举指定线段中的所有点
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
PathToRegion 将当前选定的路径转换到一个区域里
Pie 画一个饼图
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
PlayMetaFile 在指定的设备场景中回放一个图元文件
PlayMetaFileRecord 回放来自图元文件的单条记录
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
Polygon 描绘一个多边形
Polyline 用当前画笔描绘一系列线段
PolyPolygon 用当前选定画笔描绘两个或多个多边形
PolyPolyline 用当前选定画笔描绘两个或多个多边形
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
SelectClipPath 将设备场景当前的路径合并到剪切区域里
SelectObject 为当前设备场景选择图形对象
SetArcDirection 设置圆弧的描绘方向
SetBkColor 为指定的设备场景设置背景颜色
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
SetMiterLimit 设置设备场景当前的斜率限制
SetPixel 在指定的设备场景中设置一个像素的RGB值
SetPixelV 在指定的设备场景中设置一个像素的RGB值
SetPolyFillMode 设置多边形的填充模式
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
这只是批量读入图像从matlab论坛找的,把a.m文件直接放在附件1文件夹里直接运行,调试通过
imname = dir('.\*.bmp')%读入文件夹下的全部图像
im_num = length(imname)% 文件夹中图像的个数
im_temp = imread(imname(1).name,'bmp')%读入第一幅图像
[height,width] = size(im_temp)%得到图像的尺寸
DB(:,:,a) = zeros(height,width,im_num,'uint8')
% 读入全部图像
for a = 1:length(imname)
DB(:,:,a) = imread(imname(a).name,'bmp')%读取图像数据
end
批量读入图片
用cat函数连接;
每个纸条的边界
ima = DB(:,:,a)
im_left = ima(:,1)
im_right= ima(:,end)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)