But I get slightly annoyed when in the rules of a contest, something like, "Assembly isn't allowed, but assembly utilities are allowed", is said. Which assembly utilities? When do you draw the line? What if I made an "assembly utility" that generated a rain affect based on different parameters passed through TI-BASIC variables or something? It's not a big deal, but it just get's me slightly annoyed.
EDIT: I suppose there is a reasonable amount of time for the contest, but unfortunately, for the next two weeks, I have a lot of work to do, so I may not be able to participate.
I may have misunderstood you, but it seemed to me as if you were saying that C was an object-oriented langauge. C isn't an object-oriented language; C++ is an object-oriented language.
Here's a horribly tutorial that I just quickly made that I based off of some of my sloppy code:
PHP Paging Basics
About
OK, here's something I just slopped up after I made a basic paging system because I felt like it. Well, it started like this (if you aren't interested, skip down to where it says "Introduction"):
I was typing up some spanish homework, and not having all of the needed characters, I searched Google for "unicode characters." I found some results, and got what I needed. But, I decided to make a PHP web page that displayed all of the unicode characters from 0 to 1423, which seemed to cover all of the important ones. So, I made it. But, I never made anything that was used a "paging system" before, so I decided to make it use a paging system, and, well, I had had a unicode character displayer that used a PHP paging system. After that, I decided to make this tutorial for other who want to make a basic PHP paging system but need some help.
Introduction
What is a "paging system"? Well, as far as I know, it's not an official term or anything, just a way that coders refer to how parts of data can be displayed be selecting different "pages" of it. This tutorial will hopefully teach you the basics of how to make one. Note that I expect that you know the basics of HTML and PHP.
What We Need to Do
OK. We want the user to click on a number, and it displays the corresponding data on that page. For a little bonus, and because I already did it anyway, and also because many paging systems are "dynamic", or dealing with data that is usually changing in content and size, I'm going to add another feature. This doesn't really help with making paging systems with dynamic data, since the unicode characters aren't changing and more aren't being added (well, maybe some are being added, but we're only dealing with the first 1424 ones) or being taken out, but...whatever.
So, the thing that I'm going to add is a little textbox that lets the user input the amount of pages to use.
The Code
It's not very large, so I might as well post it all now:
Yeah, I know it's not all XHTML-compliant, the variable's aren't named very well, and it's sloppy and skimpy, but bare with me; this wasn't originally meant for a tutorial. Maybe if I, or somebody else, feels like it, I/he/she can improce the code.
The Explanation
Blah who cares about the HTML. Let's get to the meat of the code. Actually, part of the HTML is actually interesting, so
let's take a look at it:
c1
-->
CODE
ec1
c2
ec2
The fieldset stuff just makes it look nice. So yeah, we have our textbox where the number of pages, which in this case has the id and name of "chars" (oh and by the way, I just like giving it an identity and a name ). Then we have our submit button, called "submit", and our hidden input thingy "p" which contains the detault page number.
OK, now here is the juicy stuff. The first line of code above makes $a contain the beginning of the data, or the unicode character number, to display. It contains the page minus one because to get the first page, it would start with the "0th" piece of data, but I personally would rather click a "1" for the first page than a "0." It is multiplied by 1424 because 1424 is the amount of unicode characters. It is divided by $per because that is the amount per page. That was probably kind of confusing, but thing about it like this, if it helps:
You have ten apples (or 1424 unicode characters), and you divide them into five groups (or $per pages), and put each of the groups next to each other. There are two apples per group (1424/$per would equal 2 if $per equalled 1212). To access the first group, you would access the (1-1)*(10/5) apple, or the 0th apple. The next group wold start with the (2-1)*(10/5) apple, or 2nd apple.
well, I hope that little analogy helped. If it didn't, then I'm sorry. Somebody else might be able to explain it better.
The second line in the code right above, or c1
-->
CODE
ec1$a = (int)$a;c2
ec2, converts a to an integer in case it's a fraction,
because the is no unicode character number 4.562345435 or something like that.
The third line, or c1
-->
CODE
ec1$b = $p*(1424/$per);c2
ec2 contains the end of that page. If you noticed, I didn't subtract 1 from
$p that time, because it contains the end of that page, or the beginning of the next section.
After that, I converted $b into an integer in case it was a fraction.
Well, I don't want to make a new thread for every little new TI-83+ TI-BASIC program I make, so I'll just post this in this thread (besides, it is part of it is related to Text Tools). Anyway, I made a horizontal scrollbar program (although I still like my vertical scrollbar program better) and an ellipse-type effect thingy (there has got to be a better way to express what I mean). Here are some screenshots of the "ellipse-type effect thingy":
I don't have any screenshots of my horizontal scrollbar program, yet. I'll try to put them both up to download sometime.
I also made two tile-mapping engines which were both pretty fast but not very sophisticated. My TI-84 Plus Silver Edition reset yesterday. (I was the one who reset it actually. I was testing Text Tools, and accidentally used the tool that displays part of Str1 and beyond to display the whole Str1 and the next few thousand characters or something because the amount of characters to be displayed is stored in the variable A, and I accidentally put a very large number in A. So, being a TI-84 Plus Silver Edition n00b, I thought that the silver oxide battery in it would retain the calculator's RAM while I took out one AAA battery to stop the program, but it reset the RAM)
I started with machine code and worked my way down.
I recommend starting with TI-BASIC, or C if you think you can handle it (the basic stuff in of course isn't that hard because it is basic >.<, no, not TI-BASIC :Oo:, but it gets harder...). For calculator programming, here's the route I went, which you probably won't want to do, because things are mixed up and not in the way they should be, such as TI-83+ Assembly before TI-83+ TI-BASIC (note that this is in the order which I first started actually programming in these languages):
It would be nice if the code could also be outputted to the clipboard. What would also be great, particularly for tile-mapped platformers or RPGs, such as Omnimaga - The RPG, if it could generate the source code for each sprite in a sprite sheet.
This is looking wonderful, and I really hope this gets finished.
What do you think of it? I'm probably going to make the assembly program a completely different thing, and call it "randLIB" because it's just going to have a bunch of apparently random functions. I'm probably going to get rid of the 2ND tool, the one that displays part or more of Str1, because it is just bad, and could be modified to be something better and different.
I know I haven't been making much progress on this lately, and I'm sorry . Part of this is that #tigcc was done for a while, and then when it started working again, I was banned from there. Part of this is that I have been working on other projects. But I will try to finish this, and I really don't want this project to die.
Thanks for the sprites, xlibman . What size are those, though? Also, there has got to be a program that converts that tilemap sheet to a bunch of separate tiles, and possibly even generates the C code for them too, which would be great. Would anybody know of this program, if it exists?
Not that xlibman's spritesheet was bad, but sprites are still welcome .