网上有关“谁有流媒体播放器和5子棋的原代码?”话题很是火热,小编也是针对谁有流媒体播放器和5子棋的原代码?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
您好:手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,咨询加微信【】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的
1.手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,通过添加客服微信
2.咨询软件加微信【】在"设置DD功能DD微信手麻工具"里.点击"开启".
3.打开工具.在"设置DD新消息提醒"里.前两个选项"设置"和"连接软件"均勾选"开启"(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉."消息免打扰"选项.勾选"关闭"(也就是要把"群消息的提示保持在开启"的状态.这样才能触系统发底层接口)
我这里只收集了五子棋的源代码:
============================================================
一个用C 编写的五子棋游戏(1)
在TC 1.0~TC 3.0下编译
// LUFFAR.CPP
////////////////////////////////////////////////////
//
// Luffar.Cpp by Yuheng Zhao
//
////////////////////////////////////////////////////
#include "types.h"
#include "shell.h"
#include "luffar.h"
#include "mouse.h"
CBoard::CBoard(CPlayer* p1,CPlayer* p2)
{
m_bSearchAll = TRUE;
// Rensa arrayen
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
m_nBoard[temp][temp1]=0;
}
}
m_bIsEmpty = TRUE;
m_pPlayer1 = p1;
m_pPlayer2 = p2;
m_pCurrentPlayer = p1;
m_nWhoBegins=1;
x0 = 25;
y0 = 45;
x1 = 435;
y1 = 455;
m_nMargin = 10;
m_nShadow = 5;
m_nCellX = (x1-x0)/MAX_X;
m_nCellY = (y1-y0)/MAX_Y;
// Justera storleken p?br刣et s?att det blir delbart
x1=x0 m_nCellX*MAX_X;
y1=y0 m_nCellY*MAX_Y;
msg[0]='\0';
CreateImages();
}
void CBoard::ResetBoard()
{
if (!m_bIsEmpty)
{
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
m_nBoard[temp][temp1]=0;
}
}
m_lastPt = CPoint();
m_nextlPt = CPoint();
if (m_nWhoBegins==1)
{
m_pCurrentPlayer = m_pPlayer2;
m_nWhoBegins=2;
}else
{
m_pCurrentPlayer = m_pPlayer1;
m_nWhoBegins=1;
}
m_bIsEmpty = TRUE;
Draw();
Message("-----------------");
Message("New game ... ");
}
}
CBoard::~CBoard()
{
free(m_pImage1);
free(m_pImage2);
}
void CBoard::CreateImages()
{
int r = (m_nCellX>m_nCellY)?m_nCellY:m_nCellX;
r/=2;
r-=1;
int x = 465;
int y = 60;
unsigned int size;
/* calculate the size of the image */
size = imagesize(0,0,r*2,r*2);
/* allocate memory to hold the image */
m_pImage1 = malloc(size);
m_pImage2 = malloc(size);
file://F拦sta image
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
fillellipse(x,y,r,r);
setfillstyle(SOLID_FILL,DGRAY);
fillellipse(x-3,y-3,r-4,r-4);
setcolor(LGRAY);
setfillstyle(SOLID_FILL,LGRAY);
fillellipse(x-3,y-3,r-7,r-7);
/* grab the image */
getimage(x-r,y-r,x r,y r, m_pImage1);
x = 465;
y = 85;
// Andra image
setcolor(DGRAY);
setfillstyle(SOLID_FILL,DGRAY);
fillellipse(x,y,r,r);
setfillstyle(SOLID_FILL,LGRAY);
fillellipse(x-1,y-2,r-2,r-2);
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
fillellipse(x-3,y-3,r-7,r-7);
getimage(x-r,y-r,x r,y r, m_pImage2);
// putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);
}
void CBoard::Draw()
{
HidePoint();
CRect rect(x0-m_nMargin,y0-m_nMargin,
x1 m_nMargin,y1 m_nMargin);
rect.Draw(BROWN,NOCOLOR,TRUE,m_nShadow);
setcolor(BLACK);
for (int temp=0;temp<MAX_Y 1;temp )
line(x0,y0 temp*m_nCellY,x1,y0 temp*m_nCellY);
for (temp=0;temp<MAX_X 1;temp )
line(x0 temp*m_nCellX,y0,x0 temp*m_nCellX,y1);
ShowPoint();
}
int CBoard::Go()
{
int scrx=-1,scry=-1,b;
CPoint newPt;
BOOL redraw=FALSE;
if (m_pCurrentPlayer->IsComputer())
{
newPt = Think();
m_nBoard[newPt.x][newPt.y]=m_pCurrentPlayer->WhichPlayer();
redraw = TRUE;
m_bIsEmpty = FALSE;
m_nextlPt = m_lastPt;
m_lastPt = newPt;
}else
{
ReadMouse(scrx,scry,b);
if (b==1)
{
if (CRect(x0,y0,x1,y1).PtInRect(CPoint(scrx,scry)))
{
newPt = CPoint((scrx-x0)/m_nCellX,(scry-y0)/m_nCellY);
if (newPt.x>=MAX_X) newPt.x=MAX_X-1;
if (newPt.y>=MAX_Y) newPt.y=MAX_Y-1;
if (m_nBoard[newPt.x][newPt.y]==0)
{
m_nBoard[newPt.x][newPt.y]=m_pCurrentPlayer->WhichPlayer();
redraw = TRUE;
m_bIsEmpty = FALSE;
m_nextlPt = m_lastPt;
m_lastPt = newPt;
}
}
}
}
if (newPt.x!=-1 && newPt.y!=-1 && redraw)
{
HidePoint();
if (m_pCurrentPlayer->WhichPlayer() == 1)
{
putimage(x0 newPt.x*m_nCellX 1,y0 newPt.y*m_nCellY 1,
m_pImage1,COPY_PUT);
}
else
putimage(x0 newPt.x*m_nCellX 1,y0 newPt.y*m_nCellY 1,
m_pImage2,COPY_PUT);
ShowPoint();
// Visa meddelande
msg[0]='\0';
if (m_pCurrentPlayer->IsComputer())
strcat(msg,"Computer ( ");
else
{
strcat(msg,"Player ");
if (m_pCurrentPlayer->WhichPlayer()==1)
strcat(msg,"1 ( ");
else if (m_pCurrentPlayer->WhichPlayer()==2)
strcat(msg,"2 ( ");
}
char temp[3];
IntToChar(newPt.x,temp);
strcat(msg,temp);
strcat(msg,":");
IntToChar(newPt.y,temp);
strcat(msg,temp);
strcat(msg," )");
Message(msg);
file://峦dra p?current player
if (m_pCurrentPlayer==m_pPlayer1)
m_pCurrentPlayer=m_pPlayer2;
else
m_pCurrentPlayer=m_pPlayer1;
return GetWinner();
}
return -1;
}
CPoint CBoard::RandomPoint()
{
CPoint pt;
do
{
randomize();
pt = CPoint(random(19),random(19));
}while (m_nBoard[pt.x][pt.y]!=0);
return pt;
}
CPoint CBoard::GetEndPoint(int x, int y, Direction d, BOOL& closed)
{
closed = TRUE;
int player=m_nBoard[x][y];
switch (d)
{
case UP:
if (y==0)
return CPoint();
if (m_nBoard[x][y-1]==player && m_nBoard[x][y-1]!=0)
return GetEndPoint(x,y-1,UP,closed);
if (m_nBoard[x][y-1]==0) closed = FALSE;
return CPoint(x,y-1);
case UPRIGHT:
if (y==0 || x==MAX_X-1)
return CPoint();
if ((m_nBoard[x 1][y-1]==player) && ((m_nBoard[x 1][y-1]!=0)))
return GetEndPoint(x 1,y-1,UPRIGHT,closed);
if (m_nBoard[x 1][y-1]==0) closed = FALSE;
return CPoint(x 1,y-1);
case RIGHT:
if (x==MAX_X-1)
return CPoint();
if (m_nBoard[x 1][y]==player && m_nBoard[x 1][y]!=0)
return GetEndPoint(x 1,y,RIGHT,closed);
if (m_nBoard[x 1][y]==0) closed = FALSE;
return CPoint(x 1,y);
case DOWNRIGHT:
if (y==MAX_Y-1 || x==MAX_X-1)
return CPoint();
if (m_nBoard[x 1][y 1]==player && m_nBoard[x 1][y 1]!=0)
return GetEndPoint(x 1,y 1,DOWNRIGHT,closed);
if (m_nBoard[x 1][y 1]==0) closed = FALSE;
return CPoint(x 1,y 1);
case DOWN:
if (y==MAX_Y-1)
return CPoint();
if (m_nBoard[x][y 1]==player && m_nBoard[x][y 1]!=0)
return GetEndPoint(x,y 1,DOWN,closed);
if (m_nBoard[x][y 1]==0) closed = FALSE;
return CPoint(x,y 1);
case DOWNLEFT:
if (y==MAX_Y-1 || x==0)
return CPoint();
if (m_nBoard[x-1][y 1]==player && m_nBoard[x-1][y 1]!=0)
return GetEndPoint(x-1,y 1,DOWNLEFT,closed);
if (m_nBoard[x-1][y 1]==0) closed = FALSE;
return CPoint(x-1,y 1);
case LEFT:
if (x==0)
return CPoint();
if (m_nBoard[x-1][y]==player && m_nBoard[x-1][y]!=0)
return GetEndPoint(x-1,y,LEFT,closed);
if (m_nBoard[x-1][y]==0) closed = FALSE;
return CPoint(x-1,y);
case UPLEFT:
if (x==0 || y==0)
return CPoint();
if (m_nBoard[x-1][y-1]==player && m_nBoard[x-1][y-1]!=0)
return GetEndPoint(x-1,y-1,UPLEFT,closed);
if (m_nBoard[x-1][y-1]==0) closed = FALSE;
return CPoint(x-1,y-1);
} return CPoint();
}
CPoint CBoard::SearchAll(int player, int count, int param)
{
CPoint pt;
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
if (m_nBoard[temp][temp1]==player)
{
pt = Analyse(temp,temp1,count,param);
if (pt.x != -1) return pt;
}
}
}
return pt;
}
CPoint CBoard::Think()
{
Message("I'm thinking...");
CPoint pt;
if (m_lastPt.x==-1)
return CPoint(10,9);
else if (m_nextlPt.x==-1)
return CPoint(m_lastPt.x 1,m_lastPt.y);
else
{
// 1. Se om jag har 4 i rad eller 3 i rad med 1 till i n剅heten
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 4);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],4);
if (pt.x != -1) return pt;
}
// 2. Se om motst唍daren har 4 i rad.
pt = Analyse(m_lastPt.x, m_lastPt.y, 4);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],4);
if (pt.x != -1) return pt;
}
// 3. Se om jag har 3 i rad eller 2 i rad plus en till i n剅heten
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 3);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],3);
if (pt.x != -1) return pt;
}
// 4. Se om motst唍daren har 3 i rad
pt = Analyse(m_lastPt.x, m_lastPt.y, 3);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],3);
if (pt.x != -1) return pt;
}
// Tre i rad med en sida st刵gd
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 3, 2);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],3,2);
if (pt.x != -1) return pt;
}
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 2, 1);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],2,1);
if (pt.x != -1) return pt;
}
pt = Analyse(m_lastPt.x, m_lastPt.y, 2, 1);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],2,1);
if (pt.x != -1) return pt;
}
// Tre i rad med en sida st刵gd
pt = Analyse(m_lastPt.x, m_lastPt.y, 3, 2);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],3,2);
if (pt.x != -1) return pt;
}
pt = FindDangERPt(m_nBoard[m_lastPt.x][m_lastPt.y]);
if (pt.x != -1) return pt;
pt = FindDangerPt(m_nBoard[m_nextlPt.x][m_nextlPt.y]);
if (pt.x != -1) return pt;
file://Inte viktig
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 2);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],2);
if (pt.x != -1) return pt;
}
pt = Analyse(m_lastPt.x, m_lastPt.y, 2);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],2);
if (pt.x != -1) return pt;
}
pt = Analyse(m_nextlPt.x, m_nextlPt.y, 1);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_nextlPt.x][m_nextlPt.y],1);
if (pt.x != -1) return pt;
}
pt = Analyse(m_lastPt.x, m_lastPt.y, 1);
if (pt.x != -1) return pt;
if (m_bSearchAll)
{
pt = SearchAll(m_nBoard[m_lastPt.x][m_lastPt.y],1);
if (pt.x != -1) return pt;
}
}
return RandomPoint();
}
CPoint CBoard::Analyse(int x,int y, int count,int param)
{
// Se om n唃on har "count" i rad eller "count-1" i rad
// med 1 till i n剅heten
// eller tv?"count-1" bredvid varandra
CPoint topPt,endPt, tempPt;
BOOL topClosed, endClosed, closed, closed1;
int length;
int length1, sum=0;
Direction temp, temp1, temp2;
if (x != -1 && y != -1)
{
for (temp=LEFT; temp<RIGHT;temp )
{
length = Calculate(x, y, temp)
Calculate(x, y, (Direction)(temp 4)) 1;
topPt = GetEndPoint(x, y, temp, topClosed);
endPt = GetEndPoint(x, y, (Direction)(temp 4), endClosed);
if (length>=2 && count == 2 )
{
if ((!topClosed) && (topPt.x!=-1) &&
m_nBoard[topPt.x][topPt.y]==0)
{
for (temp1=LEFT; temp1<=DOWNLEFT;temp1 )
{
length1 = Calculate(topPt.x, topPt.y, temp1,
m_nBoard[x][y]);
tempPt = GetEndPoint(topPt.x, topPt.y, temp1, closed);
GetEndPoint(tempPt.x, tempPt.y, temp1, closed);
if ((temp1 != temp) && (temp!=temp1-4) &&
(length1>=2) && (!closed))
return topPt;
if (m_nBoard[tempPt.x][tempPt.y]==0 && (!endClosed)
&& (endPt.x!=-1) && m_nBoard[endPt.x][endPt.y]==0)
{
for (temp2=LEFT; temp2<=DOWNLEFT;temp2 )
{
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp2, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp2, closed);
length1 = Calculate(tempPt.x, tempPt.y, temp2,
m_nBoard[x][y]) 1;
if ((temp2 != temp1) &&
(length1>=2) && (!closed))
return topPt;
}
}
}
}
if ((!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0)
{
for (temp1=LEFT; temp1<DOWNLEFT;temp1 )
{
length1 = Calculate(endPt.x, endPt.y, temp1,
m_nBoard[x][y]);
tempPt = GetEndPoint(endPt.x, endPt.y, temp1, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp2, closed);
GetEndPoint(tempPt.x, tempPt.y, temp1, closed);
if ((temp !=temp1) && (temp != temp1-4) &&
(length1>=2) && (!closed))
return endPt;
if (m_nBoard[tempPt.x][tempPt.y]==0 && (!topClosed)
&& (topPt.x!=-1) && m_nBoard[topPt.x][topPt.y]==0)
{
for (temp2=LEFT; temp2<=DOWNLEFT;temp2 )
{
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp2, closed);
length1 = Calculate(tempPt.x, tempPt.y, temp2,
m_nBoard[x][y]) 1;
if ((temp2 != temp1) &&
(length1>=2) && (!closed))
return topPt;
}
}
}
}
}
// X X
// Det h剅 situationen
// X X
else if (length>=1 && count ==2)
{
if ((!topClosed) && (topPt.x!=-1) &&
m_nBoard[topPt.x][topPt.y]==0)
{
for (temp1=LEFT; temp1<RIGHT;temp1 )
{
length1 = Calculate(topPt.x, topPt.y, temp1,
m_nBoard[x][y]);
tempPt = GetEndPoint(topPt.x, topPt.y, temp1, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp1, closed);
if ((length1 >= 1) && (!closed))
{
length1 = Calculate(topPt.x, topPt.y, (Direction)(temp1 4),
m_nBoard[x][y]);
tempPt = GetEndPoint(topPt.x, topPt.y, (Direction)(temp1 4), closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, (Direction)(temp1 4), closed);
if ((length1 >= 1) && (!closed)) sum ;
}
if (sum>=2)
return topPt;
}
sum=0;
}
if ((!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0)
{
for (temp1=LEFT; temp1<RIGHT;temp1 )
{
length1 = Calculate(endPt.x, endPt.y, temp1,
m_nBoard[x][y]);
tempPt = GetEndPoint(endPt.x, endPt.y, temp1, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp1, closed);
if ((length1 >= 1) && (!closed))
{
length1 = Calculate(endPt.x, endPt.y, (Direction)(temp1 4),
m_nBoard[x][y]);
tempPt = GetEndPoint(endPt.x, endPt.y, (Direction)(temp1 4), closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, (Direction)(temp1 4), closed);
if ((length1 >= 1) && (!closed)) sum ;
}
if (sum>=2)
return endPt;
}
sum=0;
}
}
if (length>=count && param!=1)
{
if ((!topClosed) && (topPt.x!=-1) &&
(m_nBoard[topPt.x][topPt.y]==0) &&
(!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0)
{
if (length<=3)
{
GetEndPoint(topPt.x, topPt.y, temp, closed);
GetEndPoint(endPt.x, endPt.y, Direction(temp 4), closed1);
if ((!closed) && (!closed1))
return topPt;
}else
return topPt;
}
else if (length>=4 || param==2)
{
if ((!topClosed) && (topPt.x!=-1) &&
m_nBoard[topPt.x][topPt.y]==0)
return topPt;
if ((!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0)
return endPt;
}
}
else if ((!topClosed) && (topPt.x!=-1) &&
m_nBoard[topPt.x][topPt.y]==0 && param!=1)
{
if (Calculate(topPt.x,topPt.y,temp,m_nBoard[x][y])>=count-length)
{
if (count>=4)
return topPt;
else
{
tempPt = GetEndPoint(topPt.x, topPt.y, temp, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp, closed);
if ((!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0 && (!closed))
return topPt;
}
}
}
else if ((!endClosed) && (endPt.x!=-1) &&
m_nBoard[endPt.x][endPt.y]==0 && param!=0 )
{
if (Calculate(endPt.x,endPt.y,(Direction)(temp 4),m_nBoard[x][y])>=count-length)
{
if (count>=4)
return endPt;
else
{
tempPt = GetEndPoint(endPt.x, endPt.y, temp, closed);
tempPt = GetEndPoint(tempPt.x, tempPt.y, temp, closed);
if ((!topClosed) && (topPt.x!=-1) &&
m_nBoard[topPt.x][topPt.y]==0 && (!closed))
return endPt;
}
}
}
}
}
return CPoint();
}
int CBoard::Calculate(int x,int y,Direction d, int player)
{
if (player==-1)
player=m_nBoard[x][y];
switch (d)
{
case UP:
if (y==0 || m_nBoard[x][y-1]!=player)
return 0;
return 1 Calculate(x,y-1,d,player);
case UPRIGHT:
if (y==0 || x==MAX_X-1 || m_nBoard[x 1][y-1]!=player)
return 0;
return 1 Calculate(x 1,y-1,d,player);
case RIGHT:
if (x==MAX_X-1 || m_nBoard[x 1][y]!=player)
return 0;
return 1 Calculate(x 1,y,d,player);
case DOWNRIGHT:
if (y==MAX_Y-1 || x==MAX_X-1 || m_nBoard[x 1][y 1]!=player)
return 0;
return 1 Calculate(x 1,y 1,d,player);
case DOWN:
if (y==MAX_Y-1 || m_nBoard[x][y 1]!=player)
return 0;
return 1 Calculate(x,y 1,d,player);
case DOWNLEFT:
if (y==MAX_Y-1 || x==0 || m_nBoard[x-1][y 1]!=player)
return 0;
return 1 Calculate(x-1,y 1,d,player);
case LEFT:
if (x==0 || m_nBoard[x-1][y]!=player)
return 0;
return 1 Calculate(x-1,y,d,player);
case UPLEFT:
if (y==0 || x==0 || m_nBoard[x-1][y-1]!=player)
return 0;
return 1 Calculate(x-1,y-1,d,player);
} return 0;
}
CPoint CBoard::FindDangerPt(int player)
{
CPoint pt;
int count=0, closedCount=0;
BOOL closed;
for (int temp=0;temp<MAX_X;temp )
{
for (int temp1=0;temp1<MAX_Y;temp1 )
{
if (m_nBoard[temp][temp1]==0)
{
for (Direction tmp=LEFT;tmp<=DOWNLEFT;tmp )
{
pt = GetEndPoint(temp,temp1,tmp,closed);
if (pt.x!=-1 && pt.y!=-1)
{
if (m_nBoard[pt.x][pt.y]==player)
count ;
if (m_nBoard[pt.x][pt.y]==player && (!closed))
closedCount ;
}
if (count>=3 || closedCount>=2)
return CPoint(temp,temp1);
count=0;
closedCount=0;
}
}
}
}
return CPoint();
}
// return 1 om f鰎sta spelaren vinner
// return 2 om andra spelaren vinner
// return -1 om ingen vinner
int CBoard::GetWinner()
{
if (m_lastPt.x==-1 || m_lastPt.y==-1)
return -1;
int x=m_lastPt.x;
int y=m_lastPt.y;
if ((Calculate(x,y,UP) Calculate(x,y,DOWN)>=4))
{ ShowWinner(x,y,UP);
ShowWinner(x,y,DOWN); }
else if ((Calculate(x,y,UPLEFT) Calculate(x,y,DOWNRIGHT)>=4))
{ ShowWinner(x,y,UPLEFT);
ShowWinner(x,y,DOWNRIGHT);}
else if ((Calculate(x,y,LEFT) Calculate(x,y,RIGHT)>=4))
{ ShowWinner(x,y,LEFT);
ShowWinner(x,y,RIGHT);}
else if ((Calculate(x,y,UPRIGHT) Calculate(x,y,DOWNLEFT)>=4))
{ ShowWinner(x,y,UPRIGHT);
ShowWinner(x,y,DOWNLEFT);}
else
return -1;
delay(400);
return m_nBoard[x][y];
}
void CBoard::ShowWinner(int x,int y,Direction start,int player)
{
if (player==-1)
player = m_nBoard[x][y];
if (m_nBoard[x][y]!=player)
return;
HidePoint();
/*putimage(x0 x*m_nCellX 1,y0 y*m_nCellY 1,
m_pImage1,NOT_PUT);*/
setcolor(YELLOW);
circle(x0 x*m_nCellX m_nCellX/2,
y0 y*m_nCellY m_nCellY/2,
((m_nCellX>m_nCellY)?m_nCellY:m_nCellX)/2);
ShowPoint();
switch (start)
{
case UP:
ShowWinner(x,y-1,UP,player);
break;
case DOWN:
ShowWinner(x,y 1,DOWN,player);
break;
case UPLEFT:
ShowWinner(x-1,y-1,UPLEFT,player);
break;
case DOWNRIGHT:
ShowWinner(x 1,y 1,DOWNRIGHT,player);
break;
case LEFT:
ShowWinner(x-1,y,LEFT,player);
break;
case RIGHT:
ShowWinner(x 1,y,RIGHT,player);
break;
case UPRIGHT:
ShowWinner(x 1,y-1,UPRIGHT,player);
break;
case DOWNLEFT:
ShowWinner(x-1,y 1,DOWNLEFT,player);
break;
}
}
CMessagePad::CMessagePad()
{
x0 = 450;
y0 = 120;
x1 = 620;
y1 = 400;
m_nShadow = 5;
mx0 = x0 10;
my0 = y0 25;
mx1 = x1 - 10;
my1 = y1 - 22;
m_nLineSpace = 15;
m_nLines = (my1-my0)/m_nLineSpace;
my1 = my0 m_nLineSpace * m_nLines;
m_nCurrentLine = 0;
}
void CMessagePad::Draw()
{
HidePoint();
CRect rect(x0,y0,x1,y1);
rect.Draw(BROWN,WHITE,TRUE,m_nShadow);
// Titel
CRect title(x0,y0,x1,y0 15);
title.Draw(WHITE,WHITE);
setcolor(BLACK);
outtextxy(title.x0 6,title.y0 6,"Messages");
ShowPoint();
}
void CMessagePad::Message(char* msg)
{
HidePoint();
if (m_nCurrentLine == m_nLines)
{
ScrollMessages();
m_nCurrentLine--;
}
setcolor(BLACK);
outtextxy(mx0 1,my0 m_nCurrentLine*m_nLineSpace 1,msg);
setcolor(WHITE);
outtextxy(mx0,my0 m_nCurrentLine*m_nLineSpace,msg);
m_nCurrentLine ;
ShowPoint();
}
void CMessagePad::ScrollMessages()
{
void *oldImage;
unsigned int size;
/* calculate the size of the image */
size = imagesize(mx0,my0 m_nLineSpace,mx1,my1 m_nLineSpace);
/* allocate memory to hold the image */
oldImage = malloc(size);
/* grab the image */
HidePoint();
getimage(mx0,my0 m_nLineSpace,mx1,my1 m_nLineSpace,oldImage);
putimage(mx0,my0,oldImage,COPY_PUT);
ShowPoint();
/* clean up */
free(oldImage);
}
===========================================================
java 五子棋的源代码 以及类图 用例图 时序图
//棋子枚举类
public?enum?Chessman
{
//枚举类第一行必须列出所有实例,这两个表示创建两个棋子视力,它们的棋子成员变量分别是●和○ BLACK_CHESS("●"),?WHITE_CHESS("○"); //成员变量,决定这个棋子的类型 private?String?chessman; //构造器,枚举类的构造器只能提供给自己的实例使用,外部不能调用 private?Chessman(String?chessman) {? this.chessman?=?chessman; } //获取棋子类型 public?String?getChessman() {? return?this.chessman; }}
进行了一下小改动,
1、排版
2、我没记错的话枚举实例是不能使用中文的
import java.io.*;
class goboard
{
public String[][] board;
private static int BOADSIZE=15;
public void initBoard()
{
board=new String[BOADSIZE][BOADSIZE];
for(int i=0;i<BOADSIZE;i++)
{
for(int j=0;j<BOADSIZE;j++)
{
board[i][j]="+";
}
}
}
public void printboard()
{
for(int i=0;i<BOADSIZE;i++)
{
for(int j=0;j<BOADSIZE;j++)
{
System.out.print(board[i][j]);
}
System.out.println();
}
}
}
public class Wuziqi {
public static void main(String[] args) throws Exception
{
goboard gb=new goboard();
gb.initBoard();
gb.printboard();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String inputstr=null;
while((inputstr=br.readLine())!=null)
{
String[] posStrArr=inputstr.split(",");
int xpos=Integer.parseInt(posStrArr[0]);
int ypos=Integer.parseInt(posStrArr[1]);
gb.board[xpos-1][ypos-1]="●";
gb.printboard();
System.out.println("请输入您下棋的坐标,应为X,Y的格式:");
}
}
}
关于“谁有流媒体播放器和5子棋的原代码?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!