Rewrite search and replace - Shivam Pawar

From Scribus Wiki
Jump to navigation Jump to search

Title: Rewrite search and replace Student: Shivam Pawar E-mail: shivampawar11@gmail.com

Abstract:

Implementation of search and replace functions using new algorithms.Also some options should be given to search the current document,all currently opened documents or the documents selected by the user according to what the user wants to do. Content:

I have done a project in programming club at my college that included making a Stock Stimulator .This is a web-based project which simulates the stock market and updates its quotes in real-time(with a max. of 20 min. Delay). The users are provided with some virtual money which they can use to purchase stocks virtually. The gains and losses for each user are accumulated and the ranklist is subsequently generated.

I have coded in C and C++. I am learning to code in python.But I have not used Qt4 till now.I have written a code for the game snake below.Its scoring technique is entirely different.As u go on catching eggs ur speed increases so the score per egg decreases which gives a chellenge to get more score than others .

  1. include<iostream.h>
  2. include<conio.h>
  3. include<graphics.h>
  4. include<dos.h>
  5. include<stdlib.h>
  6. include<stdio.h>
  7. include<time.h>
  8. include<string.h>

class Snake {

int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m;
int stp,egGen;
int xr,yr;
void caught();
public:
 long scr;
int strtX,strtY,endX,endY;
int pos[100][2];
void show();
void init();
void egg();
void transpose();
void gnrtCond();
void gnrtUnCond();
void check();
void checkEgg();
void move();
void chngDir();
void sndEt();
void sndCgt();
int test();
void score();
Snake();
Snake(Snake*);
~Snake();
};

Snake::Snake()

{
}

