用C语言绘制围棋棋盘

用C语言绘制围棋棋盘,第1张

#include"graphics.h"

#include"conio.h"

void main()

{

initgraph(640,480)

for(int x=1x<戚神20x++)//划纵蚂迅的19条线

line(x*20,40,x*20,400)

for(int y=2y<高物亏21y++)//划横的19条线

line(20,y*20,380,y*20)

getch()

closegraph()

}

--

以怎么不庆谨兆用 MS VC++6 ??

编C语言一般都用啊

还有\xCD是C语言

Ascii代码 表示一个图形

用循环语句啊!

等我一下 晚上写出来 贴上哦

晚上10:00 上完课回来

呵呵 分给不给 随便 你的问题让我熟练了许多

分不重要了

我终于写出来了

调试了30分钟啊!

纯粹的循环 + 判断

-- 我就这点水平了 算法可能不好

如果有更好的告诉我 上QQ 或发百度消息给我

百度的显示有问题 最好

用源代码格式化工誉租具格式化一下 百度有搜

#include <stdio.h>

void main()

{

int n,m,x,y,temp,j=0,i=0

printf("输入棋盘的横格数,竖格数:\n")

scanf("%d,%d",&x,&y)

printf("%d,%d\n",x,y)

n=2*x+1

m=2*y+1

printf("%d,%d\n",n,m)

while(j<m)

{

j++

temp=j%2

i=0

if(j==1)

{

while(i<n)

{

i++

if(i==1)

{

printf("\xC9")

continue

}

if(n==i)

{

printf("\xBB\n")

continue

}

if(i%2!=0)

{

printf("\xCB")

continue

}

if(i%2==0)

{

printf("\xCD\晌返xCD\xCD")

continue

}

}

continue

}

if(m==j)

{

while(i<n)

{

i++

if(i==1)

{

printf("\xC8")

continue

}

if(n==i)

{

printf("\xBC\n")

continue

}

if(i%2!=0)

{

printf("\xCA")

continue

}

if(i%2==0)

{

printf("\xCD\xCD\xCD")

continue

}

}

continue

}

if(temp==0)

{

while(i<n)

{

i++

if(i%2!=0)

{

printf("\xBA")

if(n==i)printf("\n")

continue

}

if(i%2==0)

{

printf(" ")

continue

}

}

continue

}

if(temp!=0&&j!=1)

{

while(i<n)

{

i++

if(i==1)

{

printf("\xCC")

continue

}

if(n==i)

{

printf("\xB9\n")

continue

}

if(i%2!=0)

{

printf("\xCE")

continue

}

if(i%2==0)

{

printf("\xCD\xCD\xCD")

continue

}

}

continue

}

}

}

100%编译通过

可以画出任意大小的棋盘

如 5*3 5*5

只要你的屏幕能够显示

以上是用图像库画的棋盘

下面是用 __ 和 |

画的棋盘 其实很简单 替换一下就可以了

#include <stdio.h>

void main()

{

int n,m,x,y,temp,j=0,i=0

printf("输入棋盘的横格数,竖格数:\n")

scanf("%d,%d",&x,&y)

printf("%d,%d\n",x,y)

n=2*x+1

m=2*y+1

printf("%d,%d\n",n,m)

while(j<m)

{

j++

temp=j%2

i=0

if(j==1)

{

while(i<n)

{

i++

if(i==1)

{

printf("__")

continue

}

if(n==i)

{

printf("__\n")

continue

}

if(i%2!=0)

{

printf("__")

continue

}

if(i%2==0)

{

printf("__")

continue

}

}

continue

}

if(m==j)

{

while(i<n)

{

i++

if(i==1)

{

printf("__")

continue

}

if(n==i)

{

printf("__\n")

continue

}

if(i%2!=0)

{

printf("__")

continue

}

if(i%2==0)

{

printf("__")

continue

}

}

continue

}

if(temp==0)

{

while(i<n)

{

i++

if(i%2!=0)

{

printf("|")

if(n==i)printf("\n")

continue

}

if(i%2==0)

{

printf("")

continue

}

}

continue

}

if(temp!=0&&j!=1)

{

while(i<n)

{

i++

if(i==1)

{

printf("__")

continue

}

if(n==i)

{

printf("__\n")

continue

}

if(i%2!=0)

{

printf("__")

continue

}

if(i%2==0)

{

printf("__")

continue

}

}

continue

}

}

}

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

/*

五子棋

*/

#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()

}


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

原文地址: http://outofmemory.cn/yw/12470977.html

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

发表评论

登录后才能评论

评论列表(0条)

保存