3拼圖編程
1. java製作拼圖游戲的流程圖,是個簡單的3*3的拼圖游戲
用swing先構建一個悉液框架 調用APPlet然後建幾個變數就行了 3*3就是需要8個 綁定個小資料庫
判定坦尺下當這8個先用按鈕代替 ,最後再把按鈕整成圖片就行了 ,還有睜信物格局設置大小,都是這個位置是為真就完了,主要還是看你怎麼布局了,先看看SWING的那個布局,就這個思想
2. 3*3的VB數字拼圖怎麼做
就事數字1~8 然後有個開始。有個退出就行了。。
3. 3×3塊拼圖游戲製作步驟.說明.全過程.....
網上有一篇PPT,叫「有趣的數列」就是專門研究這個智慧盤的
建議你去看看!
4. php如何算出任意一個3*3拼圖的最優步驟
拼圖最優解?
這個演算法不清楚,但是,如果有現成的公式就好說。
最優解,可以在網路上搜下,應該有解法,然後對每個塊打上標簽,再寫個函數,將位置轉換成數組後進行循環移動,當然這個邏輯會有一定難度,需要點時間來寫,最後根據最優解步驟來執行即可。
5. 三張照片合成一張照片怎麼弄
打開ps,新建一個寬度和照片差不多大家的畫布,打開三張圖片,將它們放入畫布中,調整圖片將其對齊,即可把三張照片合成為一張。
照片合成軟體是通過各項圖像處理技術,對多張照片進行合成的軟體,屬於圖像處理軟體的范疇。
照片合成軟體實現照片合成的包括兩種圖像處理技術,一種是摳圖,一種是圖層融合。
摳圖,就是把圖片的某一部分從原始圖片中分離出來,使其成為單獨的圖層;圖層融合,即是將多個圖層融合成一個圖層,圖層融合亦包含了多種方式,如正片疊底、濾色、柔光等,都屬於圖層融合模式。
而摳圖和圖層融合,即是完整的照片合成過程。照片合成軟體,正是針對這兩項技術,針對不同照片提供多種摳圖方式、專業的圖層融合模式的軟體。
6. if(row<0‖row>=3‖col<0‖col>=3)是個拼圖的編程,請問有沒有語法錯誤
沒有,4個表達式,滿足任何一個條件就為真。
7. 我在寫一個拼圖游戲,3X3,定位第9格為空格,其餘8塊用隨機函數打亂,沒有error但是有幾率出現BUG,拼不對
這是一個數學上的問題。請多用幾個隨機數,並可編一個檢測程序。
我覺得程序沒有問題。
8. 3*3 型的拼圖界面。數字1~8 和一個空格。要實現能拼圖功能~~大概的演算法是怎樣的!!
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
void swap(int *a,int *b); //子函數聲明
int i,j,k,n,puzzle[81]={0},parity[81]={0}; //拼圖數組和奇偶性數組
char ch; //用來記錄拼圖數組可以轉換成順序矩陣,還是逆序矩陣
printf("游戲說明\n");
printf("↑ :數字向上 ↓ :數字向下\n");
printf("← :數字向左 → :數字向右\n");
printf("Esc:退出程序 Space:重置矩陣\n");
printf("\n");
loop1:
printf("難度設置\nn:");
scanf("%d",&n);
loop2:
system("cls"); //清屏
srand((unsigned)time(NULL)); //動態獲取數據
for(i=0;i<=n*n-1;i++)
{
loop3:
k=rand()%(n*n); //記錄新的數據
for(j=0;j<i;j++) //和舊的數據進行比較,當新的數據
if(puzzle[j]==k) goto loop3; //出現過時,重新獲取
if(j==i)
{
puzzle[j]=k; //當新的數據和舊的數據都不同時,將
} //數據放入拼圖數組中
}
for(i=0;i<=n*n-1;i++)
{
parity[i]=puzzle[i]; //將拼圖數組賦予奇偶性數組
}
for(i=0;i<=n*n-1;i++)
{
if(parity[i]==0) break; //找出奇偶性數組中0(空格)的位置
}
k=i;
for(j=1;j<=i/n;j++) //將0(空格)換到第1行
{
swap(&parity[k],&parity[k-n]);
k=k-n; //更新奇偶性數組中0(空格)的位置
}
for(j=1;j<=i%n;j++) //將0(空格)換到第1列
{
swap(&parity[k],&parity[k-1]);
k=k-1; //更新奇偶性數組中0(空格)的位置
}
k=0;
for(i=0;i<=n*n-1;i++)
for(j=i;j<=n*n-1;j++)
{
if(parity[i]>parity[j]) k++; //求奇偶性數組的「逆序數和」
}
if(k%2==0) printf("%d\n順序矩陣",n),ch='0'; //「逆序數和」為偶數時,是順序矩陣
else printf("%d\n逆序矩陣",n),ch='1'; //「逆序數和」為奇數時,是逆序矩陣
printf("\n");
for(i=0;i<=n*n-1;i++) //列印拼圖數組
{
if(puzzle[i]==0) printf("%*c",n,' '); //是0(空格)的位置,列印空格
else printf("%-*d",n,puzzle[i]); //是數字的位置,列印對應寬度的數字
if((i+1)%n==0&&i!=n*n-1) printf("\n"); //每列印n個數字,換一行列印
}
while(1)
{
for(i=0;i<=n*n-1;i++)
{
if(puzzle[i]==0) break; //記錄拼圖數組中0(空格)的位置
}
switch(getch())
{
case 72:if( i<n*(n-1)) swap(&puzzle[i],&puzzle[i+n]);break; //數字向上
case 80:if( i>1*(n-1)) swap(&puzzle[i],&puzzle[i-n]);break; //數字向下
case 75:if((i+1)%n!=0) swap(&puzzle[i],&puzzle[i+1]);break; //數字向左
case 77:if((i+0)%n!=0) swap(&puzzle[i],&puzzle[i-1]);break; //數字向右
case 27:exit(0); //退出程序
case 32:goto loop2; //重置矩陣
}
system("cls"); //清屏
switch(ch)
{
case '0':printf("%d\n順序矩陣\n",n);break; //完成拼圖的最終目標
case '1':printf("%d\n逆序矩陣\n",n);break; //完成拼圖的最終目標
}
for(i=0;i<=n*n-1;i++)
{
if(puzzle[i]==0) printf("%*c",n,' '); //是0(空格)的位置,列印空格
else printf("%-*d",n,puzzle[i]); //是數字的位置,列印對應寬度的數字
if((i+1)%n==0&&i!=n*n-1) printf("\n"); //每列印n個數字,換一行列印
}
for(i=0;i<=n*n-3;i++)
{
if(puzzle[i]!=i) break; //判斷拼圖數組是否為順序矩陣或逆序矩陣
}
if(i==n*n-2)
{ //是順序矩陣或是逆序矩陣時,完成拼圖
printf("\n恭喜你,拼圖完成了!\n"); //列印完成標志
printf("Continue(y/n)?");
if(getch()=='y')
{
system("cls"); //清屏
goto loop1; //重新開始
}
else
{
exit(0); //退出程序
}
}
}
getch(); //顯示運行結果
return(0); //正常運行返回0
}
void swap(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}