Snake::~Snake() {

} void Snake::checkEgg() {

if((e1 == p1) && (e2 == p2))
{sndEt();
 egg();
 dly--;
 score();
 n++;
 }

} void Snake::sndEt() {nosound();

sound(2500);
delay(2);
nosound();

} void Snake::sndCgt() {nosound();

for(int x=1000;x>0;x--)
{sound(x);
 delay(1);
 }
nosound();

} void Snake::score() { char *p;

 ltoa(scr,p,10);
 settextstyle(8,0,1);
 setcolor(0);
 outtextxy(585,40,p);
 if(egGen != 1){
 scr = scr + dly / 10;
 }
 ltoa(scr,p,10);
 setcolor(10);
 outtextxy(585,40,p);

} void Snake::gnrtCond() {if(n < 367)

{if(now == 8 && (prev != 8 && prev != 2))
 {pos[0][0] = p1;
  pos[0][1] = p2 - dsp;
  prev = now;
  }
 if(now == 4 && (prev != 4 && prev != 1))
 {pos[0][0] = p1 + dsp;
  pos[0][1] = p2;
  prev = now;
  }
 if(now == 2 && (prev != 8 && prev != 2))
 {pos[0][0] = p1;
  pos[0][1] = p2 + dsp;
  prev = now;
  }
 if(now == 1 && (prev != 1 && prev != 4))
 {pos[0][0] = p1 - dsp;
  pos[0][1] = p2;
  prev = now;
  }

} } void Snake::gnrtUnCond() {

 if( prev == 8 )
 {pos[0][0] = p1;
  pos[0][1] = p2 - dsp;
  }
if( prev == 4 )
 {pos[0][0] = p1 + dsp;
  pos[0][1] = p2;
  }
if( prev == 2 )
 {pos[0][0] = p1;
  pos[0][1] = p2 + dsp;
  }
if( prev == 1 )
 {pos[0][0] = p1 - dsp;
  pos[0][1] = p2;
  }
p1 = pos[0][0];
p2 = pos[0][1];

} void Snake::check() {

if(p1 > endX)
 {p1 = strtX;}
else if(p1 < strtX)
 {p1 = endX;}
if(p2 > endY)
 {p2 = strtY;}
else if(p2 < strtY)
 {p2 = endY;}
pos[0][0] = p1;
pos[0][1] = p2;

for(int i = 1;i < n;i++)

 { if(p1 == pos[i][0] && p2 == pos[i][1])
 {caught();
  break;
 }
}

} void Snake::show() {

 int x = getcolor();
 if(egGen != 1)
 {
 setcolor(getbkcolor());
 setfillstyle(1,getbkcolor());
 fillellipse(v1,v2,yr,yr);
  }
 else
  egGen = 0;
 if(egGen == 2)
  egGen--;
 setcolor(colr);
 setfillstyle(1,9);
 if(now == 8 || now == 2)
  fillellipse(pos[0][0],pos[0][1],xr,yr);
 else if(now == 4 || now == 1)
  fillellipse(pos[0][0],pos[0][1],yr,xr);
 setcolor(x);

} void Snake::transpose() { int i,j,x,y;

  p1 = pos[0][0];
  p2 = pos[0][1];
  if(!egGen){
  v1 = pos[n-1][0];
  v2 = pos[n-1][1];
  }
  else
   egGen = 0;
  for(i = n-1;i >= 1;i--)
  {pos[i][0] = pos[i-1][0];
   pos[i][1] = pos[i-1][1];
  }

} void Snake::move() { int st = 0;

 do{
  if(!kbhit())
  {checkEgg();
   if(!st)
    show();
   else
    st = 0;
   delay(dly/4);
   transpose();
   delay(dly/4);
   gnrtUnCond();
   delay(dly/4);
   check();
  delay(dly/4);
   }
  else if(stp){
  chngDir();
  gnrtCond();
  check();
  show();
  st = 1;
  }
  }while(stp);

} void Snake::init() {time_t tm;

srand(time(&tm));
dsp = 20;
n = 5;
prev = 4;
for(int i = 4;i >= 0;i--)
{pos[i][0] = 201 + (n - i - 1) * dsp;
 pos[i][1] = 301;
 }
 strtX = 21;
 strtY = 21;
 endX = 481;
 endY = 361;
 colr = 14;
 now = prev;
 dsp = 20;
 stp = 111;
 cnt = -1;
 scr = 0;
 dly = 150;
  xr = 3;
  yr = 9;
 egg();
 egGen = 1;
 score();
 int x = getcolor();
 setlinestyle(0,1,3);
 setcolor(15);
 rectangle(strtX-15,strtY-15,endX+15,endY+15);
 rectangle(endX+25,strtY-15,getmaxx()-15,endY+15);
 rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5);
 line(endX+25,strtY+75,getmaxx()-15,strtY+75);
 line(endX+25,strtY+200,getmaxx()-15,strtY+200);
 line(endX+25,strtY+275,getmaxx()-15,strtY+275);
 setlinestyle(0,1,1);
 settextstyle(8,0,1);
 setcolor(11);
 outtextxy(514,40,"SCORE");
 setcolor(14);
 settextstyle(11,0,5);
 outtextxy(524,110," CONTROLS ");
 outtextxy(522,135,"p = PAUSE");
 outtextxy(522,155,"g = RESUME");
 outtextxy(522,175,"e = EXIT");
 outtextxy(513,195,"ARROWS");
 outtextxy(512,205,"    -MOVEMENT");
 setcolor(14);
 settextstyle(4,0,9);
 outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE");
 settextstyle(8,0,1);
 setcolor(x);

} void Snake::caught() {

stp = 0;
sndCgt();

for(int i=0;i<=7;i++)

{if(i%2)
 {setcolor(10);
  outtextxy(512,250,"GAME OVER");
  delay(900);
  }
 else
 {setcolor(0);
  outtextxy(512,250,"GAME OVER");
  delay(500);
 }
 }

sleep(1); } void Snake::chngDir() {int clr;

fillsettingstype *p;
char x = getch();
if(x == 72)
 now = 8;
else if(x == 77)
 now = 4;
else if(x == 80)
 now = 2;
else if(x == 75)
 now = 1;
else if(x == 'e')
 caught();
else if(x == 'p')
{//int y = getcolor();
 int twnkl = 1;
 settextstyle(11,0,9);
 while(1)
 {if(kbhit())
  {int c = getch();
   if(c == 'g')
   {clr = getcolor();
    setcolor(0);
    rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
    outtextxy(endX+60,endY-29,"PAUSE");
    break;
    }
   }
  else
  {if(twnkl%2)
   {clr = getcolor();
    setcolor(10);
    rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
    outtextxy(endX+60,endY-29,"PAUSE");
    setcolor(clr);
     delay(1000);
    }
   else
   {
    clr = getcolor();
    setcolor(0);
    rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
    outtextxy(endX+60,endY-29,"PAUSE");
    delay(1000);
   }
  }
  twnkl++;
 }
   settextstyle(8,0,1);
}

} Snake::Snake(Snake *p) {

*p=NULL;

} void Snake::egg() { do

 {e1 = (rand() % 100) * dsp + strtX;
  e2 = (rand() % 100) * dsp + strtY;
  }while(test());
 int x = getcolor();
 setcolor(7);
 setfillstyle(1,random(15)+1);
 fillellipse(e1,e2,xr+2,xr+2);
 setcolor(x);
 egGen = 2;

} int Snake::test() { for(int i=0;i<n;i++)

 {if(e1 == pos[i][0] && e2 == pos[i][1])
   break;
  if(v1 == e1 && v2 == e2)
   break;
  if((e1 >= endX+1) || (e2 >= endY+1))
   break;
  }
if(i != n)
 return 1;
else
 return 0;

}

void main() {Snake snk;

int gd=DETECT,gm,i,j,k,x,y;
clrscr();
initgraph(&gd,&gm,"E:\Turboc3");
snk.init();
snk.move();
closegraph();
restorecrtmode();
}

This is going to be my first Open Source development program.

I chose this idea because I felt that I can do this project if givan an opporunity.I believe that my implementation is going to solve this problem in a better way and the code will be useful to the open surce community.

I can give all my time and effort to this project as I am very interested in it.I do not have any other commitment during the summer vacations and will be able to concentrate completely on this project.

It will be very helpful to me to be in contact with my mentor and scribus team.I can learn how to write open source code and gain valuable experience by interacting with the team and my mentor.I assure you that I will maintain a good level of communication throughout the project and will regularly give details about the status of the project.