c語言的變色龍小程序,變色龍編程

本文目錄一覽:

變色龍引導怎麼用?

Chameleon Install(變色龍引導)是一個啟動引導程序,Chameleon Install(變色龍引導)組合了多種引導程序為一身體,可引導多系統,它基於boot123。

變色龍引導[Chameleon Install 2.2 svn 2246 for Windows][變色龍安裝程序] 更新日誌:

1.更新所有安裝包的語言、菜單、日誌

2.更新Nvidia和ATI顯卡的列表

3.添加nvda_drv=1 內核啟動到安裝列表

4.修復ATI顯卡問題

5.加入Linux的GPT分區卷標的支持

6.添加對於10.9的引導支持

7.題名新默認主題的圖標集

MAC變色龍的安裝與引導(詳細)

此法基於變色龍引導,如果你打算用Boothink,請繞道而行。2011年,讓我們徹底扔掉Boothink這個過時的引導工具,進入變色龍新紀元。另外此教程基於intel平台,amd平台的可以參考,但需要自己手動替換內核。寫此文的目的為了對早期一些雪豹安裝教程存在的不合理地方進行一下撥亂反正,使其更適合新手操作,對高手們無意冒犯。此法的優點在於沒有改變硬盤原有的MBR內容,也就是說還是用原來win7的MBR,所有mac啟動只是掛在win7啟動菜單下,這樣對於mac和win7來說都是相對獨立的,如果win7重裝後,只需按上述步驟把mac的啟動項重新添加進去win7啟動菜單,即可恢復原來的mac引導。同樣,mac需要重裝的話,直接從hjmac引導進去即可,互不干擾。

以下操作必須基於win7環境下,32/64都可以,而且是已經打開ACHI模式前提下安裝好的Win7系統。

一、分區

分區前提醒各位做好數據備份,因為萬一出現問題,數據有可能毀於一旦。如果你的硬盤裡存在品牌機廠商預置的隱藏系統恢復分區,建議你全部分區幹掉後再對硬盤重新分區,因為那樣的分區表通常是亂七八糟的,這種情況下很難正常安裝MAC。

以下採用常用的MBR分區格式, 在現有硬盤不破壞原有數據的前提下騰出空間來安裝MAC:

首先用Paragon Partition Manager對硬盤最後一個擴展分區做調整(也可以用win7自帶的壓縮卷功能),騰出30G空間來(30G是最起碼的,自己決定)。如下圖,原來的最後一個擴展分區47G,騰出約30G空間。

然後關閉Paragon Partition Manager,打開DiskGenius,右擊硬盤最後的30G空間,選擇建立新分區,大家可以見到只能建立邏輯分區,按下圖選擇後建立一個20G分區做MAC的系統盤(大小可以自定,但不要低於20G),文件系統類型選擇‘其他’,標識為AF。然後右擊新建的20G邏輯分區,選擇‘轉換為主分區’,完成後,繼續右擊剩下的10G空間建立新分區,作為安裝文件分區,此時已經可以建立主分區,文件系統類型還是選擇‘其他’,標識為AF,以上步驟完成後點保存更改。

(這裡的分區方法顯得有點羅嗦,說明一下原因,由於這30G空間是從擴展分區騰出來的,直接利用Paragon Partition Manager只能分成邏輯分區,這樣的情況下安裝mac後,會自動變成活動的主分區,原來的win7主分區就會失去活動屬性,導致無法啟動,需要用win pe來重設win7主分區為活動分區。為了避免這種情況出現,我們才利用DiskGenius來幫忙)

完成後,退出DiskGenius,再打開Paragon Partition Manager,分別把兩個新建的主分區格式化為MAC專用的格式HFS,分別添加卷標為MAC和MAC install,並把最後一個10G的安裝文件分區添加一個盤符,因為接下來的硬盤安裝助手需要盤符才能識別目標分區。(卷標是為了識別分區,免得選擇錯誤,格式化為MAC專用HFS格式的目的是為了避免出現硬盤安裝助手提示非HFS格式而無法寫入)

完成後,在win7磁盤管理下的分區圖:

二、寫入Mac OS X 10.6.3 原版安裝文件

打開MAC 硬盤安裝助手,選擇下載解壓好的Mac OS X 10.6.3 Retail DVD___原版精簡版ISO,如下圖,3個選項都去掉,目標分區選擇剛才分好的10G安裝文件區,寫入過程中有可能出現程序無響應的情況,不用管它,只要硬盤在讀寫就沒有問題。幾分鐘完成後,如果提示Change partition type to AF:Failed也沒有關係,因為我們在分區的時候已經把ID設為了AF。

