473,386 Members | 1,694 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Finished a "teach yourself" book, what next?

Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?
--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #1
33 2348

"Jacob Oost" <zo**@columbus.rr.com> wrote
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?

C Unleashed, by Richard Heathfield and others, fills a gap between "C for
beginners" and specialised works like "3D graphics in C".

Try writing a few simple 2d games to get into the swing of games
programming. You might find that something like draughts is a bit harder to
write than it looks.
Nov 14 '05 #2
Malcolm wrote:
C Unleashed, by Richard Heathfield and others, fills a gap between "C for
beginners" and specialised works like "3D graphics in C".

Try writing a few simple 2d games to get into the swing of games
programming. You might find that something like draughts is a bit harder to
write than it looks.


Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).

I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #3
Don't know what other programming history you have (just that you're a
geek =) ), so assuming that this is your first language--or at least
first language where the intent is to do more than 50 line
scripts--would be to get some algorithm books and to get a "Programming
for your OS" book. Just getting a hand on creating a window and
plotting pixels or moving a box shape around the window without flicker
can be tough enough when just beginning, without even getting into
complicated math.

Another fun one is a recursive function that will search through all
directories on your computer for a certain file.

-Chris

Nov 14 '05 #4
Chris Williams wrote:
Don't know what other programming history you have (just that you're a
geek =) ),
A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.
so assuming that this is your first language--or at least
first language where the intent is to do more than 50 line
scripts--would be to get some algorithm books and to get a "Programming
for your OS" book. Just getting a hand on creating a window and
plotting pixels or moving a box shape around the window without flicker
can be tough enough when just beginning, without even getting into
complicated math.


I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #5
On Mon, 31 Jan 2005 02:57:33 GMT, Jacob Oost <zo**@columbus.rr.com>
wrote:
Chris Williams wrote:
Don't know what other programming history you have (just that you're a
geek =) ),


A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.
so assuming that this is your first language--or at least
first language where the intent is to do more than 50 line
scripts--would be to get some algorithm books and to get a "Programming
for your OS" book. Just getting a hand on creating a window and
plotting pixels or moving a box shape around the window without flicker
can be tough enough when just beginning, without even getting into
complicated math.


I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.


How broader the base of the pyramid, how higher it can become.

Make sure you keep your base as wide as possible when you start.
Focussing only on one topic right from the beginning will make you a
very narrow minded programmer. There are just to many fields,topics
that intermix...

g00dlUck..

Jig.
Nov 14 '05 #6
jiggly wrote:
How broader the base of the pyramid, how higher it can become.

Make sure you keep your base as wide as possible when you start.
Focussing only on one topic right from the beginning will make you a
very narrow minded programmer. There are just to many fields,topics
that intermix...

g00dlUck..

Jig.

Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #7
Jacob Oost wrote:

I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.


Make that Linear Algebra(Which requires at least 1 calculus as a
prerequisite).

You will really benefit from a structured CS program if you want to do 3D
programming. You can look at my WWW to see the project I just did for my
OpenGL class.
--
WWW: http://haywire.csuhayward.edu/~jwells2
spinmaster ._________________________________________________ ______.
@ |When you are right you cannot be too radical; |
gmail.com |when you are wrong, you cannot be too conservative. MLK|
Nov 14 '05 #8

"Jacob Oost" <zo**@columbus.rr.com> wrote in message
news:XS*******************@fe2.columbus.rr.com...
jiggly wrote:
How broader the base of the pyramid, how higher it can become.

Make sure you keep your base as wide as possible when you start.
Focussing only on one topic right from the beginning will make you a
very narrow minded programmer. There are just to many fields,topics
that intermix...

g00dlUck..

Jig.

Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.


No offense intended, but that attitude makes me
question whether you have sufficient motivation
to learn to become a good programmer. A mere
hundred pages of a single book about a single
topic is an extremely small fraction of what you'd
need study. Especially if one of your goals is
something as complex as 3D graphics.

