示例#1
0
/*This function checks if there is a possibility of an immediate win by the computer in the immediate move */
int winMove(int a1[6][7],int a2[6][7],int a3[6][7],int a4[6][7],int p)
{int i,cp,flag=0;
 for(i=1;i<=7;i++)
	{if (a1[0][i-1]==0)
		{cp=coinPos(i,a1);
		if (p*valRow(i,p,cp,a1)>=4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			drawround(i-1,cp,ray,GREEN);
			++flag;
			return(1);}
		else if(p*valCol(i,p,cp,a2)>=4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			drawround(i-1,cp,ray,GREEN);
			++flag;
			return(1);}
		else if(p*valLDia(i,p,cp,a3)>=4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			drawround(i-1,cp,ray,GREEN);
			++flag;
			return(1);}
		else if(p*valRDia(i,p,cp,a4)>=4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			drawround(i-1,cp,ray,GREEN);
			++flag;
			return(1);}
		}
	}
 if (flag==0)
	return(0);
 else
	return(1);
}
示例#2
0
/*This function checks if there is a possibility of a win by the user in the user’s next move*/
int defMove(int a1[6][7],int a2[6][7],int a3[6][7],int a4[6][7],int p)
{int i,cp,flag=0;
 for(i=1;i<=7;i++)
	{if (a1[0][i-1]==0)
		{cp=coinPos(i,a1);
		if (p*valRow(i,-p,cp,a1)==-4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			++flag;
			return(1);}
		else if(p*valCol(i,-p,cp,a2)==-4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			++flag;
			return(1);}
		else if(p*valLDia(i,-p,cp,a3)==-4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			++flag;
			return(1);}
		else if(p*valRDia(i,-p,cp,a4)==-4)
			{insRow(i,p,cp,a1);
			insCol(i,p,cp,a2);
			insLDia(i,p,cp,a3);
			insRDia(i,p,cp,a4);
			++flag;
			 return(1);}
		}
	}
 if (flag==0)
	return(0);
 else
	return(1);
}
示例#3
0
/*Checks for winning formations, declares the winner and ends the game */
void multiPlayer ()
{
 Player p1,p2;
 int r[6][7],c[6][7],ld[6][7],rd[6][7],i,j,res=0,n,win=0,ch,t,cp,flag=0;
 char n1[20],n2[20];
 for(i=0;i<6;i++)
	{for(j=0;j<7;j++)
	r[i][j]=c[i][j]=ld[i][j]=rd[i][j]=0;}

 setcolor(YELLOW);
 settextstyle(1,0,2);
 cout<<"Player one: ";
//outtextxy(10,340,"Player one name: ");
 gets	(p1.name);
 strcpy(n1,p1.name);
 strcat(n1," wins!");
 getch();
//outtextxy(10,370,"Player two name: ");
//cout<<"\nPlayer two name: ";
 cout<<"\nPlayer two: ";
 gets	(p2.name);
 strcpy(n2,p2.name);
 strcat(n2," wins!");

 setcolor(BLUE);
 settextstyle(1,0,4);
 while(res==0)
	{puts(p1.name);
	 n = dispBoard(r,1);
	cp=coinPos(n,r);
	if(insRow(n,1,cp,r)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		++res;
		UpdatePStats(p1,'w');
		UpdatePStats(p2,'l');
		break;}
	if(insCol(n,1,cp,c)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		++res;
		UpdatePStats(p1,'w');
		UpdatePStats(p2,'l');
		break;}
	if(insLDia(n,1,cp,ld)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		++res;
		UpdatePStats(p1,'w');
		UpdatePStats(p2,'l');
		break;}
	if(insRDia(n,1,cp,rd)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		++res;
		UpdatePStats(p1,'w');
		UpdatePStats(p2,'l');
		break;}
	clrscr();
	puts(p2.name);
	n=dispBoard(r,2);
	cp=coinPos(n,r);
	if (cp<0)
		{cout<<"\n\n\Please put coin in proper position";
		++res;
		break;}
	if(insRow(n,-1,cp,r)==-1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,GREEN);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n2);
		++res;
		UpdatePStats(p2,'w');
		UpdatePStats(p1,'l');
		break;}
	if(insCol(n,-1,cp,c)==-1)
		{
		drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,GREEN);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n2);
		++res;
		UpdatePStats(p2,'w');
		UpdatePStats(p1,'l');
		break;}
	if(insLDia(n,-1,cp,ld) ==-1)
		{
		drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,GREEN);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n2);
		++res;
		UpdatePStats(p2,'w');
		UpdatePStats(p1,'l');
		break;}
	if(insRDia(n,-1,cp,rd)==-1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,GREEN);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n2);
		++res;
		UpdatePStats(p2,'w');
		UpdatePStats(p1,'l');
		break;}
	clrscr();
	}
 getch();
 winDisp();
 outtextxy(xc,yc-10,"Thanks for ");
 outtextxy(xc,yc+10,"playing!");
}
示例#4
0
/*Checks for winning formations, declares the winner and ends the game. The program also makes a move on its own */
void singlePlayer()
{
 Player p1,p2;
 int r[6][7],c[6][7],ld[6][7],rd[6][7],i,j,res=0,n,win=0,ch,t,cp;
 char n1[20],n2[20];
 for(i=0;i<6;i++)
	{for(j=0;j<7;j++)
		r[i][j]=c[i][j]=ld[i][j]=rd[i][j]=0;}

 cout<<"\nEnter name: ";
 gets(p1.name);
 strcpy(n1,"You win!");
 strcpy(n2,"You lose!");
 while(res==0)
	{
	n=dispBoard(r,1);
	cp=coinPos(n,r);
	if (cp<0)
		{cout<<"\n\n\Please put coin in proper position";
		++res;
		break;}
	if(insRow(n,1,cp,r)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		UpdatePStats(p1,'w');
		++res;
		break;}
	if(insCol(n,1,cp,c)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		UpdatePStats(p1,'w');
		++res;
		break;}
	if(insLDia(n,1,cp,ld)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		UpdatePStats(p1,'w');
		UpdatePStats(p1,'w');
		++res;
		break;}
	if(insRDia(n,1,cp,rd)==1)
		{drawround(n-1,-1,ray,WHITE);
		drawround(n-1,cp,ray,RED);
		delay(DEL);
		winDisp();
		outtextxy(xc,yc,n1);
		UpdatePStats(p1,'w');
		UpdatePStats(p1,'w');
		++res;
		break;}
	clrscr();
	dispBoard(r,0);
	if(winMove(r,c,ld,rd,-1)==1)
		{winDisp();
		outtextxy(xc,yc,n2);
		UpdatePStats(p1,'w');
		UpdatePStats(p1,'l');
		++res;
		break;}
	else if (defMove(r,c,ld,rd,-1)==0)
		{n=genMove(r,c,ld,rd,-1)+1;
		if (n==0)
			{drawround(n-1,cp,ray,GREEN);
			cout<<"\n\nDraw Match!";
			++res;
			break;}
		cp=coinPos(n,r);
		if(insRow(n,-1,cp,r)==-1)
			{drawround(n-1,cp,ray,GREEN);
			delay(DEL);
			winDisp();
			outtextxy(xc,yc,n2);
			UpdatePStats(p1,'l');
			++res;
			break;}
		if(insCol(n,-1,cp,c)==-1)
			{drawround(n-1,cp,ray,GREEN);
			winDisp();
			outtextxy(xc,yc,n2);
			UpdatePStats(p1,'l');
			++res;
			break;}
		if(insLDia(n,-1,cp,ld) ==-1)
			{drawround(n-1,cp,ray,GREEN);
			winDisp();
			outtextxy(xc,yc,n2);
			UpdatePStats(p1,'l');
			++res;
			break;}
		if(insRDia(n,-1,cp,rd)==-1)
			{drawround(n-1,cp,ray,GREEN);
			winDisp();
			outtextxy(xc,yc,n2);
			UpdatePStats(p1,'l');
			++res;
			break;}
		}
	clrscr();
	}
 getch();
 winDisp();
 outtextxy(xc,yc-10,"Thanks for ");
 outtextxy(xc,yc+10,"playing!");
}
tableTemplateWidget::tableTemplateWidget(QWidget *parent) :
  QTableWidget(parent)
{
  templateId = 0;
  numRow = numCol = 0;

  countWords = 0;

  isDirty = false;
  isMaked = false;

  sizeOfTemplate = NULL;

  DRC[0][0] = -1;
  DRC[0][1] = 0;

  DRC[1][0] = 0;
  DRC[1][1] = 1;

  DRC[2][0] = 1;
  DRC[2][1] = 0;

  DRC[3][0] = 0;
  DRC[3][1] = -1;

  intersections[0] = 3;
  intersections[1] = 6;
  intersections[2] = 7;
  intersections[3] = 9;
  intersections[4] = 11;
  intersections[5] = 12;
  intersections[6] = 13;
  intersections[7] = 14;
  intersections[8] = 15;

  fullCell = Qt::yellow;
  emptyCell = Qt::darkRed;

  font.setBold(true);
  font.setFamily("Tahoma");
  font.setPointSize(14);

  actionRmColumn = new QAction("Remove column", this);
  connect(actionRmColumn, SIGNAL(triggered()), this, SLOT(rmColumn()));

  actionInsColumn = new QAction("Insert column", this);
  connect(actionInsColumn, SIGNAL(triggered()), this, SLOT(insColumn()));

  actionRmRow = new QAction("Remove row", this);
  connect(actionRmRow, SIGNAL(triggered()), this, SLOT(rmRow()));

  actionInsRow = new QAction("Insert row", this);
  connect(actionInsRow, SIGNAL(triggered()), this, SLOT(insRow()));

  menu = new QMenu(this);

  if (menu)
    {
      menu->addAction(actionRmColumn);
      menu->addAction(actionInsColumn);
      menu->addSeparator();
      menu->addAction(actionRmRow);
      menu->addAction(actionInsRow);
    }

  setEditTriggers(QAbstractItemView::NoEditTriggers);
  setSelectionMode(QAbstractItemView::ContiguousSelection);

  this->horizontalHeader()->setDefaultSectionSize(40);
  this->verticalHeader()->setDefaultSectionSize(40);

  connect(this, SIGNAL(cellClicked(int, int)), this, SLOT(setClickedCell(int, int)));

  mct = new makeCrosswordThread(wi, this);

  QTextOption to;
  to.setWrapMode(QTextOption::WordWrap);
  to.setAlignment(Qt::AlignJustify);

  printDoc.setDefaultTextOption(to);
  //doc.setDefaultFont(font);
}