(備註:如果選用東皇iAntares OSx86 10.6.5 v3.2, 須注意的是MAC 硬盤安裝助手無法直接支持此ISO,必須先用hfsexplorer把ISO轉換為DMG格式後再寫入。)

三、EasyBCD添加HJMAC.iso的啟動項到win7啟動菜單

HJMAC.iso位於HJMac_Tools_CD.iso內,50多M,把這個iso複製到C盤下,可以自建一個HJMAC文件夾,然後按下圖添加一個HJMAC.iso的啟動項到win7啟動菜單。添加這個啟動項的目的是用來安裝MAC。

完成後即可重啟系統。

四、安裝Mac OS X 10.6.3

重啟後在win7啟動菜單中選擇HJMac,即可見到一個變色龍引導界面,選擇10G的分區(可以見到mac os x install dvd的字樣),確定後即可進入安裝,到了選擇安裝分區的界面,在菜單中用磁盤工具把20G MAC分區抹掉為mac日誌式,然後退出磁盤工具,選擇這個區為安裝目標分區,自定義全選,繼續,預計15分鐘即可完成安裝,系統會自動重啟。再次提醒一下,最新版的變色龍可以支持intel i系列cpu,無需再更換內核。

(備註:如果採用的是東皇iAntares OSx86 10.6.5 v3.2,在自定義裡面只選擇主系統程式,其他選項都不要選)

五、進入MAC桌面並安裝MAC變色龍

安裝完成後第一次重啟,還是選擇HJMac啟動項,在變色龍裡面選擇MAC系統分區,即可啟動首次進入mac,設置完畢,進入mac桌面後,雙擊安裝mac版變色龍,文件位於HJMac_Tools_CD.iso內,以下路徑:

HJMac_Tools_CD.iso\系統引導\①、變色龍(推薦)\請根據硬件、配置選擇安裝\通用 變色龍引導.dmg

六、EasyBCD添加MAC變色龍引導到win7啟動菜單

重啟後進入win7,按下圖添加MBR引導的MAC啟動項,並用附件替換掉C:\NST文件夾下的nst_mac.mbr即可。有網友問為什麼要添加mac版變色龍的引導項,很簡單,HJMAC.iso的參數設計非常保守,適合用來安裝MAC,而mac版變色龍才是真正能發揮MAC各項性能的神器,而且便於修改各項參數。重啟後選擇這個‘NST MAC OS X’啟動項,即可進入mac變色龍引導界面,選擇雪豹的系統所在MAC分區即可引導進去MAC.至此,mac安裝即告完成,win7啟動菜單中就有了兩個變色龍啟動項,建議都保留着,平時用MAC變色龍引導,萬一MAC變色龍引導出現問題,就使用HJMAC.iso進行引導。

附件:

1. MAC 硬盤安裝助手0.3

2. 分區工具Paragon Partition Manager 10.0 Server 中文綠色版(通用於Win7 32/64),

3. 分區工具DiskGenius (分32和64位兩個版本,要根據Win7 32/64下載相應的)

4. win7啟動菜單修改工具EasyBCD

5. Chameleon HJMac Boot CD【變色龍 Intel、AMD 一體引導光盤】ISO

6. Mac OS X 10.6.3 Retail DVD___原版精簡版ISO 4.37G (直接支持MBR分區安裝,無需替換文件)

安裝變色龍腳本顯示沒有找到兼容的應用程序

對windows進行設置。

首先我們對windows設置下,因為這些文件都是隱藏文件,我們打開隱藏文件設置。把隱藏受保護的系統系統文件的鉤去掉,並把不顯示隱藏文件改為顯示所有文件。

然後打開並解壓變色龍修正分區錯誤的補丁,把avlgo.sys複製到C盤並替換掉原來的文件。

求C語言小程序源代碼,300行左右

黑白棋遊戲

#include “graphics.h” /*圖形系統頭文件*/

#define LEFT 0x4b00 /*光標左鍵值*/

#define RIGHT 0x4d00 /*光標右鍵值*/

#define DOWN 0x5000 /*光標下鍵值*/

#define UP 0x4800 /*光標上鍵值*/

#define ESC 0x011b /* ESC鍵值*/

#define ENTER 0x1c0d /* 回車鍵值*/

int a[8][8]={0},key,score1,score2;/*具體分數以及按鍵與存放棋子的變量*/

char playone[3],playtwo[3];/*兩個人的得分轉換成字符串輸出*/

void playtoplay(void);/*人人對戰函數*/

void DrawQp(void);/*畫棋盤函數*/

void SetPlayColor(int x);/*設置棋子第一次的顏色*/

void MoveColor(int x,int y);/*恢復原來棋盤狀態*/

int QpChange(int x,int y,int z);/*判斷棋盤的變化*/

void DoScore(void);/*處理分數*/

void PrintScore(int n);/*輸出成績*/

void playWin(void);/*輸出勝利者信息*/

/******主函數*********/

void main(void)

{

int gd=DETECT,gr;

initgraph(gd,gr,”c:\\tc”); /*初始化圖形系統*/

DrawQp();/*畫棋盤*/

playtoplay();/*人人對戰*/

getch();

closegraph();/*關閉圖形系統*/

}

void DrawQp()/*畫棋盤*/

{

int i,j;

score1=score2=0;/*棋手一開始得分都為0*/

setbkcolor(BLUE);

for(i=100;i=420;i+=40)

{

line(100,i,420,i);/*畫水平線*/

line(i,100,i,420); /*畫垂直線*/

}

setcolor(0);/*取消圓周圍的一圈東西*/

setfillstyle(SOLID_FILL,15);/*白色實體填充模式*/

fillellipse(500,200,15,15); /*在顯示得分的位置畫棋*/

setfillstyle(SOLID_FILL,8); /*黑色實體填充模式*/

fillellipse(500,300,15,15);

a[3][3]=a[4][4]=1;/*初始兩個黑棋*/

a[3][4]=a[4][3]=2;/*初始兩個白棋*/

setfillstyle(SOLID_FILL,WHITE);

fillellipse(120+3*40,120+3*40,15,15);

fillellipse(120+4*40,120+4*40,15,15);

setfillstyle(SOLID_FILL,8);

fillellipse(120+3*40,120+4*40,15,15);

fillellipse(120+4*40,120+3*40,15,15);

score1=score2=2; /*有棋後改變分數*/

DoScore();/*輸出開始分數*/

}

void playtoplay()/*人人對戰*/