$.02,
-Mike
Nov 14 '05 #9
Jacob Oost <zo**@columbus.rr.com> wrote:
Chris Williams wrote:
Don't know what other programming history you have (just that you're a
geek =) ),


A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).


Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.

Richard
Nov 14 '05 #10
Jacob Oost wrote:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?


I can only recommend some of what I have read or am reading.1):
* The C Programming Language, 2nd edition, Kernighan and Ritchie
* C Unleashed, Richard Heathfield, Lawrence Kirby, Ben Pfaff,
Jack Klein, et al. (This is one awesome book and is written
by people including c.l.c. regulars.)
* The ISO/IEC 9899:1999 C Standard (Buy the PDF for $18
from here:
http://webstore.ansi.org/ansidocstor...EC+9899%2D1999
) or get the n869.pdf and n869.txt files from one of the
links in my sig.
* Practical C Programming, 3rd edition, Steve Oualline
* Apart from these, there are several good articles
available on the Internet and USENET (all good reading).
There are too many of those to enlist here, so I'll leave that
to Google. (Look for articles by Richard Heathfield,
Chris Torek, Eric Giguere, Bruce Dawson, Peter Seebach,
David Goldberg, etc.)

-----
1) Stay away from anything written by Herb Schildt.
There are innumerable errors in his books (even entire
chapters are wrong!). ("Teach Yourself..." Is that the
one written by the same clown?)
-----

Regards,
Jonathan.

--
C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
C Library: http://www.dinkumware.com/refxc.html
C99 Standard Draft: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n869/
Common C Programming Errors:
http://www.drpaulcarter.com/cs/common-c-errors.php

Email: "jonathan [period] burd [commercial-at] gmail [period] com" sans-WSP

"We must do something. This is something. Therefore, we must do this."
- Keith Thompson
Nov 14 '05 #11
Jacob Oost wrote:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?


Some must-reads are:
- The Practice of Programming, by Kerighan&Pike.

- Code Complete, by Steve McConnell. I haven't read the second edition,
but customer reviews on Amazon indicate that it still is an excellent book.

- Programming Pearls is also very good, but maybe not ideal for beginners?
Bjørn
Nov 14 '05 #12
Jonathan Burd wrote:
Jacob Oost wrote:


<snip>

http://publications.gbdirect.co.uk/c_book/ is something I'm
going through now.

Be warned: It's an old book and not all code may be on par with
the current standard, but it has been made available online for free.

Regards,
Jonathan.

--
Email: "jonathan [period] burd [commercial-at] gmail [period] com" sans-WSP

"We must do something. This is something. Therefore, we must do this."
- Keith Thompson
Nov 14 '05 #13
On Mon, 31 Jan 2005 02:57:33 GMT, Jacob Oost
<zo**@columbus.rr.com> wrote:
Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.
It's both for me <g>.
I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.


Unless you want to stick with one system (Windows, X, whatever) then
look at some of the already written multi-platform graphics libraries
which present a common interface to the application (and like swans
paddle furiously underneath).

If you want X graphics (Linux and other Unices) look at the O'Reilly
books on X programming (they're thick as well!), email me off-group for
some examples of libraries and books (it's off-topic here).

Chris C
Nov 14 '05 #14
On Sun, 30 Jan 2005 22:45:26 GMT, Jacob Oost
<zo**@columbus.rr.com> wrote:
Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).
A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...

(I note your email address, Infocom were the people who did Zork among
others.)
I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.


If you want to do 3D (or even 2D) "real world" type programs then
calculus is rather useful. In fact if you're interested in any
mathematical modelling of "real world" stuff I'd advise it, if only so
you know what other people are talking about!

Writing a raytracer (or interactive games for that matter) is more about
knowing 'tricks' or shortcuts and algorithms than about raw mathematics,
bacause the 'obvious' (to a mathematician) route generally takes ages.
At the very least, you'll need to know about things like Fast Fourier
Transforms and other numerical methods, which aren't likely to be
covered in normal math classes (below degree course level, anyway).

Which is all off topic here, because it's about algorithms rather than
which language they are written in. Some newsgroups which may be more
helpful:

comp.games.development.programming.{misc,algorithm s}
comp.sources.games

Chris C
Nov 14 '05 #15
Chris Croughton <ch***@keristor.net> wrote:
On Sun, 30 Jan 2005 22:45:26 GMT, Jacob Oost
<zo**@columbus.rr.com> wrote:
Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).


