ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:17.88KB ,
资源ID:10689269      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10689269.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(在linux下ubuntu的五子棋游戏c语言代码.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

在linux下ubuntu的五子棋游戏c语言代码.docx

1、在linux下ubuntu的五子棋游戏c语言代码#include #include /#include #include #include #include #include #define FB_W 1024#define FB_H 768#define CHESSBOARD1 10#define CHESSBOARD2 10#define X_OFFSET 400#define Y_OFFSET 200#define X_CAPASITY 10 #define Y_CAPASITY 10#define SPACE 40#define RED 0x00ff0000#define BLUE 0

2、x0000ff00#define WHITE 0xffffffff#define BLACK 0xff000000#define NOKEY 0#define RADIO 19#define C_H 17#define C_W 10#define T_ 0x00ffffff#define X_ 0xff00ffff#define BORD 0xeeff0000#define u32_t unsigned intint arrayCHESSBOARD1CHESSBOARD21;int boardCHESSBOARD1CHESSBOARD2;int play1CHESSBOARD1CHESSBOA

3、RD24;int CHESSBOARD1CHESSBOARD24;int cursor_storeC_HC_W;struct fb_infoint w;int h;int bpp;int *mem;fb;static u32_t cursor_pixelC_HC_W= BORD,T_,T_,T_,T_,T_,T_,T_,T_,T_, BORD,BORD,T_,T_,T_,T_,T_,T_,T_,T_, BORD,X_,BORD,T_,T_,T_,T_,T_,T_,T_, BORD,X_,X_,BORD,T_,T_,T_,T_,T_,T_, BORD,X_,X_,X_,BORD,T_,T_,T_

4、,T_,T_, BORD,X_,X_,X_,X_,BORD,T_,T_,T_,T_, BORD,X_,X_,X_,X_,X_,BORD,T_,T_,T_, BORD,X_,X_,X_,X_,X_,X_,BORD,T_,T_, BORD,X_,X_,X_,X_,X_,X_,X_,BORD,T_, BORD,X_,X_,X_,X_,X_,X_,X_,X_,BORD, BORD,X_,X_,X_,X_,X_,BORD,BORD,BORD,BORD, BORD,X_,X_,BORD,X_,X_,BORD,T_,T_,T_, BORD,X_,BORD,T_,BORD,X_,X_,BORD,T_,T_,

5、BORD,BORD,T_,T_,BORD,X_,X_,BORD,T_,T_, T_,T_,T_,T_,T_,BORD,X_,X_,BORD,T_, T_,T_,T_,T_,T_,BORD,X_,X_,BORD,T_, T_,T_,T_,T_,T_,T_,BORD,BORD,T_,T_;int fb_open() int fd; int *mem; fd = open(/dev/fb0,O_RDWR); if(fd 0) printf(open file error!n); return 1; struct fb_var_screeninfo fb_var; ioctl(fd,FBIOGET_V

6、SCREENINFO,&fb_var); fb.w = fb_var.xres; fb.h = fb_var.yres; fb.bpp = fb_var.bits_per_pixel; printf(w:%d h:%d bpp:%dn,fb_var.xres,fb_var.yres,fb_var.bits_per_pixel);fb.mem = mmap(NULL,FB_H*FB_W*fb_var.bits_per_pixel/8,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);/printf(%dn, mem); return 0;void fb_pixel(in

7、t x,int y,int color)*(fb.mem + y*FB_W+x) = color;void fb_drawline(int x0,int x1,int y,int color)int i;for(i = x0;ix1;i+)fb_pixel(i,y,color);void fb_drawretangle(int x0,int y0,int x1,int y1,int color) int i,j; for(i = x0;ix1;i+) for(j = y0;jy1;j+) fb_pixel(i,j,color); void fb_drawline2(int x,int y0,i

8、nt y1,int color)int i;for(i = y0;iy1;i+)fb_pixel(x,i,color);void fb_drawcycle(int x,int y,int r,int color)int i,j;for(i = -r;ir;i+)for(j = -r;jr;j+) if(i*i+j*j = r*r) fb_pixel(i+x,j+y,color);int get_mouse_info(int fd,char *buf)int n;n = read(fd,buf,8);return n;int save_cursor(int x,int y)int i,j;for

9、(i = 0;i C_H;i+)for(j = 0;jC_W;j+)cursor_storeij = *(fb.mem + j + x+(i +y)*FB_W);return 0;int restore_cursor(int x,int y) int i,j; for(i = 0;iC_H;i+) for(j = 0;j C_W;j+) *(fb.mem+j+x+(i+y)*FB_W)=cursor_storeij; return 0;void drawmouse(int x,int y)int i,j;for(i = 0;iC_H;i+)for(j = 0;jC_W;j+)if(cursor

10、_pixelij != T_)fb_pixel(x+j,y+i,cursor_pixelij);/printf(kdjfk%dn,cursor_pixelij);int printboard()int i;fb_drawretangle(X_OFFSET - SPACE,Y_OFFSET - SPACE,X_OFFSET + SPACE *Y_CAPASITY,Y_OFFSET + SPACE * X_CAPASITY,BLUE);for(i = 0;i Y_CAPASITY;i+) fb_drawline(X_OFFSET,X_OFFSET+SPACE*(Y_CAPASITY - 1),i

11、* SPACE + Y_OFFSET,RED);for(i = 0;i X_CAPASITY;i+)fb_drawline2(i*SPACE+X_OFFSET,Y_OFFSET,Y_OFFSET+SPACE*(X_CAPASITY-1),RED);void printqizi(int row,int col, int color)int x,y;x = X_OFFSET + SPACE*col;y = Y_OFFSET + SPACE*row;fb_drawcycle(x,y,RADIO,color);struct node_tint x;int y;int z;/print the ches

12、sboardvoid print(int boardCHESSBOARD1CHESSBOARD2) int i, j; printf(n); printf( ); for (j = 0; j CHESSBOARD2; j+) printf( %d, j); printf(n); printf( -); for (j = 0; j CHESSBOARD2; j+) printf( -); printf(n); for (i = 0; i CHESSBOARD1; i+) printf(%d| , i); for (j = 0; j CHESSBOARD2; j+) printf(%d , boa

13、rdij);printf(n);printf(n);/ 鍒濆 鍖栨 鐩?void init(int mapCHESSBOARD1CHESSBOARD2) int i,j; for(i=0;iCHESSBOARD1;i+) for(j=0;jCHESSBOARD2;j+) mapij = 0; void init2(int mapCHESSBOARD1CHESSBOARD24) int i,j,k; for(i=0;iCHESSBOARD1;i+) for(j=0;jCHESSBOARD2;j+) for(k =0;k4;k+) mapijk = 0; void init3(int mapCHE

14、SSBOARD1CHESSBOARD21) int i , j; for(i = 0;iCHESSBOARD1;i+) for(j = 0;jCHESSBOARD2;j+) mapij1 = 0; int detection(int mapCHESSBOARD1CHESSBOARD24,int x,int y,int player) int i,j,k,nx,ny,counter = 0; int dirx4 = 0,1,1,1; int diry4 = 1,0,1,-1; if(boardxy) return 0; for(i =0;i4;i+) nx = x; ny = y; while(

15、boardnx+=dirxiny+=diryi = player) counter+; nx =x; ny =y; while(boardnx-=dirxiny-=diryi = player) counter+; switch(counter) case 0: mapxyi = 0;break; case 1: mapxyi = 5;break; case 2: mapxyi = 10;break; case 3: mapxyi = 15;break; case 4: mapxyi = 20;break; /printf(%d,%d,%d ,x,y,mapxyi); counter = 0;

16、printf(n);return 0;int get_max(int mapCHESSBOARD1CHESSBOARD24)int i,j,k;int max = 0;for(i = 0;iCHESSBOARD2;i+)for(j = 0;jCHESSBOARD1;j+)for(k = 0;kmax)max = mapijk;return max;struct node_t get_max2(int mapCHESSBOARD1CHESSBOARD24) int i,j,k; struct node_t p; int max = 0,cur; for(i = 0;iCHESSBOARD2;i+

17、) for(j = 0;jCHESSBOARD1;j+) for(k = 0;kmax) max = cur; p.x = i; p.y = j; p.z = k; return p;struct node_t get_max3(int mapCHESSBOARD1CHESSBOARD24) int i,j,k; struct node_t p; int max = 0,cur; for(i = 0;iCHESSBOARD2;i+) for(j = 0;jCHESSBOARD1;j+) for(k = 0;k= max) max = cur; p.x = i; p.y = j; p.z = k

18、; return p;struct node_t get_max4(int mapCHESSBOARD1CHESSBOARD21) int i,j; struct node_t p; int max = 0,cur; for(i = 0;iCHESSBOARD2;i+) for(j = 0;j= max) max = cur; p.x = i; p.y = j; p.z = 1; return p;/鏌湅鍧愭爣x y鏄 惁鑳借蛋int if_done(int x,int y)if(x=CHESSBOARD1|x=CHESSBOARD2|y0)return 0;return 1;void put

19、er() int i,j,k; init2(play1); init2(); for(i = 0;iCHESSBOARD2;i+) for(j = 0;jCHESSBOARD1;j+) detection(play1,i,j,1); detection(,i,j,2); /鏌湅妫嬬洏鐨勬 瀛愭儏鍐垫湁鍑犱釜杩炰竴璧?int check(int x,int y,int boardCHESSBOARD1CHESSBOARD2) int i = 0,j = 0,nextx,nexty; int counter = 1; int player; int directionx4 = 0,1,1,1; i

20、nt directiony4 = 1,0,1,-1; player = boardxy; if(player = 0) return 0; for(i = 0;i4;i+) nextx = x; nexty = y; counter = 1; for(j = 1;j5;j+) nextx += directionxi; nexty +=directionyi; if(boardnextxnexty = player) counter+; if(counter = 5) return 1; return 0;void drawbg(int row,int col)int x,y;x = X_OF

21、FSET + SPACE*col;y = Y_OFFSET + SPACE*row;fb_drawcycle(x,y,RADIO,BLUE);fb_drawline(x-RADIO,x+RADIO,y,RED);fb_drawline2(x,y-RADIO,y+RADIO,RED);int if_gameover(int boardCHESSBOARD1CHESSBOARD2) int i,j; for(i = 0;iCHESSBOARD2;i+) for(j = 0;jCHESSBOARD1;j+) if(check(i,j,board) return 1; return 0;void mo

22、use_doing()int fd,step = 1; int row,col,flag1=1; int max1,max2;char buf8; struct node_t p;int mx,my,a,b,c,d,e;mx = FB_W/2-100;my = FB_H/2;int n;/drawmouse(mx,my);fd = open(/dev/input/mice,O_RDWR|O_NONBLOCK);if(fd 0) e = (buf0&0x07); c = 2*buf1; d = 2*buf2;if(e = NOKEY) restore_cursor(mx,my); mx += c

23、; my -= d; if(mx = FB_W-17) mx=FB_W-17; if(mx FB_H-17) my = FB_H-17; if(my = max2) p = get_max2(play1); else p = get_max2(); row = p.x; col = p.y; if(!(if_done(row,col)|boardrowcol) / printf(you cant done here !n); max1 = get_max(play1); max2 = get_max(); if(max1 = max2) p = get_max3(play1); else p = get_max3(); row = p.x; col = p.y; continue; boardrowcol = 2; puter(board); restore_cursor(mx,my); printq

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1