{

int x,y,t=1,i,j,cc=0;

while(1)/*換棋手走棋*/

{

x=120,y=80;/*每次棋子一開始出來的坐標,x為行坐標,y為列坐標*/

while(1) /*具體一個棋手走棋的過程*/

{

PrintScore(1);/*輸出棋手1的成績*/

PrintScore(2);/*輸出棋手2的成績*/

SetPlayColor(t);/*t變量是用來判斷棋手所執棋子的顏色*/

fillellipse(x,y,15,15);

key=bioskey(0);/*接收按鍵*/

if(key==ESC)/*跳出遊戲*/

break;

else

if(key==ENTER)/*如果按鍵確定就可以跳出循環*/

{

if(y!=80a[(x-120)/40][(y-120)/40]!=1

a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置沒有棋子*/

{

if(t%2==1)/*如果是棋手1移動*/

a[(x-120)/40][(y-120)/40]=1;

else/*否則棋手2移動*/

a[(x-120)/40][(y-120)/40]=2;

if(!QpChange(x,y,t))/*落子後判斷棋盤的變化*/

{

a[(x-120)/40][(y-120)/40]=0;/*恢復空格狀態*/

cc++;/*開始統計嘗試次數*/

if(cc=64-score1-score2) /*如果嘗試超過空格數則停步*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

break;

}

else

continue;/*如果按鍵無效*/

}

DoScore();/*分數的改變*/

break;/*棋盤變化了,則輪對方走棋*/

}

else/*已經有棋子就繼續按鍵*/

continue;

}

else /*四個方向按鍵的判斷*/

if(key==LEFTx120)/*左方向鍵*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x-=40;

fillellipse(x,y,15,15);

}

else

if(key==RIGHTx400y80)/*右方向鍵*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x+=40;

fillellipse(x,y,15,15);

}

else

if(key==UPy120)/*上方向鍵*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y-=40;

fillellipse(x,y,15,15);

}

else

if(key==DOWNy400)/*下方向鍵*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y+=40;

fillellipse(x,y,15,15);

}

}

if(key==ESC)/*結束遊戲*/

break;

if((score1+score2)==64||score1==0||score2==0)/*格子已經佔滿或一方棋子為0判斷勝負*/

{

playWin();/*輸出最後結果*/

break;

}

t=t%2+1; /*一方走後,改變棋子顏色即輪對方走*/

cc=0; /*計數值恢復為0*/

} /*endwhile*/

}

void SetPlayColor(int t)/*設置棋子顏色*/

{

if(t%2==1)

setfillstyle(SOLID_FILL,15);/*白色*/

else

setfillstyle(SOLID_FILL,8);/*灰色*/

}

void MoveColor(int x,int y)/*走了一步後恢復原來格子的狀態*/

{

if(y100)/*如果是從起點出發就恢復藍色*/

setfillstyle(SOLID_FILL,BLUE);

else/*其他情況如果是1就恢復白色棋子,2恢復黑色棋子,或恢復藍色棋盤*/

switch(a[(x-120)/40][(y-120)/40])

{

case 1:

setfillstyle(SOLID_FILL,15);break; /*白色*/

case 2:

setfillstyle(SOLID_FILL,8);break; /*黑色*/

default:

setfillstyle(SOLID_FILL,BLUE); /*藍色*/

}

}

int QpChange(int x,int y,int t)/*判斷棋盤的變化*/

{

int i,j,k,kk,ii,jj,yes;

yes=0;

i=(x-120)/40; /*計算數組元素的行下標*/

j=(y-120)/40; /*計算數組元素的列下標*/

SetPlayColor(t);/*設置棋子變化的顏色*/

/*開始往8個方向判斷變化*/

if(j6)/*往右邊*/

{

for(k=j+1;k8;k++)

if(a[i][k]==a[i][j]||a[i][k]==0)/*遇到自己的棋子或空格結束*/

break;

if(a[i][k]!=0k8)

{

for(kk=j+1;kkkk8;kk++)/*判斷右邊*/

{

a[i][kk]=a[i][j]; /*改變棋子顏色*/

fillellipse(120+i*40,120+kk*40,15,15);

}

if(kk!=j+1) /*條件成立則有棋子改變過顏色*/

yes=1;

}

}

if(j1)/*判斷左邊*/

{

for(k=j-1;k=0;k–)

if(a[i][k]==a[i][j]||!a[i][k])

break;

if(a[i][k]!=0k=0)

{

for(kk=j-1;kkkk=0;kk–)

{

a[i][kk]=a[i][j];

fillellipse(120+i*40,120+kk*40,15,15);

}

if(kk!=j-1)

yes=1;

}

}

if(i6)/*判斷下邊*/

{

for(k=i+1;k8;k++)

if(a[k][j]==a[i][j]||!a[k][j])

break;

if(a[k][j]!=0k8)

{

for(kk=i+1;kkkk8;kk++)

{

a[kk][j]=a[i][j];

fillellipse(120+kk*40,120+j*40,15,15);

}

if(kk!=i+1)

yes=1;

}

}

if(i1)/*判斷上邊*/

{

for(k=i-1;k=0;k–)

if(a[k][j]==a[i][j]||!a[k][j])

break;

if(a[k][j]!=0k=0)

{

for(kk=i-1;kkkk=0;kk–)

{

a[kk][j]=a[i][j];

fillellipse(120+kk*40,120+j*40,15,15);

}

if(kk!=i-1)

yes=1;

}

}

if(i1j6)/*右上*/

{

for(k=i-1,kk=j+1;k=0kk8;k–,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]k=0kk8)

{

for(ii=i-1,jj=j+1;iikk=0;ii–,jj++)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i-1)

yes=1;

}

}

if(i6j1)/*左下*/

{

for(k=i+1,kk=j-1;k8kk=0;k++,kk–)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0k8kk=0)

{

for(ii=i+1,jj=j-1;iikk8;ii++,jj–)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i+1)

yes=1;

}

}

if(i1j1)/*左上*/

{

for(k=i-1,kk=j-1;k=0kk=0;k–,kk–)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0k=0kk=0)

{

for(ii=i-1,jj=j-1;iikk=0;ii–,jj–)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i-1)

yes=1;

}

}

if(i6j6)/* 右下*/

{

for(k=i+1,kk=j+1;kk8kk8;k++,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0kk8k8)

{

for(ii=i+1,jj=j+1;iikk8;ii++,jj++)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i+1)

yes=1;

}

}

return yes;/*返回是否改變過棋子顏色的標記*/

}

void DoScore()/*處理分數*/

{

int i,j;

score1=score2=0;/*重新開始計分數*/

for(i=0;i8;i++)

for(j=0;j8;j++)

if(a[i][j]==1)/*分別統計兩個人的分數*/

score1++;

else

if(a[i][j]==2)

score2++;

}

void PrintScore(int playnum)/*輸出成績*/

