五子棋源代码html

五子棋源代码html,第1张

js代码:

定义canvas及黑白棋变量

<font color="#2f4f4f" face="微软雅黑" size="3">var canvas

var context

var isWhite = true//设置是否该轮到白棋

var isWell = false//设置该局棋盘是否赢了,如果赢了就不能再走了

var img_b = new Image()

img_b.src = "images/b.png"//白棋图片

var img_w = new Image()

img_w.src = "images/c.png"//黑棋图片</font>

为棋盘的二维数组用来保存棋盘信息

<font color="#2f4f4f" face="微软雅黑" size="3">var chessData = new Array(15)//初始化0为没有走过的,1为白棋走的,2为黑棋走的

for (var x = 0x <15x++) {

chessData[x] = new Array(15)

for (var y = 0y <15y++) {

chessData[x][y] = 0

}

}</font>

绘制棋盘的线

<font color="#2f4f4f" face="微软雅黑" size="3"> for (var i = 0i <= 640i += 40) {

context.beginPath()

context.moveTo(0, i)

context.lineTo(640, i)

context.closePath()

context.stroke()

context.beginPath()

context.moveTo(i, 0)

context.lineTo(i, 640)

context.closePath()

context.stroke()

}

}</font>

判断该棋局的输赢

<font color="#2f4f4f" face="微软雅黑" size="3">if (count1 >= 5 || count2 >= 5 || count3 >= 5 || count4 >= 5) {

if (chess == 1) {

alert("白棋赢了")

}

else {

alert("黑棋赢了")

}

isWell = true//设置该局棋盘已经赢了,不可以再走了

}</font>

html代码:

<font color="#2f4f4f" face="微软雅黑" size="3"><body onload="drawRect()">

<div>

<canvas width="640" id="canvas" onmousedown="play(event)" height="640">你的浏览器不支持HTML5 canvas ,请使用 google chrome 浏览器 打开.

</canvas>

</div>

</body></font>

#include<iostream.h>#include<stdlib.h>#define Num 15//********************************************************//类class T//定义类用来封装所有相关函数和变量{ char board[Num][Num]//用数组board[Num][Num]来定义棋盘public: void PrintMenu() //打印菜单 说明游戏规则和方法void PrintBoard() //打印棋盘 void GameStart(char*,int &,int &,char) //下棋 int whichwin(int,int,char) //判断那个选手赢 void Choice(char &) //是否再玩 void Setboard() //重置棋盘}//****************************************************************//main主函数void main ()//主函数{ T s//说明类的一个对象ss.PrintMenu()//通过s调用PrintMenu函数提示如何游戏 char player1[20],player2[20]//玩家姓名 int FirstWin=0,SecondWin=0,Draws=0,x,y,N//说明变量,赋初值为0以待计算输赢结果 char choice='Y' cin.ignore(20,'\n')//输入输出流,前面如果有输入把输入行所有字符取空,以便后面的输入从新的一行开始 cout<<"请输入第一个玩家姓名:" cin.getline(player1,20)//连续读取数据 cout<<"请输入第二个玩家姓名:" cin.getline(player2,20) while(choice=='Y'||choice=='y')//条件成立,执行 { s.Setboard()//调用Setboard函数 N=0 while(N<=(Num*Num)) { s.PrintBoard()//打印棋盘 s.GameStart(player1,x,y,'O') N++//记录已下棋子数 if(s.whichwin(x-1,y-1,'O'))//返回值不为0则条件成立 { s.PrintBoard() cout<<player1<<"赢了。"<<endl FirstWin++//记录赢局数 break//终止本次循环 } s.PrintBoard()//同上 s.GameStart(player2,x,y,'X') N++ if(s.whichwin(x-1,y-1,'X')) { s.PrintBoard() cout<<player2<<"赢了。"<<endl SecondWin++ break } if(N==(Num*Num)) { cout<<"和棋!" Draws++//记录平局数 break } } s.Choice(choice)//给玩家提供一次选择是否再玩的机会 } //输出游戏输赢次数 cout<<player1<<"赢了"<<FirstWin<<"次"<<endl cout<<player2<<"赢了"<<SecondWin<<"次"<<endl cout<<"和"<<Draws<<"次"<<endl cout<<"谢谢使用。"<<endl cout<<"任意键继续。"<<endl cin.get()//很必要的,目的是空度换行字符}//*******************************************************************//定义公有成员函数void T::PrintMenu(){ cout<<"欢迎进入五子棋游戏!\n" cout<<"******************************************"<<endl cout<<"\t游戏说明:"<<endl<<endl cout<<"1.第一个玩家用O第二个玩家用X;"<<endl cout<<"2.请根据提示输入所要走的行和列;"<<endl cout<<"3.按<Enter>下棋。"<<endl cout<<"

