版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、*-chess.c-*/#include dos.h#include stdio.h/*-*/#define red 7#define black 14#define true 1#define false 0#define select 0#define move 1#define red_up 0x1100#define red_down 0x1f00#define red_left 0x1e00#define red_right 0x2000#define red_do 0x3900#define red_undo 0x1000#define black_up 0x4800#define
2、 black_down 0x5000#define black_left 0x4b00#define black_right 0x4d00#define black_do 0x1c00#define black_undo 0x2b00#define escape 0x0100#define red_ju 1#define red_ma 2#define red_xiang 3#define red_shi 4#define red_jiang 5#define red_pao 6#define red_bin 7#define black_ju 8#define black_ma 9#defi
3、ne black_xiang 10#define black_shi 11#define black_jiang 12#define black_pao 13#define black_bin 14/*-*/int firsttime=1;int savemode;char page_new=0,page_old=0;int finish=false,turn=black,winner=0;int key;int redstate=select,blackstate=select;int board109;/*-*/char *chessfile15=,bmprju.wfb, bmprma.w
4、fb, bmprxiang.wfb,bmprshi.wfb,bmprjiang.wfb,bmprpao.wfb,bmprbin.wfb,bmpbju.wfb, bmpbma.wfb, bmpbxiang.wfb,bmpbshi.wfb,bmpbjiang.wfb,bmpbpao.wfb,bmpbbin.wfb;char *boardfile109=bmp11.wfb,bmp1t.wfb,bmp1t.wfb,bmp14.wfb,bmp15.wfb,bmp16.wfb,bmp1t.wfb,bmp1t.wfb,bmp19.wfb,bmp21.wfb,bmp2c.wfb,bmp2c.wfb,bmp24
5、.wfb,bmp25.wfb,bmp26.wfb,bmp2c.wfb,bmp2c.wfb,bmp29.wfb,bmp21.wfb,bmp3a.wfb,bmp3t.wfb,bmp34.wfb,bmp3t.wfb,bmp36.wfb,bmp3t.wfb,bmp3a.wfb,bmp29.wfb,bmp41.wfb,bmp4t.wfb,bmp4a.wfb,bmp4t.wfb,bmp4a.wfb,bmp4t.wfb,bmp4a.wfb,bmp4t.wfb,bmp49.wfb,bmp51.wfb,bmp52.wfb,bmp5t.wfb,bmp54.wfb,bmp5t.wfb,bmp56.wfb,bmp5t
6、.wfb,bmp58.wfb,bmp59.wfb,bmp61.wfb,bmp62.wfb,bmp6t.wfb,bmp64.wfb,bmp6t.wfb,bmp66.wfb,bmp6t.wfb,bmp68.wfb,bmp69.wfb,bmp71.wfb,bmp7t.wfb,bmp7a.wfb,bmp7t.wfb,bmp7a.wfb,bmp7t.wfb,bmp7a.wfb,bmp7t.wfb,bmp79.wfb,bmp81.wfb,bmp8a.wfb,bmp8t.wfb,bmp84.wfb,bmp85.wfb,bmp86.wfb,bmp8t.wfb,bmp8a.wfb,bmp89.wfb,bmp91
7、.wfb,bmp9t.wfb,bmp9t.wfb,bmp9t.wfb,bmp95.wfb,bmp9t.wfb,bmp9t.wfb,bmp9t.wfb,bmp99.wfb,bmp101.wfb,bmp102.wfb,bmp102.wfb,bmp104.wfb,bmp105.wfb,bmp106.wfb,bmp108.wfb,bmp108.wfb,bmp109.wfb;char cursor1414=0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,255,255,255,255,255,255,255,0,0,1,1,1,1,0,
8、255,255,255,255,255,255,0,0,1,1,1,1,1,0,255,255,255,255,255,255,0,0,1,1,1,1,1,0,255,255,255,255,255,255,255,0,0,1,1,1,1,0,255,255,255,255,255,255,255,255,0,0,1,1,1,0,255,255,255,255,255,255,255,255,255,0,0,1,1,0,255,255,0,255,255,255,255,255,255,255,0,0,1,0,255,0,1,1,0,255,255,255,255,255,255,255,0,
9、0,0,1,1,1,1,0,255,255,255,255,255,0,1,0,1,1,1,1,1,1,0,255,255,255,0,1,1,1,1,1,1,1,1,1,1,0,255,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1;struct posint x;int y;position109,redcurpos,redtemppos,redoldpos,blackcurpos,blacktemppos,blackoldpos;/*-*/selectpage(register char page) /*換頁函數(shù)*/union regs r;r.x.ax=0x4f
10、05;r.x.bx=0;r.x.dx=page; /*選擇頁面*/int86(0x10,&r,&r);unsigned char set_svga_mode(int vmode) /*設(shè)置svga屏幕模式*/union regs r;r.x.ax=0x4f02;r.x.bx=vmode;int86(0x10,&r,&r);return(r.h.ah);unsigned int get_svga_mode() /*獲取當(dāng)前svga屏幕模式*/union regs r;r.x.ax=0x4f03;int86(0x10,&r,&r);return(r.x.bx);drawbmp(int start_
11、x,int start_y,char filename)char buffer640;int i,j,k,n,r,g,b,width,length;long position;file *fp;if(fp=fopen(filename,rb)=null)printf(error! cant open file!);getch();return;fseek(fp,28,seek_set);fread(&i,2,1,fp);if(i!=8) /*檢查是否為256色位圖*/puts(error!cant find bitmap!);fclose(fp);getch();exit(0);fseek(f
12、p,18,seek_set);fread(&width,4,1,fp);fread(&length,4,1,fp);if(firsttime)fseek(fp,54,seek_set);for(i=0;i2); /*右移是要轉(zhuǎn)化為vga的6位寄存器形式*/outportb(0x3c9,g2);outportb(0x3c9,b2);fgetc(fp);elsefseek(fp,300,seek_set);k=(width%4)?(4-width%4):0; /*寬度修正值*/for(j=length-1+start_x;j=start_x;j-)fread(buffer,width,1,fp);
13、for(i=start_y,n=0;iwidth+start_y;i+,n+)position=j*640l+i; /*計(jì)算要顯示點(diǎn)的顯存位置*/page_new=position/65536; /*計(jì)算顯示頁*/if(page_new!=page_old) /*當(dāng)顯示頁不同時(shí)更換頁面,提高一定的輸出速度*/selectpage(page_new);page_old=page_new;pokeb(0xa000,position%65536,buffern); /*寫到顯存位置*/fseek(fp,k,seek_cur); /*每行繪制完后修正寬度*/fclose(fp);init()savem
14、ode=get_svga_mode(); /*先保存原來的屏幕模式*/set_svga_mode(0x101); /*硬件無關(guān)性初始化屏幕為640*480 256色模式*/end()set_svga_mode(savemode); /*恢復(fù)屏幕*/*-*/initpos()int i,j;for(i=0;i10;i+)for (j=0;j9;j+)positionij.x=35+i*39;positionij.y=43+j*40;initchessmap()board00=black_ju;board01=black_ma;board02=black_xiang;board03=black_s
15、hi;board04=black_jiang;board05=black_shi;board06=black_xiang;board07=black_ma;board08=black_ju;board21=black_pao;board27=black_pao;board30=black_bin;board32=black_bin;board34=black_bin;board36=black_bin;board38=black_bin;board90=red_ju;board91=red_ma;board92=red_xiang;board93=red_shi;board94=red_jia
16、ng;board95=red_shi;board96=red_xiang;board97=red_ma;board98=red_ju;board71=red_pao;board77=red_pao;board60=red_bin;board62=red_bin;board64=red_bin;board66=red_bin;board68=red_bin;initdrawchess()int i,j;for(i=0;i10;i+)for(j=0;j=x;j-,m-)for(i=y,n=0;i=x;j-,m-)for(i=y,n=0;i=red_ju&boardxy=red_ju&boardxy
17、=5) if(y!=oldy|(oldx-x)!=1) return 0;else if(x=(oldx-1)&y=oldy) return 1;else if(x=oldx&y=(oldy+1) return 1;else if(x=oldx&y=(oldy-1) return 1;elsereturn 0; break;case red_jiang: /*完成*/if(x!=oldx&y!=oldy) return 0;if(x!=oldx)if(x-oldx)1|(oldx-x)1) return 0;else if(x1|(oldy-y)1) return 0;else if(y5)
18、return 0; break;case red_ju: /*完成*/if(x!=oldx&y!=oldy) return 0;else if(x!=oldx) min=(xoldx)?oldx:x;max=(xoldx)?x:oldx;for(i=min+1;ioldy)?oldy:y;max=(yoldy)?y:oldy;for(i=min+1;ioldx)?oldx:x;max=(xoldx)?x:oldx;for(i=min+1;ioldy)?oldy:y;max=(yoldy)?y:oldy;for(i=min+1;ioldx)?oldx:x;max=(xoldx)?x:oldx;for(i=min+1,j=0;ioldy)?oldy:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 1.1 國家是什么(導(dǎo)學(xué)案) 高二政治 (統(tǒng)編版選擇性必修1)
- 2025年銷售傭金合同范本與業(yè)績激勵(lì)方案3篇
- 2025版木工行業(yè)培訓(xùn)與認(rèn)證服務(wù)合同范本4篇
- 2025年商業(yè)委托銷售協(xié)議
- 2025年合法住房公租房協(xié)議
- 二零二五年度駕校品牌推廣與市場拓展合作合同2篇
- 2025年度個(gè)人二手車轉(zhuǎn)讓及二手車增值服務(wù)合同3篇
- 二零二五年度林業(yè)苗木繁育基地承包合同4篇
- 二零二五年度集體產(chǎn)權(quán)房屋買賣合同樣本(含房屋產(chǎn)權(quán)調(diào)查及核實(shí)要求)
- 二零二五年度運(yùn)輸保險(xiǎn)合同匯編與風(fēng)險(xiǎn)保障方案
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級上冊 期末綜合卷(含答案)
- 2024中國汽車后市場年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語教學(xué)課件(共7章)
- 廢鐵收購廠管理制度
- 物品賠償單范本
- 《水和廢水監(jiān)測》課件
- 滬教版六年級數(shù)學(xué)下冊課件【全冊】
評論
0/150
提交評論