{

if(playnum==1)/*清除以前的成績*/

{

setfillstyle(SOLID_FILL,BLUE);

bar(550,100,640,400);

}

setcolor(RED);

settextstyle(0,0,4);/*設置文本輸出樣式*/

if(playnum==1)/*判斷輸出哪個棋手的分,在不同的位置輸出*/

{

sprintf(playone,”%d”,score1);

outtextxy(550,200,playone);

}

else

{

sprintf(playtwo,”%d”,score2);

outtextxy(550,300,playtwo);

}

setcolor(0);

}

void playWin()/*輸出最後的勝利者結果*/

{

settextstyle(0,0,4);

setcolor(12);

if(score2score1)/*開始判斷最後的結果*/

outtextxy(100,50,”black win!”);

else

if(score2score1)

outtextxy(100,50,”white win!”);

else

outtextxy(60,50,”you all win!”);

}

五子棋遊戲

/*五子棋*/

#includestdio.h

#includestdlib.h

#includegraphics.h

#includebios.h

#includeconio.h

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

#define SPACE 0x3920

#define BILI 20

#define JZ 4

#define JS 3

#define N 19

int box[N][N];

int step_x,step_y ;

int key ;

int flag=1 ;

void draw_box();

void draw_cicle(int x,int y,int color);

void change();

void judgewho(int x,int y);

void judgekey();

int judgeresult(int x,int y);

void attentoin();

void attention()

{

char ch ;

window(1,1,80,25);

textbackground(LIGHTBLUE);

textcolor(YELLOW);

clrscr();

gotoxy(15,2);

printf(“遊戲操作規則:”);

gotoxy(15,4);

printf(“Play Rules:”);

gotoxy(15,6);

printf(“1、按左右上下方向鍵移動棋子”);

gotoxy(15,8);

printf(“1. Press Left,Right,Up,Down Key to move Piece”);

gotoxy(15,10);

printf(“2、按空格確定落棋子”);

gotoxy(15,12);

printf(“2. Press Space to place the Piece”);

gotoxy(15,14);

printf(“3、禁止在棋盤外按空格”);

gotoxy(15,16);

printf(“3. DO NOT press Space outside of the chessboard”);

gotoxy(15,18);

printf(“你是否接受上述的遊戲規則(Y/N)”);

gotoxy(15,20);

printf(“Do you accept the above Playing Rules? [Y/N]:”);

while(1)

{

gotoxy(60,20);

ch=getche();

if(ch==’Y’||ch==’y’)

break ;

else if(ch==’N’||ch==’n’)

{

window(1,1,80,25);

textbackground(BLACK);

textcolor(LIGHTGRAY);

clrscr();

exit(0);

}

gotoxy(51,12);

printf(” “);

}

}

void draw_box()

{

int x1,x2,y1,y2 ;

setbkcolor(LIGHTBLUE);

setcolor(YELLOW);

gotoxy(7,2);

printf(“Left, Right, Up, Down KEY to move, Space to put, ESC-quit.”);

for(x1=1,y1=1,y2=18;x1=18;x1++)

line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI);

for(x1=1,y1=1,x2=18;y1=18;y1++)

line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI);

for(x1=1;x1=18;x1++)

for(y1=1;y1=18;y1++)

box[x1][y1]=0 ;

}

void draw_circle(int x,int y,int color)

{

setcolor(color);

setlinestyle(SOLID_LINE,0,1);

x=(x+JZ)*BILI ;

y=(y+JS)*BILI ;

circle(x,y,8);

}

void judgekey()

{

int i ;

int j ;

switch(key)

{

case LEFT :

if(step_x-10)

break ;

else

{

for(i=step_x-1,j=step_y;i=1;i–)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(i1)break ;

step_x=i ;

judgewho(step_x,step_y);

break ;

}

case RIGHT :

if(step_x+118)

break ;

else

{

for(i=step_x+1,j=step_y;i=18;i++)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(i18)break ;

step_x=i ;

judgewho(step_x,step_y);

break ;

}

case DOWN :

if((step_y+1)18)

break ;

else

{

for(i=step_x,j=step_y+1;j=18;j++)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(j18)break ;

step_y=j ;

judgewho(step_x,step_y);

break ;

}

case UP :

if((step_y-1)0)

break ;

else

{

for(i=step_x,j=step_y-1;j=1;j–)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(j1)break ;

step_y=j ;

judgewho(step_x,step_y);

break ;

}

case ESC :

break ;

case SPACE :

if(step_x=1step_x=18step_y=1step_y=18)

{

if(box[step_x][step_y]==0)

{

box[step_x][step_y]=flag ;

if(judgeresult(step_x,step_y)==1)

{

sound(1000);

delay(1000);

nosound();

gotoxy(30,4);

if(flag==1)

{

setbkcolor(BLUE);

cleardevice();

setviewport(100,100,540,380,1);

/*定義一個圖形窗口*/

setfillstyle(1,2);

/*綠色以實填充*/

setcolor(YELLOW);

rectangle(0,0,439,279);

floodfill(50,50,14);

setcolor(12);

settextstyle(1,0,5);

/*三重筆劃字體, 水平放?5倍*/

outtextxy(20,20,”The White Win !”);

setcolor(15);

settextstyle(3,0,5);

/*無襯筆劃字體, 水平放大5倍*/

outtextxy(120,120,”The White Win !”);

setcolor(14);

settextstyle(2,0,8);

getch();

closegraph();

exit(0);

}

if(flag==2)

{

setbkcolor(BLUE);

cleardevice();

setviewport(100,100,540,380,1);

/*定義一個圖形窗口*/

setfillstyle(1,2);

/*綠色以實填充*/

setcolor(YELLOW);

rectangle(0,0,439,279);

floodfill(50,50,14);

setcolor(12);

settextstyle(1,0,8);

/*三重筆劃字體, 水平放大8倍*/

outtextxy(20,20,”The Red Win !”);

setcolor(15);

settextstyle(3,0,5);

/*無襯筆劃字體, 水平放大5倍*/

outtextxy(120,120,”The Red Win !”);

setcolor(14);

settextstyle(2,0,8);

getch();

closegraph();

exit(0);

}

}

change();

break ;

}

}

else

break ;

}

}

void change()

{

if(flag==1)

flag=2 ;

else

flag=1 ;

}

void judgewho(int x,int y)

{

if(flag==1)

draw_circle(x,y,15);

if(flag==2)

draw_circle(x,y,4);

}

int judgeresult(int x,int y)

{

int j,k,n1,n2 ;

while(1)

{

n1=0 ;

n2=0 ;

/*水平向左數*/

for(j=x,k=y;j=1;j–)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*水平向右數*/

for(j=x,k=y;j=18;j++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1=5)

{

return(1);

break ;

}

/*垂直向上數*/

n1=0 ;

n2=0 ;

for(j=x,k=y;k=1;k–)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*垂直向下數*/

for(j=x,k=y;k=18;k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1=5)

{

return(1);

break ;

}

/*向左上方數*/

n1=0 ;

n2=0 ;

for(j=x,k=y;j=1,k=1;j–,k–)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*向右下方數*/

for(j=x,k=y;j=18,k=18;j++,k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1=5)

{

return(1);

break ;

}

/*向右上方數*/

n1=0 ;

n2=0 ;

for(j=x,k=y;j=18,k=1;j++,k–)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*向左下方數*/

for(j=x,k=y;j=1,k=18;j–,k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1=5)

{

return(1);

break ;

}

return(0);

break ;

}

}

void main()

{

int gdriver=VGA,gmode=VGAHI;

clrscr();

attention();

initgraph(gdriver,gmode,”c:\\tc”);

/* setwritemode(XOR_PUT);*/

flag=1 ;

draw_box();

do

{

step_x=0 ;

step_y=0 ;

/*draw_circle(step_x,step_y,8); */

judgewho(step_x-1,step_y-1);

do

{

while(bioskey(1)==0);

key=bioskey(0);

judgekey();

}

while(key!=SPACEkey!=ESC);

}

while(key!=ESC);

closegraph();

}

變色龍引導死機

死機是令操作者頗為煩惱的事情。死機時的表現多為“藍屏”,無法啟動系統,

畫面“定格”無反應,鼠標、鍵盤無法輸入,軟件運行非正常中斷等。儘管造成

死機的原因很多,但是萬變不離其宗,其原因永遠也脫離不了硬件與軟件兩方面

由硬件原因引起的死機

【散熱不良】

 顯示器、電源和CPU在工作中發熱量非常大,因此保持良好的通風狀況非常重要

,如果顯示器過熱將會導致色彩、圖象失真甚至縮短顯示器壽命。工作時間太長

也會導致電源或顯示器散熱不暢而造成電腦死機。CPU的散熱是關係到電腦運行的

穩定性的重要問題,也是散熱故障發生的“重災區”。

【移動不當】

在電腦移動過程中受到很大振動常常會使機器內部器件鬆動,從而導致接觸

不良,引起電腦死機,所以移動電腦時應當避免劇烈振動。

【灰塵殺手】

