/*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); }
/*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); }
/*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!"); }
/*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); }