#include "iostream"

#include <iomanip>

using namespace std

const int M=20

const int N=20

int main()

{

char weizhi[M][N]

int k,i,j,x,y,flag=0

cout<<"欢迎使用简易双人对战五子棋游戏"<<endl

cout<<"五子棋棋谱如下:"<<endl

for(k=0k<=Nk++)

cout<<setw(3)<<setfill(' ')<<k

cout<<endl

for(i=1i<=Mi++)

{

cout<<setw(3)<<setfill(' ')<<i

for(j=1j<=Nj++)

{

weizhi[i][j]='-'

cout<<setw(3)<<setfill(' ')<<weizhi[i][j]

}

cout<<endl

}

while(flag==0)

{

//红方落子

cout<<"请红方输入落子位置:"<<endl

loop1:

cout<<"请输入落子的行数:"

cin>>x

cout<<"请输入落子的列数:"

cin>>y

if(weizhi[x][y]=='-')

{

weizhi[x][y]='*'

for(k=0k<=Nk++)

cout<<setw(3)<<setfill(' ')<<k

cout<<endl

for(i=1i<=Mi++)

{

cout<<setw(3)<<setfill(' ')<<i

for(j=1j<=Nj++)

cout<<setw(3)<<setfill(' ')<<weizhi[i][j]

cout<<endl

}

}

else

{

cout<<"你不能在这落子,请重新选择落子位置:"<<endl

goto loop1

}

//判断胜利

for(i=1i<=M-4i++)

{

for(j=1j<=N-4j++)

{

if(weizhi[i][j]=='*' &&weizhi[i][j+1]=='*' &&weizhi[i][j+2]=='*' &&weizhi[i][j+3]=='*' &&weizhi[i][j+4]=='*')

{

cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(weizhi[i][j]=='*' &&weizhi[i+1][j]=='*' &&weizhi[i+2][j]=='*' &&weizhi[i+3][j]=='*' &&weizhi[i+4][j]=='*')

{

cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(weizhi[i][j]=='*' &&weizhi[i+1][j+1]=='*' &&weizhi[i+2][j+2]=='*' &&weizhi[i+3][j+3]=='*' &&weizhi[i+4][j+4]=='*')

{

cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(flag==1)

break

}

}

//蓝方落子

cout<<"请蓝方输入落子位置:"<<endl

loop2:

cout<<"请输入落子的行数:"

cin>>x

cout<<"请输入落子的列数:"

cin>>y

if(weizhi[x][y]=='-')

{

weizhi[x][y]='#'

for(k=0k<=Nk++)

cout<<setw(3)<<setfill(' ')<<k

cout<<endl

for(i=1i<=Mi++)

{

cout<<setw(3)<<setfill(' ')<<i

for(j=1j<=Nj++)

cout<<setw(3)<<setfill(' ')<<weizhi[i][j]

cout<<endl

}

}

else

{

cout<<"你不能在这落子,请重新选择落子位置:"

goto loop2

}

//判断胜利

for(i=1i<=M-4i++)

{

for(j=1j<=N-4j++)

{

if(weizhi[i][j]=='#' &&weizhi[i][j+1]=='#' &&weizhi[i][j+2]=='#' &&weizhi[i][j+3]=='#' &&weizhi[i][j+4]=='#')

{

cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(weizhi[i][j]=='#' &&weizhi[i+1][j]=='#' &&weizhi[i+2][j]=='#' &&weizhi[i+3][j]=='#' &&weizhi[i+4][j]=='#')

{

cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(weizhi[i][j]=='#' &&weizhi[i+1][j+1]=='#' &&weizhi[i+2][j+2]=='#' &&weizhi[i+3][j+3]=='#' &&weizhi[i+4][j+4]=='#')

{

cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl

flag=1

break

}

if(flag==1)

break

}

}

}

return 0

}

我运行过,没有错误.


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

原文地址: http://outofmemory.cn/zaji/7306748.html

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

发表评论

登录后才能评论

评论列表(0条)

保存