A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...


But not, originally, in C. Advent was written in Fortran. The original
Infocom games were written in ZIL, which was a kind of MDL, which was a
Lisp-like language. I've no idea what their 'terps were written in.
Modern ZMachine games are often written in Inform, which is not
Lisp-like at all, but a slightly C-like, somewhat object-oriented
language; modern 'terps are often written in C, and, on-topically, in
theory one could probably write a primitive but conforming 'terp in ISO
C alone.

Richard
Nov 14 '05 #16
Jacob Oost wrote:
Malcolm wrote:
C Unleashed, by Richard Heathfield and others, fills a gap between "C for beginners" and specialised works like "3D graphics in C".

Try writing a few simple 2d games to get into the swing of games
programming. You might find that something like draughts is a bit harder to write than it looks.
Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in

English), and then a text adventure engine (I have never seen the source code for a text adventure yet, I'm curious how they do it, I imagine some kind of multi-branching linked list).

Depends on the text-adventure game. The most common ones are the ones
based on a sort of virtual machine. Then the code is actually written
some sort of language the virtual machine uses. One of the most popular
is Inform, which was sort of reverse-engineered from the system Infocom
(Zork et al) used many years ago.

Naturally, if you are doing your own game, you need not do it that way.
Your goal would be to develop skills, not write games as efficiently
and portably as possible.

Text games are well-suited for this task. You would need to deal with
most of the common software engineering issues: data storage, data
management, input parsing, decision-making, error-handling, all that
good stuff.

Brian

Nov 14 '05 #17
Mike Wahler wrote:
Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.

No offense intended, but that attitude makes me
question whether you have sufficient motivation
to learn to become a good programmer. A mere
hundred pages of a single book about a single
topic is an extremely small fraction of what you'd
need study. Especially if one of your goals is
something as complex as 3D graphics.


I have the sufficient motivation to become a good programmer in software
that interests me, which is mainly graphics. While I do want to learn
more advanced C stuff, I'm not sure I want to go through an 800 page
book on general Linux programming at this moment. What's the harm in
putting it off, especially if it is just "an extremely small fraction"
of what I need to study?

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #18
Richard Bos wrote:
A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.

Richard


I'd like to get it if I can find it for cheap.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #19
Jason Wells wrote:
I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

Make that Linear Algebra(Which requires at least 1 calculus as a
prerequisite).


Actually I'm not in college or anything, I just have some books on
programming. I've learned algebra and calculus, but forgotten a lot of
it. I prefer to study at home rather than in a class room. I've
already learned more in a few weeks than I did in months of classes.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #20
Chris Croughton wrote:
A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...

If it's not readable then screw it. If there's one thing I intend to do
as a programmer it is to make my code readable and easy to upgrade.
(I note your email address, Infocom were the people who did Zork among
others.)

Believe it or not, I only ever got into the graphical Zork games. I
liked the text adventures when I was younger, but now that I've played
so many LucasArts adventure games, it's frustrating to play an adventure
where you can die or make irreparable mistakes.
If you want to do 3D (or even 2D) "real world" type programs then
calculus is rather useful. In fact if you're interested in any
mathematical modelling of "real world" stuff I'd advise it, if only so
you know what other people are talking about!

My problem with math is I tend to quickly forget it after learning. I
took two calculus classes and now I can't do a simple derivative by hand
(though I remember some of the rules for doing it in your head).
Writing a raytracer (or interactive games for that matter) is more about
knowing 'tricks' or shortcuts and algorithms than about raw mathematics,
bacause the 'obvious' (to a mathematician) route generally takes ages.
At the very least, you'll need to know about things like Fast Fourier
Transforms and other numerical methods, which aren't likely to be
covered in normal math classes (below degree course level, anyway).

As computers get faster though, real-time ray-tracing and radiosity
(instead of gimmicks to imitate them) will be standard.
Which is all off topic here, because it's about algorithms rather than
which language they are written in. Some newsgroups which may be more
helpful:

comp.games.development.programming.{misc,algorithm s}
comp.sources.games

Chris C


Hold on, I just finished learning the preprocessor macros! I still
don't know anything about writing "real" programs. Unfortunately my
library is pretty slim on what they offer for programmers, and most of
the books I've seen in stores or have at home are just "this function
does this, and that function does that," with few source examples.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #21
Jonathan Burd wrote:
-----
1) Stay away from anything written by Herb Schildt.
There are innumerable errors in his books (even entire
chapters are wrong!). ("Teach Yourself..." Is that the
one written by the same clown?)


I have "Teach Yourself C in 24 Hours," by Tony Zhang. It was a basic
primer on the language, but not on actual software engineering,
organizing projects, style, etc.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
Nov 14 '05 #22
Jacob Oost <zo**@columbus.rr.com> writes:
Richard Bos wrote:
A few C++ and Java classes, that's it. I'm on C now and I've
forgotten most of what I learned about C++ and Java anyway (except
that I hated Java).

Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.
Richard


I'd like to get it if I can find it for cheap.


There are many resources on the net for finding cheap books.
(I'm afraid comp.lang.c isn't one of them.)

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Nov 14 '05 #23
Jacob Oost wrote:
Jason Wells wrote:
I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

Make that Linear Algebra(Which requires at least 1 calculus as a
prerequisite).


Actually I'm not in college or anything, I just have some books on
programming. I've learned algebra and calculus, but forgotten a lot of
it. I prefer to study at home rather than in a class room. I've
already learned more in a few weeks than I did in months of classes.


The algebra you have learned has very little to do with Linear
Algebra(Matrices)... Maybe you could check out some of the math for
computer graphics books.
--
WWW: http://haywire.csuhayward.edu/~jwells2
spinmaster ._________________________________________________ ______.
@ |When you are right you cannot be too radical; |
gmail.com |when you are wrong, you cannot be too conservative. MLK|
Nov 14 '05 #24
Jacob Oost <zo**@columbus.rr.com> wrote:
Richard Bos wrote:
A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).


Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.


I'd like to get it if I can find it for cheap.


Get this one even if you can find it for the normal price. It's well
worth it.

Richard
Nov 14 '05 #25

"Jacob Oost" <zo**@columbus.rr.com> wrote in message
news:KS*****************@fe2.columbus.rr.com...
Mike Wahler wrote:
Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.

No offense intended, but that attitude makes me
question whether you have sufficient motivation
to learn to become a good programmer. A mere
hundred pages of a single book about a single
topic is an extremely small fraction of what you'd
need study. Especially if one of your goals is
something as complex as 3D graphics.


I have the sufficient motivation


Motivation implies that you're willing to exert
the necessary effort.
to become a good programmer in software
that interests me, which is mainly graphics. While I do want to learn
more advanced C stuff, I'm not sure I want to go through an 800 page
book on general Linux programming at this moment. What's the harm in
putting it off, especially if it is just "an extremely small fraction"
of what I need to study?


I gave my best advice, based upon thirty-five years of
my experiences learning about programming.

Take it or leave it. :-)

-Mike
Nov 14 '05 #26
Jacob Oost <zo**@columbus.rr.com> wrote:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?


I found _A_Book_on_C_ rather interesting, if a tad out of date
(last edition published in 1997, so no C99).

Others have recommened _C_Unleashed_, which is an excellent book
and I'm happy to own my copy.

OT: You want a good algorithm book.

