Skip to main content

Posts

small introduction about graphs (code in c++) what is graph and how to use it.

 the graph can nearly solve any type of complex problem where we have a relationship between data sets. 1. social networks like Facebook friends relationships etc. 2. worldwide web where each page is connected to each other. few other problems can be solved using graphs check out the below link https://jeremykun.com/tag/games-on-graphs/ https://stackoverflow.com/questions/703999/what-are-good-examples-of-problems-that-graphs-can-solve-better-than-the-alterna some really nice videos on the graph -------------------------------------------------------------------------------------------------------------------------------- https://www.youtube.com/watch?v=gXgEDyodOJU   type of graph 1.  Graph Representation part 01 - Edge List      https://www.youtube.com/watch?v=ZdY1Fp9dKzs 2.  Graph Representation part 02 - Adjacency Matrix       https://www.youtube.com/watch?v=9C2cpQZVRBA 3.  Graph Representation part 03 - Adjacency List   ...

React useReducer hook and how to use it in a small and big application

some little intro about  mutation in javascript  //befor starting object are mutable means you can change it //deep copy a object first way //1 const  objectA  =   {  a :   100 ,  b :   100   }; const  objectB  =   {   ... objectA  }; objectB . a  =   200 ; console . log ( objectB ); //2nd const  objectC  =   {   a :  objectA . a ,   b :  objectA . b }; objectC . a  =   1000 ; console . log ( objectC ); console . log ( objectA ); //another way to create deep copy nested object let  nobject  =   {   a :   10 ,   b :   20 ,   c :   {     name :   "manish" ,     age :   21    },   arr :   [ 1 ,   2 ,   3 , ...

starting with three.js and react with a very simple example

 1. three.js is undoubtedly the best library to create interactive content for the web in 3d. link https://threejs.org/ a working sample of three with react can be found below https://stackblitz.com/edit/react-7n5qf9?file=src%2FApp.js why choose threejs 1. lightweight  2.fast 3.big community  https://discourse.threejs.org/ 4. even you can use unity or unreal to publish html5 content but i don't think that would be acceptable in many cases. 5. open-source project. i created a running sample with React  https://stackblitz.com/edit/react-7n5qf9?file=src%2FApp.js

two pointer technique which is used to solve some basic algorithms related question like 2sum, 3sum, and difference of 2 item in a vector equal to given target

the two-pointer technique is a very popular technique to solve some basic problem like just watch this nice video for more information https://www.youtube.com/watch?v=2wVjt3yhGwg&t=174s https://leetcode.com/articles/two-pointer-technique/ 1. Given a  vector  of integers and a target sum returns true if any two elements sum is equal to the target in the given vector bool checkSum(int sum, vector<int> &myVect) {     sort(myVect.begin(),myVect.end());     int i=0,j=myVect.size()-1;     while(j>=i)     {         if(myVect[i]+myVect[j]==sum)         {             return true;         }else if(myVect[i]+myVect[j]>sum)         {             j--;         }else if(myVect[j]+myVect[i]<sum)         {             i++; ...

Reverse a sentence and print each word in reverse order in Javascript

  Reverse a sentence and print each word in reverse order in Javascript working sample https://www.onlinegdb.com/edit/S1qrNPHEw #include <iostream> #include<string> #include <ctype.h> using namespace std; string reverse(string &name) {     string newStr;     int len=name.length()-1;     int track=0;     int count = 0;      for(int i=len;i>=0;i--)     {         int c=name[i];         if (isspace(c))         {                         int start=i;             int end=(name.length())-track;             string temp;             for(int i=start;i<end;i++)             {                 temp+=name[i];       ...

some common recursive problem in c++

//1 check a string is palindrome or not bool checkString(string &name,int start,int end) {     if(start>=end)     {         return true;     }     char a=name[start];     char b=name[end];     if(a==b)     {        return checkString(name,++start,--end);     }      return false;      } //2 get maximum element from a array int getMax(vector<int> &items,int index=0) {     if(index>=items.size())     {         return 0;     }     int current=items.at(index);     return max(current,getMax(items,++index)); } //3 Longest Common Subsequence int LCS(string &str1,string &str2,int a=0,int b=0) {     if(a>=str1.length() || b>=str2.length())     {         return 0;     }     if(str1[a]...

Better object oriented pattern in javascript in so mistakes call be avoided in a better way very simple

check the code below -------------------------------------------------------- https://stackblitz.com/edit/js-9vhtdm?file=index.js   //better ES5 object oriented in es5 //rules  //1. you can pass values in any order //2. default value //3. handle undefined in a better way  throw new Error function   Hero ( obj = undefined ) {      //if object is null return throw a new Error      if ( obj === undefined )      {        throw   new   Error ( "Empty Object" );      }      const   { name , age }= obj      this . name = name ;      this . age = age ; } //now extend myhero class function   Myhero ( obj = undefined )...

Window Sliding Technique is a useful way to solve some problem here is a live example of it

https://www.geeksforgeeks.org/window-sliding-technique/  working example https://www.onlinegdb.com/edit/BJX3JA0Zv code => #include <stdio.h> #include<iostream> #include<vector> using namespace std; //https://www.geeksforgeeks.org/window-sliding-technique/ int Windowslidingtechnique(vector<int> &vec,int element) {      //get sum      int sum=0;      for(int i=0;i<element;i++)      {          sum+=vec.at(i);      }      //sliding window technique      int windowSum=sum;      int maxSum=0;      for(int i=element;i<vec.size();i++)      {          windowSum+=vec.at(i)-vec.at(i-element);          maxSum=max(maxSum,windowSum);      }      return maxSum; } int main() {     vector<int> ve...

Find a triplet that sum to a given value c++ using vector

 working link more solution=> https://www.geeksforgeeks.org/find-a-triplet-that-sum-to-a-given-value/ code https://www.onlinegdb.com/edit/HkS7dTRWP solution below *******************************************************************************/ #include <stdio.h> #include<algorithm> #include<iostream> #include<vector> using namespace std; void triplet(vector<int> &vec,int sum) {     //sort the vector      sort(vec.begin(),vec.end());     int i=0;     int j=vec.size()-1;     while(j>=i)     {         if(vec.at(i)+vec.at(i+1)+vec.at(j)==sum)         {              const int a=vec.at(i);              const int b=vec.at(i+1);              const int c=vec.at(j);              std::cout <<a<<"-"...

A simple binary search tree with generic approach tree can store any type of data. (DFS and BFS)

 1. a binary search tree in c++ using a generic approach with both BFS and DFS approach    working tree    https://www.onlinegdb.com/edit/HkuQLdA-w code=> some properties of binary search tree-> 1. binary search tree is not always a balanced tree.  2. Inorder, traversing gives you sorted data.  3.  best is o(log n) and worst is O(n).  4. left node data is always less than root data and right node data always be greater than root data.  5. red-black tree STL map is a balanced binary search tree. *******************************************************************************/ #include <stdio.h> #include<iostream> #include<queue> using namespace std; template < typename T > class Node {   //can store any type of data private:   //genric data or store any type of data   T data;   //reference of left pointer   Node *left = nullptr;   //reference of right pointer   Node *rig...

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...