機器內灰塵過多也會引起死機故障。如軟驅磁頭或光驅激光頭沾染過多灰塵後

,會導致讀寫錯誤,嚴重的會引起電腦死機。

【設備不匹配】

如主板主頻和CPU主頻不匹配,老主板超頻時將外頻定得太高,可能就不能保

證運行的穩定性,因而導致頻繁死機。

【軟硬件不兼容】

三維軟件和一些特殊軟件,可能在有的微機上就不能正常啟動甚至安裝,其

中可能就有軟硬件兼容方面的問題。

【內存條故障】

主要是內存條鬆動、虛焊或內存芯片本身質量所致。應根據具體情況排除內

存條接觸故障,如果是內存條質量存在問題,則需更換內存才能解決問題。

【硬盤故障】

主要是硬盤老化或由於使用不當造成壞道、壞扇區。這樣機器在運行時就很容

易發生死機。可以用專用工具軟件來進行排障處理,如損壞嚴重則只能更換硬盤

了。另外對於在不支持UDMA 66/100的主板,應注意CMOS中硬盤運行方式的設定。

【CPU超頻】

超頻提高了CPU的工作頻率,同時,也可能使其性能變得不穩定。究其原因,

CPU在內存中存取數據的速度本來就快於內存與硬盤交換數據的速度,超頻使這種

矛盾更加突出,加劇了在內存或虛擬內存中找不到所需數據的情況,這樣就會出

現“異常錯誤”。解決辦法當然也比較簡單,就是讓CPU回到正常的頻率上。

【硬件資源衝突】

是由於聲卡或顯示卡的設置衝突,引起異常錯誤。此外,其它設備的中斷、

DMA或端口出現衝突的話,可能導致少數驅動程序產生異常,以致死機。解決的辦

法是以“安全模式”啟動,在“控制面板”→“系統”→“設備管理”中進行適

當調整。對於在驅動程序中產生異常錯誤的情況,可以修改註冊表。選擇“運行

”,鍵入“REGEDIT”,進入註冊表編輯器,通過選單下的“查找”功能,找到並

刪除與驅動程序前綴字符串相關的所有“主鍵”和“鍵值”,重新啟動。

【內存容量不夠】

內存容量越大越好,應不小於硬盤容量的0.5~1%,如出現這方面的問題,就

應該換上容量儘可能大的內存條。

【劣質零部件】

少數不法商人在給顧客組裝兼容機時,使用質量低劣的板卡、內存,有的甚至

出售冒牌主板和Remark過的CPU、內存,這樣的機器在運行時很不穩定,發生死機

在所難免。因此,用戶購機時應該警惕,並可以用一些較新的工具軟件測試電腦

,長時間連續考機(如72小時),以及爭取盡量長的保修時間等。

由軟件原因引起的死機

【病毒感染】

病毒可以使計算機工作效率急劇下降,造成頻繁死機。這時,我們需用殺毒軟

件如KV300、金山毒霸、瑞星等來進行全面查毒、殺毒,並做到定時升級殺毒軟件

【CMOS設置不當】

該故障現象很普遍,如硬盤參數設置、模式設置、內存參數設置不當從而導致

計算機無法啟動。如將無ECC功能的內存設置為具有ECC功能,這樣就會因內存錯

誤而造成死機。

【系統文件的誤刪除】

由於Windows 9x啟動需要有Command.com、Io.sys、Msdos.sys等文件,如果

這些文件遭破壞或被誤刪除,即使在CMOS中各種硬件設置正確無誤也無濟於事。

解決方法:使用同版本**作系統的啟動盤啟動計算機,然後鍵入“SYS C:”,重

新傳送系統文件即可。

【初始化文件遭破壞】

由於Windows 9x啟動需要讀取System.ini、Win.ini和註冊表文件,如果存在

Config.sys、Autoexec.bat文件,這兩個文件也會被讀取。只要這些文件中存在

錯誤信息都可能出現死機,特別是System.ini、Win.ini、User.dat、System.dat

這四個文件尤為重要。

【動態鏈接庫文件(DLL)丟失】

在Windows操作系統中還有一類文件也相當重要,這就是擴展名為DLL的動態鏈

接庫文件,這些文件從性質上來講是屬於共享類文件,也就是說,一個DLL文件可

能會有多個軟件在運行時需要調用它。如果我們在刪除一個應用軟件的時候,該

軟件的反安裝程序會記錄它曾經安裝過的文件並準備將其逐一刪去,這時候就容

易出現被刪掉的動態鏈接庫文件同時還會被其它軟件用到的情形,如果丟失的鏈

接庫文件是比較重要的核心鏈接文件的話,那麼系統就會死機,甚至崩潰。我們

可用工具軟件如“超級兔仔”對無用的DLL文件進行刪除,這樣會避免誤刪除。

【硬盤剩餘空間太少或碎片太多】

如果硬盤的剩餘空間太少,由於一些應用程序運行需要大量的內存、這樣就

需要虛擬內存,而虛擬內存則是由硬盤提供的,因此硬盤要有足夠的剩餘空間以

滿足虛擬內存的需求。同時用戶還要養成定期整理硬盤、清除硬盤中垃圾文件的

良好習慣。

【BIOS升級失敗】

應備份BIOS以防不測,但如果你的系統需要對BIOS進行升級的話,那麼在升級

之前最好確定你所使用BIOS版本是否與你的PC相符合。如果BIOS升級不正確或者

在升級的過程中出現意外斷電,那麼你的系統可能無法啟動。所以在升級BIOS前

千萬要搞清楚BIOS的型號。如果你所使用的BIOS升級工具可以對當前BIOS進行備

份,那麼請把以前的BIOS在磁盤中拷貝一份。同時看系統是否支持BIOS恢復並且

還要懂得如何恢復。

【軟件升級不當】

大多數人可能認為軟件升級是不會有問題的,事實上,在升級過程中都會對

其中共享的一些組件也進行升級,但是其它程序可能不支持升級後的組件從而導

致各種問題。

【濫用測試版軟件】

最好少用軟件的測試版,因為測試軟件通常帶有一些BUG或者在某方面不夠穩

定,使用後會出現數據丟失的程序錯誤、死機或者是系統無法啟動。

【非法卸載軟件】

不要把軟件安裝所在的目錄直接刪掉,如果直接刪掉的話,註冊表以及

Windows目錄中會有很多垃圾存在,久而久之,系統也會變不穩定而引起死機。

【使用盜版軟件】

因為這些軟件可能隱藏着病毒,一旦執行,會自動修改你的系統,使系統在

運行中出現死機。

【應用軟件的缺陷】

這種情況是常見的,如在Win 98中運行那些在DOS或Windows 3.1中運行良好

的16位應用軟件。Win 98是32位的,儘管它號稱兼容,但是有許多地方是無法與

16位應用程序協調的。還有一些情況,如在Win 95下正常使用的外設驅動程序,

當操作系統升級後,可能會出現問題,使系統死機或不能正常啟動。遇到這種情

況應該找到外設的新版驅動。

【啟動的程序太多】

這使系統資源消耗殆盡,使個別程序需要的數據在內存或虛擬內存中找不到

,也會出現異常錯誤。

【非法操作】

用非法格式或參數非法打開或釋放有關程序,也會導致電腦死機。請注意要

牢記正確格式和相關參數,不隨意打開和釋放不熟悉的程序。

【非正常關閉計算機】

不要直接使用機箱中的電源按鈕,否則會造成系統文件損壞或丟失,引起自

動啟動或者運行中死機。對於Windows 98/2000/NT等系統來說,這點非常重要,

嚴重的話,會引起系統崩潰。

【內存中衝突】

有時候運行各種軟件都正常,但是卻忽然間莫名其妙地死機,重新啟動後運

行這些應用程序又十分正常,這是一種假死機現象。出現的原因多是Win 98的內

存資源衝突。大家知道,應用軟件是在內存中運行的,而關閉應用軟件後即可釋

放內存空間。但是有些應用軟件由於設計的原因,即使在關閉後也無法徹底釋放

內存的,當下一軟件需要使用這一塊內存地址時,就會出現衝突。

變色龍問題 怎樣用dd.exe將boot0寫入mbr? 變色龍的具體使用方法?

可以用DEBUG。

A:\DEBUG

-A 100

MOV AX,201

MOV BX,200

MOV CX,1

MOV DX,80

INT 13

INT 3

^C

-G=100(將主引導記錄讀入200H開始的內存中)

-D 3B0 3FF(顯示分區表,發現引導標誌為“55”而不是“80H”或“00H”)

00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 01

01 00 04 0F 33 4F 33 00-00 00 CD FE 00 00 00 00

01 50 05 0F F3 F0 00 FF-00 00 30 91 0B 00 00 00

00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA

-E 3BE 80(將引導標誌改為80)

-E 102 3(修改彙編小程序的第一條語句)

-G=100(將修改後的主引導記錄寫入硬盤)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/181584.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-23 06:41
下一篇 2024-11-23 06:41

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論