关于五子棋(高手请进)

关于五子棋(高手请进),第1张

分类: 体育/运动 >>棋牌麻将

问题描述:

哪位大虾有五子棋软件啊?(推荐几个好一点的版本)我和朋友都想见识一下。^_^

解析:

1.五子棋大战 V2.36.320

此完整安装程序适用于尚未在系统中安装VB6运行库的Win9X/NT系统(出现找不到文件MSVBVM60.DLL的提示),如果运行时显示字体过小,也应使用此完整安装程序。Win2000/XP/Server2003可以不使用此完整安装包,而直接下载五子棋大战主程序即可。

五子棋大战是一款功能十分齐全的小游戏。支持双人对战和人机对战模式。您可以通过“ *** 作者设备锁定”功能来使键盘和鼠标各执一方棋子 *** 作,而不互相干扰。支持反悔和撤消反悔,没有次数限制。在“ *** 作者设备锁定”时,还可以通过设置使反悔或撤消反悔须由双方确认才能生效。支持保存游戏,并能任意载入,可以用类似预览图片的功能来预览存盘进度。提供三种大小的棋盘:19*19、17*17、15*15,由您任意选择。支持职业五子棋比赛的特殊规则,包括三三禁手、四四禁手、长连禁手、百手和局、三手可交换 、五手两打、超时判负(5分钟/10分钟/15分钟/30分钟/1小时/2小时/5小时)。独特的“局势提示”功能可以提示您整个棋局的形势。

下载地址19791/game/67

2.五子棋高手 V1.26

五子棋高手V1.01单机版,可提供人机对战,机人对战,双人对战模式,在游戏中还记录棋步及本局游戏所花时间等同时还可以设置电脑的等级,电脑的智能化等级已有一定标准,玩家仍需要努力才能战胜;同时软件的界面友善,还提供了更换棋盘的功能,同时还有不错的提示效果;另外还设置在运行状态下,热键(SHITF键)最小化软件主体界面;还提供了记录玩家信息和更改玩家信息功能,如玩家名,最少用时,最少棋步等历史记录等。

下载地址19791/game/189

3.开心五子棋 2006 V2.95

开心五子棋对决是一款五子棋游戏,支持人机对战、机人对战、双人对战以及双人联机对战模式,还可以悔棋、边战边聊。在游戏中还记录棋步及本局游戏所花时间等同时还可以设置电脑的等级,电脑的智能化等级已有一定标准,玩家仍需要努力才能战胜;同时软件的界面友善,还提供了更换棋盘的功能,同时还有不错的提示效果;另外还提供了记录玩家信息和更改玩家信息功能,如玩家名,最少用时,最少棋步等历史记录等。

下载地址19791/game/256

4.中华五子棋 V1.25

中华五子棋是一款功能十分齐全并且免费的小游戏。支持双人对战和人机对战模式。支持反悔,没有次数限制。支持保存游戏,并能载入。

下载地址19791/game/345

5.嘉嘉五子棋 V1.40 Beta 1

极好的五子棋游戏,功能完备,界面漂亮,电脑智商高。新版本的算法主干部分全部重写,棋力更强,速度更快,并且增加了电脑自动搜索功能。该版本免费注册,注册用户可以享受终生免费升级和技术支持。

下载地址19791/game/478

6.珠联网络棋牌游戏 V2.94n

15种游戏,包括大众麻将、穷和麻将、拱猪、拖拉机、斗地主、梭哈、跳棋、中国象棋、五子棋、围棋、国际象棋、四国军棋、台球、连连看、俄罗斯方块网络对战游戏。类似于联众游戏世界的功能,软件为分服务器和客户端程序。使用本软件,你可以在个人网站、个人主机和局域网内建立游戏服务器,给你的客户或公司员工提供娱乐。

下载地址19791/game/145

五子棋啲基本防守技巧如下:

1、靠:因为五子棋是平衡的艺术,因此原则上每步棋都应下在对方上一步棋周围贴身的八个位置上。当你不知道该如何下时可按此考虑,特别是对方在外围远处下子时,则在其左右必有好点。可降低对方的活动能力。

2、压:活动需要空间,防守主要的目的是压迫对方啲活动空间,在对方棋形的上方进行挤压,使其不能擡头,限制其发展,防止敌人以几何倍数向外扩张。下在外围也能为将来自己的扩展做打算。

3、托:将对方的棋形托向底线,使其失去根基,发展无望。即分割其与总体的联系,将之孤立起来,起到无为而治的目的。

4、点:在情况不明的地方点一手,看对方的应手而后定。将变化走明有时是明智之举。

5、穿心:功聚内力,防守就是要破坏其凝聚力,在对方集中之处的中心筋络上下子能起到事半功倍的效果。不过“心”肯定要选准,否则事得其反。

6、分割:在对方二块棋的交汇点上进行分割,以防止相互呼应。只要制住三点,连神龙也腾飞不起来。应特别注意对方的接应子,要坚决切断,不留活口,封杀出局。

7、反打:争取主动是积极的防守。反打即作出活二或死三,使之能在对方活三冲四时反活三反冲四。使自己能更灵活地防守,在对方进攻时进行反打有抢先防御,争取主动的效果。

五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一。

这个是稍微好一点的了,以前没事试过

/*

五子棋

*/

#include<stdio.h>

#include<stdlib.h>

#include<graphics.h>

#include<bios.h>

#include<conio.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=18x1<=18x1++)

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

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

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

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

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

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-1<0)

break

else

{

for(i=step_x-1,j=step_yi>=1i--)

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

{

draw_circle(step_x,step_y,LIGHTBLUE)

break

}

if(i<1)break

step_x=i

judgewho(step_x,step_y)

break

}

case RIGHT :

if(step_x+1>18)

break

else

{

for(i=step_x+1,j=step_yi<=18i++)

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

{

draw_circle(step_x,step_y,LIGHTBLUE)

break

}

if(i>18)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+1j<=18j++)

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

{

draw_circle(step_x,step_y,LIGHTBLUE)

break

}

if(j>18)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-1j>=1j--)

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

{

draw_circle(step_x,step_y,LIGHTBLUE)

break

}

if(j<1)break

step_y=j

judgewho(step_x,step_y)

break

}

case ESC :

break

case SPACE :

if(step_x>=1&&step_x<=18&&step_y>=1&&step_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=yj>=1j--)

{

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

n1++

else

break

}

/*水平向右数*/

for(j=x,k=yj<=18j++)

{

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

n2++

else

break

}

if(n1+n2-1>=5)

{

return(1)

break

}

/*垂直向上数*/

n1=0

n2=0

for(j=x,k=yk>=1k--)

{

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

n1++

else

break

}

/*垂直向下数*/

for(j=x,k=yk<=18k++)

{

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

n2++

else

break

}

if(n1+n2-1>=5)

{

return(1)

break

}

/*向左上方数*/

n1=0

n2=0

for(j=x,k=yj>=1,k>=1j--,k--)

{

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

n1++

else

break

}

/*向右下方数*/

for(j=x,k=yj<=18,k<=18j++,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=yj<=18,k>=1j++,k--)

{

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

n1++

else

break

}

/*向左下方数*/

for(j=x,k=yj>=1,k<=18j--,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!=SPACE&&key!=ESC)

}

while(key!=ESC)

closegraph()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/6457728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存