PS: Try ebay and amazon.com for used books, the price is often
cheaper. K&R sells for $42.00 new (Amazon), but the lowest used
price is $24.95. Or try a public library system, if available in
your area. There are often services available at local libraries
to find and borrow books from remote libraries.

--
With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925
Nov 14 '05 #27
In article <95*****************@fe2.columbus.rr.com>, zo**@columbus.rr.com
says...
Jonathan Burd wrote:
-----
1) Stay away from anything written by Herb Schildt.
There are innumerable errors in his books (even entire
chapters are wrong!). ("Teach Yourself..." Is that the
one written by the same clown?)


I have "Teach Yourself C in 24 Hours," by Tony Zhang. It was a basic
primer on the language, but not on actual software engineering,
organizing projects, style, etc.


Perhaps you will be fortunate enough to forget most of that one soon.

--
Randy Howard (2reply remove FOOBAR)
Nov 14 '05 #28
Jacob Oost wrote:
Richard Bos wrote:
A few C++ and Java classes, that's it. I'm on C now and I've
forgotten most of what I learned about C++ and Java anyway (except
that I hated Java).


Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.

Richard

I'd like to get it if I can find it for cheap.

List price is cheap. It's about $40 anywhere you go.

--
Joe Wright mailto:jo********@comcast.net
"Everything should be made as simple as possible, but not simpler."
--- Albert Einstein ---
Nov 14 '05 #29
In article <41***************@news.individual.net>,
Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
Chris Croughton <ch***@keristor.net> wrote:
On Sun, 30 Jan 2005 22:45:26 GMT, Jacob Oost
<zo**@columbus.rr.com> wrote:
> Thanks for the suggestions. I was thinking of writing a program to
> decode the cryptoquip (by counting the occurences of numbers and
> comparing them to a table of the most commonly-used letters in English),
> and then a text adventure engine (I have never seen the source code for
> a text adventure yet, I'm curious how they do it, I imagine some kind of
> multi-branching linked list).
A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...


But not, originally, in C. Advent was written in Fortran. The original
Infocom games were written in ZIL, which was a kind of MDL, which was a
Lisp-like language. I've no idea what their 'terps were written in.


The original code in MDL is, as far as I can tell, still a trade
secret, after more than 25 years.
I have the code for what I know as dungeons, aka Zork on my site.

http://home.hccnet.nl/a.w.m.van.der.horst/games.html

It is in fact a 1991 source intended for MSDOS, but after conversion
to Unix text files, it compiles perfectly on Linux, gcc.
It is a testament to the practical portability of C.
I didn't want to look into the source (I want to play it, and don't
want spoilers) but I didn't need to. So I don't know whether it is
a good idea to study it.

<SNIP>
Richard

--

Groetjes Albert
--
Albert van der Horst,Oranjestr 8,3511 RA UTRECHT,THE NETHERLANDS
One man-hour to invent,
One man-week to implement,
One lawyer-year to patent.
Nov 14 '05 #30
Albert van der Horst wrote:
Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:

.... snip ...

But not, originally, in C. Advent was written in Fortran. The
original Infocom games were written in ZIL, which was a kind of
MDL, which was a Lisp-like language. I've no idea what their
'terps were written in.


The original code in MDL is, as far as I can tell, still a trade
secret, after more than 25 years.
I have the code for what I know as dungeons, aka Zork on my site.

http://home.hccnet.nl/a.w.m.van.der.horst/games.html

It is in fact a 1991 source intended for MSDOS, but after
conversion to Unix text files, it compiles perfectly on Linux,
gcc. It is a testament to the practical portability of C.
I didn't want to look into the source (I want to play it, and
don't want spoilers) but I didn't need to. So I don't know
whether it is a good idea to study it.


The secrets are in the encoded .dat file, so reading the source
won't spoil your fun. At a first glance it seems fairly nicely
organized, but could do with advancing to C89 standards. Lots of
warnings under -ansi -pedantic, but none extremely serious, and the
result compiles and runs under DJGPP/windoze.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson

Nov 14 '05 #31
Albert van der Horst <al****@spenarnc.xs4all.nl> wrote:
In article <41***************@news.individual.net>,
Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
But not, originally, in C. Advent was written in Fortran. The original
Infocom games were written in ZIL, which was a kind of MDL, which was a
Lisp-like language. I've no idea what their 'terps were written in.
The original code in MDL is, as far as I can tell, still a trade
secret, after more than 25 years.


The original code is in ZIL, not in MDL (there are quite a few
differences), and they aren't so much a trade secret as simply lost in
the mist of times.
I have the code for what I know as dungeons, aka Zork on my site.

http://home.hccnet.nl/a.w.m.van.der.horst/games.html

It is in fact a 1991 source intended for MSDOS, but after conversion
to Unix text files, it compiles perfectly on Linux, gcc.
You do realise that the original was in Fortran for a DEC, more than ten
years earlier? A Fortran version is TTBOMK still available from the IF
Archive.
It is a testament to the practical portability of C.


True; the Fortran version is not quite as portable. Never mind the
original Advent: that required you to save a core file if you wanted to
change the settings...

A text adventure is actually a good example of a fairly complex program
that can be written entirely in ISO C, if you don't care about the
looks.

Richard
Nov 14 '05 #32
rl*@hoekstra-uitgeverij.nl (Richard Bos) wrote:
Albert van der Horst <al****@spenarnc.xs4all.nl> wrote:
In article <41***************@news.individual.net>,
Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
But not, originally, in C. Advent was written in Fortran. The original
Infocom games were written in ZIL, which was a kind of MDL, which was a
Lisp-like language. I've no idea what their 'terps were written in.


The original code in MDL is, as far as I can tell, still a trade
secret, after more than 25 years.


The original code is in ZIL, not in MDL (there are quite a few
differences), and they aren't so much a trade secret as simply lost in
the mist of times.
I have the code for what I know as dungeons, aka Zork on my site.

http://home.hccnet.nl/a.w.m.van.der.horst/games.html

It is in fact a 1991 source intended for MSDOS, but after conversion
to Unix text files, it compiles perfectly on Linux, gcc.


You do realise that the original was in Fortran for a DEC, more than ten
years earlier? A Fortran version is TTBOMK still available from the IF
Archive.


Ho-hum. I must correct myself. The original for Dungeon _was_ written in
MDL. The originals for the separate Zorks and subsequent Infocom games
were in ZIL, though, and do appear to be lost rather than kept secret
(as, AFAICT, is the original Dungeon). The Fortran version appears to be
later than that.

Richard
Nov 14 '05 #33
"Albert van der Horst" <al****@spenarnc.xs4all.nl> wrote in message
news:ib********@spenarnc.xs4all.nl...
The original code in MDL is, as far as I can tell, still a trade
secret, after more than 25 years.
I have the code for what I know as dungeons, aka Zork on my site.

http://home.hccnet.nl/a.w.m.van.der.horst/games.html


What does this line mean (from your website):
"My modification to the source code of dungeons are in the public
domain. This mainly amounts to replacing pairs by only and selection a
scroll mode in the Makefile"

--
Mabden
Nov 14 '05 #34

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

60
by: K. G. Suarez | last post by:
Hello everyone. I am new to programming and my uncle gave me a copy of "C For Dummies 2nd Edition". I am up to chapter 9 right now. He probably saw me struggling with "The C Programming...
35
by: pandit | last post by:
is this book good for learning C ? i am a beginning programmer, Kernighan and Ritchie 2e is quite hard on me.
7
by: duli | last post by:
Hi: I would like recommendations for books (in any language, not necessarily C++, C, python) which have walkthroughs for developing a big software project ? So starting from inception, problem...
8
by: ssecorp | last post by:
I first learned about OO from Java. I much prefer to program in Python though. However I am consufed about 2 things. 1. Why do I have to pass self into every method in a class? Since I am...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.