#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
const int a = 36
/*319 239*/
void inig(void)
void drw(int X, int Y)
void fill(int X, int Y,int t[7])
int main(void)
{
int count = 0, i, j, k, v
FILE *data
int t[7]
inig()
data = fopen("data.txt", "w")
for(t[0] = 1t[0]<5t[0]++)
{
for(t[1] = 1t[1]<5t[1]++)
{
if(t[1]==t[0])
continue
for(t[2] = 1t[2]<5t[2]++)
{
if(t[2]==t[0])
continue
for(t[3] = 1t[3]<5t[3]++)
{
if(t[3]==t[1] || t[3]==t[2])
continue
for(t[4] = 1t[4]<5t[4]++)
{
if(t[4]==t[0] || t[4]== t[2])
continue
for(t[5] = 1t[5]<5t[5]++)
{
if(t[5]==t[1] || t[5]== t[3])
continue
for(t[6] = 1t[6]<5t[6]++)
{
if(t[6]==t[2] || t[6]== t[3])
continue
for(i=0i<7i++)
{
fprintf(data," %d", t[i])
}
count++
fprintf(data,"\n")
}
}
}
}
}
}
}
fclose(data)
printf(" count = %d\n", count)
fopen("data.txt","r")
for(v=0v<countv = v+7)
{
cleardevice()
printf("%d", v )
for(i=50i<580i += 630/6)
{
for(j=50j<500j += 540/6)
{
for(k=0k<7k++)
fscanf(data,"%d", &(t[k]))
drw(i,j)
fill(i,j,t)
}
}
getch()
}
getch()
closegraph()
return 0
}
void drw(int X, int Y)
{
rectangle(X-a, Y-a, X+a, Y+a)
line(X-a, Y+a, X+a, Y-a)
line(X-a, Y-a, X+ a/2, Y+ a/2)
line(X, Y+a, X+a, Y)
line(X- a/2, Y+ a/2, X, Y+a)
line(X+ a/2, Y- a/2, X+a, Y)
}
void fill(int X, int Y,int t[7])
{
int i
for(i=-a+2i<0i++)
{
setcolor(t[0])
line(X+i-1, Y+i, X+i-1, Y)
line(X+i-1, Y-i, X+i-1, Y)
}
for(i=0i<a-1i++)
{
setcolor(t[1])
line(X+i, Y-i-1, X+i, Y-a+1)
line(X-i, Y-i-1, X-i, Y-a+1)
setcolor(t[6])
line(X+1+i, Y-1+a, X+1+i, Y-i+a)
}
for(i=a/2+1i<a-1i++)
{
setcolor(t[5])
line(X+i+1, Y-i, X+i+1, Y+i-a)
setcolor(t[4])
line(X-i, Y+i+1, X+i-a, Y+i+1)
setcolor(t[2])
line(X+i-a+1, Y-i+a, X+i-a+1, Y+i)
line(X-i+a-2, Y-i+a, X-i+a-2, Y+i)
setcolor(t[3])
line(X+i-a/2+1, Y-i+a/2, X+i-a/2+1, Y+i-a/2)
line(X-i+a*3/2-2, Y-i+a/2, X-i+a*3/2-2, Y+i-a/2)
}
}
void inig(void)
{
int gdriver = DETECT, gmode, errorcode
/* initialize graphics, local variables */
initgraph(&gdriver, &gmode, "")
errorcode = graphresult()
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode))
printf("Press any key to halt:")
getch()
exit(1)
}
setcolor(getmaxcolor())
}
这不就是著名的四色问题吗?答案如下:
{问题描述:任何一张地图只要用四种颜色进行填涂,就可以保证相邻省份不同色}
program tt
const num=20
var a:array [1..num,1..num] of 0..1
s:array [1..num] of 0..4{用1-4分别代表RBWY四种颜色0代表末填进任何颜色}
k1,k2,n:integer
function pd(i,j:integer):boolean{判断可行性:第I个省填上第J种颜色}
var k:integer
begin
for k:=1 to i-1 do {一直从第一个省开始进行比较一直到I省减一的那个省,目的是对已经着色的省份来进行比较,因为>I的省还没 有着色,比较没有意义,着色的顺序是先第一、二、三……I个省}
if (a[i,k]=1) and (j=s[k]) then {省I和省J相邻且将填进的颜色和已有的颜色相同}
begin
pd:=false{即不能进行着色}
exit {退出当前函数}
end
pd:=true {可以进行着色}
end
procedure print{打印结果}
var k:integer
begin
for k:=1 to n do{将数字转为RBWY串}
case s[k] of
1:write('R':4)
2:write('B':4)
3:write('W':4)
4:write('Y':4)
end
writeln
end
procedure try(i:integer)
var j:integer
begin
for j:=1 to 4 do
if pd(i,j) then begin
s[i]:=j
if i=n then print
else try(i+1) {对下一个省进行着色}
s[i]:=0 {不能进行着色,将当前状态设置0,即不进行着色}
end
end
BEGIN
write('please input city number: ')readln(n)
writeln('please input the relation of the cities:')
for k1:=1 to n do
begin
for k2:=1 to n do read(a[k1,k2]) {A[K1,K2]=1表示省K1、K2相邻,为0就不相邻}
readln
end
for k1:=1 to n do s[k1]:=0 {把所有的颜色设置为0,即还没有进行着色}
try(1)
END.
微信乐涂填色小程序游戏初始化的方法:1、点击微信乐涂填色小程序。
2、点击界面右上角三个点按钮。
3、点击重新进入小程序的选项即可重置游戏。
4、乐涂是一款有意思的休闲解压类游戏,这款游戏中采用多种不同的模式以及玩法,另外含有大量的古典人物、风景等自由进行游戏。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)