Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. The first descent code I wrote in my life

The first descent code I wrote in my life

Scheduled Pinned Locked Moved The Lounge
c++game-devalgorithmsdata-structureslounge
40 Posts 27 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Vasily Tserekh

    yes but that is the same than killing an ant with a bazooka

    P Offline
    P Offline
    Pete OHanlon
    wrote on last edited by
    #15

    Splatting an ant can be great fun.

    *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

    "Mind bleach! Send me mind bleach!" - Nagy Vilmos

    CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier

    A 1 Reply Last reply
    0
    • P Pete OHanlon

      Splatting an ant can be great fun.

      *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

      "Mind bleach! Send me mind bleach!" - Nagy Vilmos

      CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier

      A Offline
      A Offline
      Andrew Rissing
      wrote on last edited by
      #16

      What about the ole' magnifying glass approach? The only downside is that you typically had to look away when it just started to get good.

      1 Reply Last reply
      0
      • L Lost User

        I was able to boil that down to 3 lines. I'd show you the code, but then I'd have to charge you for it. :-D

        C Offline
        C Offline
        Chris Maunder
        wrote on last edited by
        #17

        The correct comeback should be "I can get it down to 3 lines but there's not enough room in the margin to write it".

        cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

        L V 2 Replies Last reply
        0
        • G Gary Wheeler

          My step-dad had a COSMAC ELF[^] single-board computer with 2K RAM on board. We fat-fingered in a 1.5K Tiny Basic interpreter (which took forever). He rigged up a battery backup using an old car battery, which kept the thing alive for months at a time.

          Software Zen: delete this;

          R Offline
          R Offline
          Roger Wright
          wrote on last edited by
          #18

          Gary Wheeler wrote:

          rigged up a battery backup using an old car battery

          Great thought! I considered something like that, but the 8080 needed +5, +12, and -12 Vdc, and it just didn't seem practical at the time. In retrospect, it would have been a heck of a lot cheaper than wasting my time for so many days. :doh:

          Will Rogers never met me.

          G 1 Reply Last reply
          0
          • P PIEBALDconsult

            Mine took 7.5 million years to execute and simply said "42". :-\

            K Offline
            K Offline
            Keith Barrow
            wrote on last edited by
            #19

            Cap duly doffed!

            Sort of a cross between Lawrence of Arabia and Dilbert.[^]
            -Or-
            A Dead ringer for Kate Winslett[^]

            1 Reply Last reply
            0
            • C Chris Maunder

              The correct comeback should be "I can get it down to 3 lines but there's not enough room in the margin to write it".

              cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #20

              Please give yourself 5points for that ;)

              MVVM# - See how I did MVVM my way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')

              1 Reply Last reply
              0
              • C Chris Maunder

                The correct comeback should be "I can get it down to 3 lines but there's not enough room in the margin to write it".

                cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                V Offline
                V Offline
                Vasily Tserekh
                wrote on last edited by
                #21

                hahaahhah, perfect I wish I could vote you up. That remember me when I was in high school back in my home country, in a very selected high school I pissed a friend of mine because I could write an algorithm finding the pithagoric numbers in less lines than him and he was so frustrated that he began making the hole program in one line, but the line was verrrryyy long,

                1 Reply Last reply
                0
                • R Roger Wright

                  Gary Wheeler wrote:

                  rigged up a battery backup using an old car battery

                  Great thought! I considered something like that, but the 8080 needed +5, +12, and -12 Vdc, and it just didn't seem practical at the time. In retrospect, it would have been a heck of a lot cheaper than wasting my time for so many days. :doh:

                  Will Rogers never met me.

                  G Offline
                  G Offline
                  Gary Wheeler
                  wrote on last edited by
                  #22

                  My step-dad's a E.E. and a genuine Renaissance man in terms of being handy at these sorts of things.

                  Software Zen: delete this;

                  R 1 Reply Last reply
                  0
                  • G Gary Wheeler

                    My step-dad's a E.E. and a genuine Renaissance man in terms of being handy at these sorts of things.

                    Software Zen: delete this;

                    R Offline
                    R Offline
                    Roger Wright
                    wrote on last edited by
                    #23

                    Yeah, we E.E.s are handy that way. :-D

                    Will Rogers never met me.

                    1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      Mine took 7.5 million years to execute and simply said "42". :-\

                      R Offline
                      R Offline
                      Roger Wright
                      wrote on last edited by
                      #24

                      After waiting that long, I bet you can't even remember the question correctly... ;P

                      Will Rogers never met me.

                      P 1 Reply Last reply
                      0
                      • R Roger Wright

                        After waiting that long, I bet you can't even remember the question correctly... ;P

                        Will Rogers never met me.

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #25

                        How many whores must a man...? No. How many toads...? Hmmm... I shoulda put it in a comment. :sigh:

                        R 1 Reply Last reply
                        0
                        • P PIEBALDconsult

                          How many whores must a man...? No. How many toads...? Hmmm... I shoulda put it in a comment. :sigh:

                          R Offline
                          R Offline
                          Roger Wright
                          wrote on last edited by
                          #26

                          :laugh: :laugh: :laugh:

                          Will Rogers never met me.

                          1 Reply Last reply
                          0
                          • V Vasily Tserekh

                            This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                            //------Check if in square X;Y a ship can be placed------------------

                            /* x,y: Board coordinates
                            Size: Ship size
                            Pos: posicion (1 horizontal vertical)
                            board: board number
                            */
                            bool TGame::Free(int x,int y,int size,int pos,int board )
                            {
                            int ship[7];
                            int side1[7];
                            int side2[7];
                            bool answer=true;
                            if(aBoard[board]->GetInfo(x,y)!=0)
                            {
                            return answer=false;
                            }
                            if (pos==1)
                            {
                            for(int i=0;i<size+2;i++)
                            {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                            side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                            side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                            }
                            }

                            else
                            { for(int i=0;i<size+2;i++)
                            {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                            side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                            side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                            }
                            }
                            if (x==0 && pos==1)
                            {ship[0]=0;
                            side1[0]=0;
                            side2[0]=0;

                            }
                            for (int i=0;i<size+2;i++)
                            {if (ship[i]!= 0)answer=false;
                            if (side1[i]!= 0)answer=false;
                            if (side2[i]!= 0)answer=false;
                            }
                            return answer;
                            }
                            //------Place a ship in the board-------------------------------------

                            /* Size: Ship size
                            board: Board
                            Ship: Place of the ship in the ship array
                            Type: ship type
                            */
                            void TGame:: RandomShip(int size,int type,int board,int ship)
                            {
                            int pos=random(2);
                            randomize();
                            int x,y;
                            bool answer=false; ;
                            if (pos==1)
                            {
                            while (answer==false)
                            {
                            x=random(11)-size;
                            while(x<0)
                            {x=random(11)-size;
                            }
                            y=random(15);
                            answer=Free(x,y,size,pos,board);
                            }
                            for(int i=0;i<size;i++)
                            {aBoard[board]->SetInfo(x+i,y,type);
                            }
                            }
                            else
                            {
                            while (answer==false)
                            {
                            x=random(10);
                            y=random(16)-size;
                            while(y<0)
                            {y=random(16)-size;
                            }
                            answer=Free(x,y,size,pos,board);
                            }
                            for(int i=0;i<size;i++)
                            {aBoard[board]->SetInfo(x,y+i,type);
                            }
                            }
                            if(board==0)
                            {
                            int ax=Transfo

                            M Offline
                            M Offline
                            Mark_Wallace
                            wrote on last edited by
                            #27

                            Great game, Descent. My first was a database for text scraps, in COBOL.

                            I wanna be a eunuchs developer! Pass me a bread knife!

                            1 Reply Last reply
                            0
                            • V Vasily Tserekh

                              This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                              //------Check if in square X;Y a ship can be placed------------------

                              /* x,y: Board coordinates
                              Size: Ship size
                              Pos: posicion (1 horizontal vertical)
                              board: board number
                              */
                              bool TGame::Free(int x,int y,int size,int pos,int board )
                              {
                              int ship[7];
                              int side1[7];
                              int side2[7];
                              bool answer=true;
                              if(aBoard[board]->GetInfo(x,y)!=0)
                              {
                              return answer=false;
                              }
                              if (pos==1)
                              {
                              for(int i=0;i<size+2;i++)
                              {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                              side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                              side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                              }
                              }

                              else
                              { for(int i=0;i<size+2;i++)
                              {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                              side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                              side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                              }
                              }
                              if (x==0 && pos==1)
                              {ship[0]=0;
                              side1[0]=0;
                              side2[0]=0;

                              }
                              for (int i=0;i<size+2;i++)
                              {if (ship[i]!= 0)answer=false;
                              if (side1[i]!= 0)answer=false;
                              if (side2[i]!= 0)answer=false;
                              }
                              return answer;
                              }
                              //------Place a ship in the board-------------------------------------

                              /* Size: Ship size
                              board: Board
                              Ship: Place of the ship in the ship array
                              Type: ship type
                              */
                              void TGame:: RandomShip(int size,int type,int board,int ship)
                              {
                              int pos=random(2);
                              randomize();
                              int x,y;
                              bool answer=false; ;
                              if (pos==1)
                              {
                              while (answer==false)
                              {
                              x=random(11)-size;
                              while(x<0)
                              {x=random(11)-size;
                              }
                              y=random(15);
                              answer=Free(x,y,size,pos,board);
                              }
                              for(int i=0;i<size;i++)
                              {aBoard[board]->SetInfo(x+i,y,type);
                              }
                              }
                              else
                              {
                              while (answer==false)
                              {
                              x=random(10);
                              y=random(16)-size;
                              while(y<0)
                              {y=random(16)-size;
                              }
                              answer=Free(x,y,size,pos,board);
                              }
                              for(int i=0;i<size;i++)
                              {aBoard[board]->SetInfo(x,y+i,type);
                              }
                              }
                              if(board==0)
                              {
                              int ax=Transfo

                              C Offline
                              C Offline
                              Clumpco
                              wrote on last edited by
                              #28

                              Unfortunately my first decent code is lost forever. It was a game of Reversi/Othello running on a Tandy TRS-80 and which would fit into the default 4kB RAM (yes those are kilobytes). To make it fit I had to do an inordinate amount of variable re-usage and multi-purpose sub-routines, but it worked and could beat an intermediate player. If you gave it a couple of corner squares to start with it would beat anybody. I remember paying £120 to upgrade the RAM to 16 KB so that I could write/run a business simulator - how times have changed... or have they?

                              1 Reply Last reply
                              0
                              • V Vasily Tserekh

                                This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                                //------Check if in square X;Y a ship can be placed------------------

                                /* x,y: Board coordinates
                                Size: Ship size
                                Pos: posicion (1 horizontal vertical)
                                board: board number
                                */
                                bool TGame::Free(int x,int y,int size,int pos,int board )
                                {
                                int ship[7];
                                int side1[7];
                                int side2[7];
                                bool answer=true;
                                if(aBoard[board]->GetInfo(x,y)!=0)
                                {
                                return answer=false;
                                }
                                if (pos==1)
                                {
                                for(int i=0;i<size+2;i++)
                                {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                                side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                                side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                                }
                                }

                                else
                                { for(int i=0;i<size+2;i++)
                                {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                                side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                                side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                                }
                                }
                                if (x==0 && pos==1)
                                {ship[0]=0;
                                side1[0]=0;
                                side2[0]=0;

                                }
                                for (int i=0;i<size+2;i++)
                                {if (ship[i]!= 0)answer=false;
                                if (side1[i]!= 0)answer=false;
                                if (side2[i]!= 0)answer=false;
                                }
                                return answer;
                                }
                                //------Place a ship in the board-------------------------------------

                                /* Size: Ship size
                                board: Board
                                Ship: Place of the ship in the ship array
                                Type: ship type
                                */
                                void TGame:: RandomShip(int size,int type,int board,int ship)
                                {
                                int pos=random(2);
                                randomize();
                                int x,y;
                                bool answer=false; ;
                                if (pos==1)
                                {
                                while (answer==false)
                                {
                                x=random(11)-size;
                                while(x<0)
                                {x=random(11)-size;
                                }
                                y=random(15);
                                answer=Free(x,y,size,pos,board);
                                }
                                for(int i=0;i<size;i++)
                                {aBoard[board]->SetInfo(x+i,y,type);
                                }
                                }
                                else
                                {
                                while (answer==false)
                                {
                                x=random(10);
                                y=random(16)-size;
                                while(y<0)
                                {y=random(16)-size;
                                }
                                answer=Free(x,y,size,pos,board);
                                }
                                for(int i=0;i<size;i++)
                                {aBoard[board]->SetInfo(x,y+i,type);
                                }
                                }
                                if(board==0)
                                {
                                int ax=Transfo

                                J Offline
                                J Offline
                                Jecc
                                wrote on last edited by
                                #29

                                The amazing feeling that was watching Netscape successfully display something served by my own HTTP server. It was a "real program" interacting with something I wrote. And it worked seamlessly!

                                1 Reply Last reply
                                0
                                • V Vasily Tserekh

                                  This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                                  //------Check if in square X;Y a ship can be placed------------------

                                  /* x,y: Board coordinates
                                  Size: Ship size
                                  Pos: posicion (1 horizontal vertical)
                                  board: board number
                                  */
                                  bool TGame::Free(int x,int y,int size,int pos,int board )
                                  {
                                  int ship[7];
                                  int side1[7];
                                  int side2[7];
                                  bool answer=true;
                                  if(aBoard[board]->GetInfo(x,y)!=0)
                                  {
                                  return answer=false;
                                  }
                                  if (pos==1)
                                  {
                                  for(int i=0;i<size+2;i++)
                                  {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                                  side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                                  side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                                  }
                                  }

                                  else
                                  { for(int i=0;i<size+2;i++)
                                  {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                                  side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                                  side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                                  }
                                  }
                                  if (x==0 && pos==1)
                                  {ship[0]=0;
                                  side1[0]=0;
                                  side2[0]=0;

                                  }
                                  for (int i=0;i<size+2;i++)
                                  {if (ship[i]!= 0)answer=false;
                                  if (side1[i]!= 0)answer=false;
                                  if (side2[i]!= 0)answer=false;
                                  }
                                  return answer;
                                  }
                                  //------Place a ship in the board-------------------------------------

                                  /* Size: Ship size
                                  board: Board
                                  Ship: Place of the ship in the ship array
                                  Type: ship type
                                  */
                                  void TGame:: RandomShip(int size,int type,int board,int ship)
                                  {
                                  int pos=random(2);
                                  randomize();
                                  int x,y;
                                  bool answer=false; ;
                                  if (pos==1)
                                  {
                                  while (answer==false)
                                  {
                                  x=random(11)-size;
                                  while(x<0)
                                  {x=random(11)-size;
                                  }
                                  y=random(15);
                                  answer=Free(x,y,size,pos,board);
                                  }
                                  for(int i=0;i<size;i++)
                                  {aBoard[board]->SetInfo(x+i,y,type);
                                  }
                                  }
                                  else
                                  {
                                  while (answer==false)
                                  {
                                  x=random(10);
                                  y=random(16)-size;
                                  while(y<0)
                                  {y=random(16)-size;
                                  }
                                  answer=Free(x,y,size,pos,board);
                                  }
                                  for(int i=0;i<size;i++)
                                  {aBoard[board]->SetInfo(x,y+i,type);
                                  }
                                  }
                                  if(board==0)
                                  {
                                  int ax=Transfo

                                  F Offline
                                  F Offline
                                  Fran Porretto
                                  wrote on last edited by
                                  #30

                                  My first "decent" code? Well that would omit all the programs I wrote to auto-generate porn using nothing but ASCII characters, wouldn't it?

                                  But seriously, it's been so long that my first respectable code is lost to the mists of history, so I'll regale you with the earliest relevant story I can remember: Assembly-language programming on a Data General NOVA 1200.

                                  At the time I worked for a division of General Instrument that no longer exists. It made and sold "payments processing" systems that employed some rather delicate proprietary electro-mechanical "workstations." The principal function of a workstation was to read a "turnaround document:" the sort of paper slip you'd detach from your phone bill -- carefully! You know how treacherous perforations can be! -- and mail back to the phone company with your monthly payment.

                                  The workstation used OCR techniques which, for that era, were pretty sophisticated, but which nevertheless had only about a 90% efficacy rate. There were some turnaround documents the workstation just couldn't read, but which had to be processed anyway. So there was a second device in the system to cover that need: a "key entry station" or KES much like an ASR-33 teletype.

                                  Of course, an operator keying in strings of digits from a turnaround document is even more error-prone than an OCR-capable machine. Therefore, part of the processing of KES input involved verifying it, using check digits buried in the account numbers on the document. There was a large, kludgy module built into the system for that purpose: large, because the system was a patchwork put together by many programmers over many years; kludgy, because none of the people who'd worked on it believed in commenting their code, and all of them feared to delete anything that might be important to someone else...even if it had been definitively obsoleted.

                                  I was young and foolish, back then. I volunteered to redo that module, and was given the green light to do so.

                                  It took awhile, as the NOVA 1200 was a very weak CPU: no hardware multiply or divide; only 32K 16-bit words of memory; only four registers; no hardware stack; and only four addressing modes, all of them extremely weak . Also, the module had to account for a range of check-digit and cross-verification techniques, from which each of our customers selected according to his preferences. But when I was finished, the module was smaller by 40% than its predecessor, and every instruction was commented in actual, legible English.

                                  (In

                                  1 Reply Last reply
                                  0
                                  • V Vasily Tserekh

                                    This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                                    //------Check if in square X;Y a ship can be placed------------------

                                    /* x,y: Board coordinates
                                    Size: Ship size
                                    Pos: posicion (1 horizontal vertical)
                                    board: board number
                                    */
                                    bool TGame::Free(int x,int y,int size,int pos,int board )
                                    {
                                    int ship[7];
                                    int side1[7];
                                    int side2[7];
                                    bool answer=true;
                                    if(aBoard[board]->GetInfo(x,y)!=0)
                                    {
                                    return answer=false;
                                    }
                                    if (pos==1)
                                    {
                                    for(int i=0;i<size+2;i++)
                                    {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                                    side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                                    side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                                    }
                                    }

                                    else
                                    { for(int i=0;i<size+2;i++)
                                    {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                                    side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                                    side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                                    }
                                    }
                                    if (x==0 && pos==1)
                                    {ship[0]=0;
                                    side1[0]=0;
                                    side2[0]=0;

                                    }
                                    for (int i=0;i<size+2;i++)
                                    {if (ship[i]!= 0)answer=false;
                                    if (side1[i]!= 0)answer=false;
                                    if (side2[i]!= 0)answer=false;
                                    }
                                    return answer;
                                    }
                                    //------Place a ship in the board-------------------------------------

                                    /* Size: Ship size
                                    board: Board
                                    Ship: Place of the ship in the ship array
                                    Type: ship type
                                    */
                                    void TGame:: RandomShip(int size,int type,int board,int ship)
                                    {
                                    int pos=random(2);
                                    randomize();
                                    int x,y;
                                    bool answer=false; ;
                                    if (pos==1)
                                    {
                                    while (answer==false)
                                    {
                                    x=random(11)-size;
                                    while(x<0)
                                    {x=random(11)-size;
                                    }
                                    y=random(15);
                                    answer=Free(x,y,size,pos,board);
                                    }
                                    for(int i=0;i<size;i++)
                                    {aBoard[board]->SetInfo(x+i,y,type);
                                    }
                                    }
                                    else
                                    {
                                    while (answer==false)
                                    {
                                    x=random(10);
                                    y=random(16)-size;
                                    while(y<0)
                                    {y=random(16)-size;
                                    }
                                    answer=Free(x,y,size,pos,board);
                                    }
                                    for(int i=0;i<size;i++)
                                    {aBoard[board]->SetInfo(x,y+i,type);
                                    }
                                    }
                                    if(board==0)
                                    {
                                    int ax=Transfo

                                    P Offline
                                    P Offline
                                    pontellen
                                    wrote on last edited by
                                    #31

                                    Just out of college, I wanted to use something from the data structures class so wrote a right-inthreaded binary tree structure by hand to handle a large data set. Each unique number went to it's own leaf with a count. In the end, I could traverse the tree, generating a histogram and various statistics, st dev, etc as desired. I think it was in HP Basic predating the PC era at our workplace.

                                    1 Reply Last reply
                                    0
                                    • V Vasily Tserekh

                                      This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                                      //------Check if in square X;Y a ship can be placed------------------

                                      /* x,y: Board coordinates
                                      Size: Ship size
                                      Pos: posicion (1 horizontal vertical)
                                      board: board number
                                      */
                                      bool TGame::Free(int x,int y,int size,int pos,int board )
                                      {
                                      int ship[7];
                                      int side1[7];
                                      int side2[7];
                                      bool answer=true;
                                      if(aBoard[board]->GetInfo(x,y)!=0)
                                      {
                                      return answer=false;
                                      }
                                      if (pos==1)
                                      {
                                      for(int i=0;i<size+2;i++)
                                      {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                                      side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                                      side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                                      }
                                      }

                                      else
                                      { for(int i=0;i<size+2;i++)
                                      {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                                      side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                                      side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                                      }
                                      }
                                      if (x==0 && pos==1)
                                      {ship[0]=0;
                                      side1[0]=0;
                                      side2[0]=0;

                                      }
                                      for (int i=0;i<size+2;i++)
                                      {if (ship[i]!= 0)answer=false;
                                      if (side1[i]!= 0)answer=false;
                                      if (side2[i]!= 0)answer=false;
                                      }
                                      return answer;
                                      }
                                      //------Place a ship in the board-------------------------------------

                                      /* Size: Ship size
                                      board: Board
                                      Ship: Place of the ship in the ship array
                                      Type: ship type
                                      */
                                      void TGame:: RandomShip(int size,int type,int board,int ship)
                                      {
                                      int pos=random(2);
                                      randomize();
                                      int x,y;
                                      bool answer=false; ;
                                      if (pos==1)
                                      {
                                      while (answer==false)
                                      {
                                      x=random(11)-size;
                                      while(x<0)
                                      {x=random(11)-size;
                                      }
                                      y=random(15);
                                      answer=Free(x,y,size,pos,board);
                                      }
                                      for(int i=0;i<size;i++)
                                      {aBoard[board]->SetInfo(x+i,y,type);
                                      }
                                      }
                                      else
                                      {
                                      while (answer==false)
                                      {
                                      x=random(10);
                                      y=random(16)-size;
                                      while(y<0)
                                      {y=random(16)-size;
                                      }
                                      answer=Free(x,y,size,pos,board);
                                      }
                                      for(int i=0;i<size;i++)
                                      {aBoard[board]->SetInfo(x,y+i,type);
                                      }
                                      }
                                      if(board==0)
                                      {
                                      int ax=Transfo

                                      R Offline
                                      R Offline
                                      Reese Currie
                                      wrote on last edited by
                                      #32

                                      My story is from a long time ago--probably 1989. I'd been hired by a small consulting shop as a COBOL programmer. My favorite language, however, was C and I worked it into my job as frequently as I could. In these days before Perl and Python, all of my quick knock-off "scripts" were C programs. My day-to-day working computer was a Unisys 6000/30 running CTIX, Unisys' version of UNIX System V, and the accounting software. I was connected to it with a dumb terminal; others were connected by dumb terminals or PC's over serial cables. The company charged meticulously for time spent consulting, including phone time. To make tracking that time easier, the boss had installed a phone system that tracked time on incoming calls, and when calls completed, sent the details to a serial printer. The trouble was, the paper would bind up in that printer all the time and calls would end up going uncharged. One day the boss was extra ticked off because the paper had been jammed up for days and no one had noticed. Hm, I thought; it's a serial interface, and the printer was only maybe 8 feet closer to the phone box than the Unisys was, and I had three serial ports free. How about a daemon to poll the serial port and put the results in a file, and eliminate the serial printer? I proposed the idea to the boss and he allowed me to work on it on a low priority basis when client demands allowed. So I figured out how to configure and read serial ports from C, and had my serial printer substitute available in two or three days. The boss and the girls in accounting were extremely happy about it. They requested me to write some utilities to look up particular phone numbers in the file and so forth, all of which I did in C. The cool part, though, was interfacing to the printer, back in a day when you couldn't just look up how to do things on the Net, but had to actually read the voluminous manuals that came with your system and piece the concepts together yourself.

                                      P 1 Reply Last reply
                                      0
                                      • V Vasily Tserekh

                                        This is the first descent code I wrote when I began to make programs, it was in C++ Is about an algorithm to arrangle ships in a classic battleship game, first funcion is to check if a ship can be placed at x;y second is for placing the ship and 3th was for placing all the ships. I was so amazed that the code worked that I felt a joy I only felt few times since then. How about you

                                        //------Check if in square X;Y a ship can be placed------------------

                                        /* x,y: Board coordinates
                                        Size: Ship size
                                        Pos: posicion (1 horizontal vertical)
                                        board: board number
                                        */
                                        bool TGame::Free(int x,int y,int size,int pos,int board )
                                        {
                                        int ship[7];
                                        int side1[7];
                                        int side2[7];
                                        bool answer=true;
                                        if(aBoard[board]->GetInfo(x,y)!=0)
                                        {
                                        return answer=false;
                                        }
                                        if (pos==1)
                                        {
                                        for(int i=0;i<size+2;i++)
                                        {ship[i]=aBoard[board]->GetInfo(x-1+i,y);
                                        side1[i]=aBoard[board]->GetInfo(x-1+i,y-1);
                                        side2[i]=aBoard[board]->GetInfo(x-1+i,y+1);
                                        }
                                        }

                                        else
                                        { for(int i=0;i<size+2;i++)
                                        {ship[i]=aBoard[board]->GetInfo(x,y-1+i);
                                        side1[i]=aBoard[board]->GetInfo(x-1,y-1+i);
                                        side2[i]=aBoard[board]->GetInfo(x+1,y-1+i);
                                        }
                                        }
                                        if (x==0 && pos==1)
                                        {ship[0]=0;
                                        side1[0]=0;
                                        side2[0]=0;

                                        }
                                        for (int i=0;i<size+2;i++)
                                        {if (ship[i]!= 0)answer=false;
                                        if (side1[i]!= 0)answer=false;
                                        if (side2[i]!= 0)answer=false;
                                        }
                                        return answer;
                                        }
                                        //------Place a ship in the board-------------------------------------

                                        /* Size: Ship size
                                        board: Board
                                        Ship: Place of the ship in the ship array
                                        Type: ship type
                                        */
                                        void TGame:: RandomShip(int size,int type,int board,int ship)
                                        {
                                        int pos=random(2);
                                        randomize();
                                        int x,y;
                                        bool answer=false; ;
                                        if (pos==1)
                                        {
                                        while (answer==false)
                                        {
                                        x=random(11)-size;
                                        while(x<0)
                                        {x=random(11)-size;
                                        }
                                        y=random(15);
                                        answer=Free(x,y,size,pos,board);
                                        }
                                        for(int i=0;i<size;i++)
                                        {aBoard[board]->SetInfo(x+i,y,type);
                                        }
                                        }
                                        else
                                        {
                                        while (answer==false)
                                        {
                                        x=random(10);
                                        y=random(16)-size;
                                        while(y<0)
                                        {y=random(16)-size;
                                        }
                                        answer=Free(x,y,size,pos,board);
                                        }
                                        for(int i=0;i<size;i++)
                                        {aBoard[board]->SetInfo(x,y+i,type);
                                        }
                                        }
                                        if(board==0)
                                        {
                                        int ax=Transfo

                                        B Offline
                                        B Offline
                                        BrainiacV
                                        wrote on last edited by
                                        #33

                                        Golly I've written so many, I can't remember. :cool: In high school I wrote a program that would automatically locate roots of an equation. The assignment was to key in the formula and then sit through the output of a FOR/NEXT looking for sign reversals and unless you hit zero, go back over the range where the reversal occurred at a smaller step. I said screw that, and wrote a program the automated the process and used a stack like process to evaluate the list of sign reversals the initial sweep would locate. The math teacher always bitched me out because he thought I should have been staring at formulas in the textbook rather than running down to the computer room and actually putting them to work. :omg: But this time I impressed him and he posted my program on the bulletin board. My first professional program that I wrote that impressed even me, was the one I wrote to process the phone billing tape for corporate headquarters. I had seen the other programmers get bogged down having to do support work every month on previous programs they had written and I vowed never to fall into that trap. To achieve that, I found already existing databases that other departments maintained and tapped into them for the information I needed. I made the processing a double pass, the first to collect charges and the second to divide them up. The "older and wiser" heads told me to just toss in constants, but I wanted something that would self adjust and never need maintenance. In the end, if the program couldn't figure out where a charge was to go, a human couldn't either. Elements that were not recognized were sent to an error report and through that we found the phone company had been over billing us about $5000.00 a month for years. But the feature that really makes me smile was when after I had left the company, they wanted to expand the number of facilities it would generate the department billing for. The person who inherited my program told them to just run the augmented tape through the program and he'd look through the error report to estimate what changes would need to be made. He called me afterwards to tell me the program did not need any changes, it figured it out by itself. I about flew around the room in happiness. :) :) :) :) :)

                                        Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

                                        1 Reply Last reply
                                        0
                                        • R Reese Currie

                                          My story is from a long time ago--probably 1989. I'd been hired by a small consulting shop as a COBOL programmer. My favorite language, however, was C and I worked it into my job as frequently as I could. In these days before Perl and Python, all of my quick knock-off "scripts" were C programs. My day-to-day working computer was a Unisys 6000/30 running CTIX, Unisys' version of UNIX System V, and the accounting software. I was connected to it with a dumb terminal; others were connected by dumb terminals or PC's over serial cables. The company charged meticulously for time spent consulting, including phone time. To make tracking that time easier, the boss had installed a phone system that tracked time on incoming calls, and when calls completed, sent the details to a serial printer. The trouble was, the paper would bind up in that printer all the time and calls would end up going uncharged. One day the boss was extra ticked off because the paper had been jammed up for days and no one had noticed. Hm, I thought; it's a serial interface, and the printer was only maybe 8 feet closer to the phone box than the Unisys was, and I had three serial ports free. How about a daemon to poll the serial port and put the results in a file, and eliminate the serial printer? I proposed the idea to the boss and he allowed me to work on it on a low priority basis when client demands allowed. So I figured out how to configure and read serial ports from C, and had my serial printer substitute available in two or three days. The boss and the girls in accounting were extremely happy about it. They requested me to write some utilities to look up particular phone numbers in the file and so forth, all of which I did in C. The cool part, though, was interfacing to the printer, back in a day when you couldn't just look up how to do things on the Net, but had to actually read the voluminous manuals that came with your system and piece the concepts together yourself.

                                          P Offline
                                          P Offline
                                          PIEBALDconsult
                                          wrote on last edited by
                                          #34

                                          Reese Currie wrote:

                                          the girls in accounting were extremely happy

                                          Oh, that reminds me of the program I wrote for the girl in the college placement office -- she married me. :-D Twenty years and counting. :jig:

                                          R 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups