Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - pimathbrainiac

Pages: 1 ... 4 5 [6] 7 8
76
Music Showcase / DaEpicPimathPiano
« on: April 29, 2013, 01:29:20 pm »
With all this talk about a potential trio piece for Dapiano, epic7, and myself, I decided to start a trio piece for us!

Here is a wav of what I have so far (yes, it ends on a long note so it has an ending): https://www.dropbox.com/s/te175aoo61qf3gl/DaEpicPimathPiano.wav

I'll post a score once it is uploaded to Dropbox!

77
General Discussion / Jazz
« on: April 25, 2013, 02:29:12 pm »
We all know what jazz is, right?

That music characterized by swing (sometimes) and lots of sevenths

Discuss your experiences with jazz here (favorite tunes, if you've been in jazz band, etc)



Why? I feel as if jazz is a lost genre of music, there is only 1 jazz station in Atlanta anymore, and most of the songs it plays are from the 70s and before.

78
Miscellaneous / Pimath's Poetry
« on: April 25, 2013, 02:23:43 pm »
I've been posting my poetry on ztrumpet's thread, which is technically his, so I'm creating my own for my works.

Here's a poem to kick off the thread:



Here's one!
There's one!
That's one!
I see one!

One is singular
One thing that's by itself
One is nonspecific
One of those computers on the shelf

One is evil
One must learn the power of the dark side
One is goodness
One must apologize because one lied

One is something
One that did the thing
One unspeakable thing
One thing that is spoken of anyway

THE GAME

79
Site Feedback and Questions / Suggestion: Omnimaga Usergroups
« on: April 19, 2013, 05:17:04 pm »
I noticed that on Cemetech and Ti-Planet there are usergroups that you can be a part of. Not in the sense of moderators and such, but in the sense of groups of users.

Is there any way we can add that to the site?

80
Humour and Jokes / The Rules Game
« on: April 18, 2013, 11:54:31 am »
The object of the Rules Game is simple: win the Rules Game

How? Make rules.

Set-in-stone rules:

You may not make a rule that automatically makes someone win/lose the Rules Game (... wins the game, ... loses the game, "if you do this, you win," etc.)
You may not double-post. period. (even in accordance the the forum rules)
Once someone wins, they will be posted in a winners list in this post, and a new game will start.
You may not comment on other people's rules without posting a rule in the same post (just say "comment:" before you make a comment)
You may not negate other people's rules
Rules remain for the duration of a game. If you don't follow them, you are out.
Edits count as comments
Edits to a violating rule are disallowed unless made before the next rule is made.
You are not allowed to join once the first person is out.
When there are two people left, if no new rule is made within a day of the previous, the person who made the last rule wins!



Winners (so far):

epic7 with: http://ourl.ca/18745/376490


I'll start:

I like poetry
And this is a cool haiku
All rules must be too

81
Axe / [TUTO] How to make get rid of line clipping in Axe!
« on: April 17, 2013, 10:15:53 pm »
Line clipping? I thought that that is a problem being worked on by Runer112 for future versions?

Well, yes, but here's a temporary fix, using trig!

To all those who may spot any error in my trig: please tell me. I'll try to fix it.



Inspiration:

I saw god's (leafy's) Super Hexagon port, and I saw a problem that he listed: The line clipping. I thought to myself: how do I solve this? The answer is by using trig!

Just to show you I'm not crazy: here are some screenies for a very incomplete Super Hexagon engine (I will not continue after this point because I just made it to solve a problem):



Axe trig background:

Trig in Axe is not standard to the trig you learned in school. There are no degrees or radians. There are only sine and cosine functions (of which all normal functions can be derived from). The period of these functions is 256, and the amplitude 128 (signed).
To get a sine of an angle (0-255, not 0-359), it is simply sin(angle)//127 (make sure it is // and not /, due to the output being signed). The same works with cosine.

Since my super hexagon engine is done in polar coordinates, it is easier with this case, but there is only one more step with using

Now: here's some code before I explain how to do stuff (copied from graph-link):

Code: [Select]
.HEXAGON

ExprOn

For(A,0,7)
0ü{A+L}
End

64ü{1+L}

128ü{3+L}

192ü{5+L}

0ü{7+L}

0üXüAüBüCüD
1üF
2üE
65435üW
43üO
0üR

0üGüHüIüJüKüLüMüN

Repeat (getKey(15))
D+EüD
8*(getKey(3)-getKey(2))üC
X+CüX
If (Xùú8)
248üX
ElseIf (Xù255)
0üX
End
If (Dùú2)
254üD
F++
sub(A)
ElseIf (Dù255)
0üD
F++
sub(A)
End
10*cos(X+D)üA
10*sin(X+D)üB
ClrDraw
Pxl-On(47+(A//128),31+(B//128))
Line((7*cos(0*O+D))//128+47,(7*sin(0*O+D))//128+31,(7*cos(1*O+D))//128+47,(7*sin(1*O+D))//128+31)
Line((7*cos(1*O+D))//128+47,(7*sin(1*O+D))//128+31,(7*cos(2*O+D))//128+47,(7*sin(2*O+D))//128+31)
Line((7*cos(2*O+D))//128+47,(7*sin(2*O+D))//128+31,(7*cos(3*O+D))//128+47,(7*sin(3*O+D))//128+31)
Line((7*cos(3*O+D))//128+47,(7*sin(3*O+D))//128+31,(7*cos(4*O+D))//128+47,(7*sin(4*O+D))//128+31)
Line((7*cos(4*O+D))//128+47,(7*sin(4*O+D))//128+31,(7*cos(5*O+D))//128+47,(7*sin(5*O+D))//128+31)
Line((7*cos(5*O+D))//128+47,(7*sin(5*O+D))//128+31,(7*cos(0*O+D))//128+47,(7*sin(0*O+D))//128+31)
sub(B)
DispGraph
End
Return

Lbl A
!If (F^5)
úEüE
End
Return

Lbl B
0üGüHüIüJüKüLüMüNüR
For(K,0,3)
{(2*K)+L}üH
{(2*K)+1+L}-6ü{(2*K)+1+L}
{(2*K)+1+L}/2üG
If (G÷7)
0ü{(2*K)+1+L}
{(2*K)+1+L}/2üG
End
For(L,0,5)
(G*cos(L*O+D))//128+47üI
(G*sin(L*O+D))//128+31üJ
(G*cos((L+1)*O+D))//128+47üM
(G*sin((L+1)*O+D))//128+31üN
If ((J<<0) and (N<<0))
ElseIf (J<<0)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
0üJ
ElseIf (N<<0)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
0üN
End
If ((J>>63) and (N>>63))
ElseIf (J>>63)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
63üJ
ElseIf (N>>63)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
63üN
End
!If (H=L)
Line(I,J,M,N)
End
End
End
Return

We are only concerned with this segment of code:

Code: [Select]
Lbl B
0üGüHüIüJüKüLüMüNüR
For(K,0,3)
{(2*K)+L}üH
{(2*K)+1+L}-6ü{(2*K)+1+L}
{(2*K)+1+L}/2üG
If (G÷7)
0ü{(2*K)+1+L}
{(2*K)+1+L}/2üG
End
For(L,0,5)
(G*cos(L*O+D))//128+47üI
(G*sin(L*O+D))//128+31üJ
(G*cos((L+1)*O+D))//128+47üM
(G*sin((L+1)*O+D))//128+31üN
If ((J<<0) and (N<<0))
ElseIf (J<<0)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
0üJ
ElseIf (N<<0)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
0üN
End
If ((J>>63) and (N>>63))
ElseIf (J>>63)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
63üJ
ElseIf (N>>63)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
63üN
End
!If (H=L)
Line(I,J,M,N)
End
End
End
Return

Simply put: This is the display routine for incoming sprites. If it sees a line that is clipped, it fixes it.

This is the first little bit of code:

Code: [Select]
(G*cos(L*O+D))//128+47üI
(G*sin(L*O+D))//128+31üJ
(G*cos((L+1)*O+D))//128+47üM
(G*sin((L+1)*O+D))//128+31üN

It does the polar to rectangular conversion.

G is the radius, L*O is the angle of one point relative to D (which rotates everything, so it is added here), and (L+1)*O is the other

The 47 and 31 are the coordinates for the center of the screen (the origin)

Code: [Select]
If ((J<<0) and (N<<0))
ElseIf (J<<0)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
0üJ
ElseIf (N<<0)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
0üN
End
If ((J>>63) and (N>>63))
ElseIf (J>>63)
J*sin(O-(448-(L*O+D)))//127//sin(64-(O-(448-(L*O+D))))//127+IüI
63üJ
ElseIf (N>>63)
N*sin(O-(448-((L+1)*O+D)))//127//sin(64-(O-(448-((L+1)*O+D))))//127+MüM
63üN
End

This is the meat of the routine. It checks if an endpoint is out of bounds (and it both are, it does nothing) (Note: This routine was written for the top and bottom of the screen to be checked, but not the sides. It follows pretty much the same process, only the coordinates are flipped and 448 is 364)

The key is the law of sines: There is a triangle formed by the top border of the screen, the vertical line of the x coordinate of the point off-screen, and the line that is being clipped. By using this (the formula above) we can calculate the x coordinate of the point on the line that is at y=0

That is all. Remember to find your angles first if you are using rectangular coordinates. If you don't feel that I explained it well enough, please let me know and tell me what I need to explain.

82
TI Z80 / [TI-Concours Axe round one] AHELI04
« on: April 15, 2013, 02:30:06 pm »
Well, I've been asked for a screenie, so here is one of my game:



It's not much, but I enjoyed programming it.

83
Other Calculators / JFTHOI (Just For The Heck Of It) Axe Contest!
« on: April 14, 2013, 09:15:02 pm »
With all these fancy contests around (with prizes and such), I thought it would be nice to see a contest. Just a contest. Nothing but a contest. No prizes. Just for the heck of it.

The rules are simple:

Make an Axe program that will amaze (you must not have been working on it before now). It can be math, games, whatever. Just do whatever inspires you.
Tell me what it will be on this thread. I will add you to the list of contestants.
Program it. You may not release source or binaries until the due date (screenies okay, though).
Have fun!  Your job is to make others like your project.
You may use axioms, but you may not create your own specifically for this task.
You may use external ASM code, but you may not create your own specifically for this task.

Due date: 12:00 AM on May 27, 2013

How to win: Community votes. I'll put a poll up and have a topic with all the files attached. The person with the most votes by June 1st wins!

Known Competitors:

Matrefeytontias

Ki1o

84
Other Calculators / First Experience With Calc Programs/Programming
« on: March 27, 2013, 10:16:26 pm »
So... Everything has a beginning.

My story:

One day, I was tired of playing Block Dude, and I decided to google games for the TI-84 (I figured TI-Connect had to be useful SOMEhow). Anyways, I found TICalc, did some stuff, started programming Axe, and a year later came here for help with a year-long project of mine (AxeChess).

That's my beginning, what's yours?

85
Computer Programming / Creating .8xp programs (Axe) in Java
« on: March 26, 2013, 12:36:44 pm »
Does anybody know how to do this?

I am trying to make a program that will convert some stuffs to an Axe program, but I don't know how to create .8xp programs in Java.

86
In the tradition of ThePenguin77 and Hayleia, I am making my grayscale EPIC!!!

So... Wabbit does not like my code :P, but it works on my calc, so hopefully it will work on yours!

Attached is the source (84+), to make it 83+, calculate the values necessary as shown in the tutorial. Speaking of which, here is my explaination/tutorial!:

First: let's start with the interrupt speeds:

Speed // 83+ // 84+
0 // 560 Hz // 512 Hz
2 // 248 Hz // 228 Hz
4 // 170 Hz // 146 Hz
6 // 118 Hz // 108 Hz

With multiple interrupts running at multiple speeds, you can have more data points than just one interrupt!

The problem: how do you make the data points sync up?

Here's how (set up for a basic RPG engine with only one 12*8 tilemap) (please excuse the direct cut-and-paste from graph link):

Code: [Select]
.CC

51.000üE
0.000üF
108.000üJ
0.000üT
0üX
0üY
0üA
0üB

J/*EüF
0.211üK
0.474üI
0.740üL


FnOff

ClrDrawõõ

[010101010101010101010101]üGDB1
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]

[0000000000000000]üPic1
[FFFFFFFFFFFFFFFF]

For(Z,0,11)
For(Á,0,7)
Pt-On((Z*8),(Á*8),(8*{(Á*12)+Z+GDB1})+Pic1)õ
End
End

fnInt(DG,0)
fnInt(DH,6)
fnInt(DI,4)
fnInt(DJ,2)
Pause 200
While 1
If (getKey(54))
E-0.100üE
If (E÷49.000)
65.000üE
End
J/*EüF
0.000üT
Pause 200
End
If (getKey(55))
E+0.100üE
If (Eù66.000)
50.000üE
End
J/*EüF
0.000üT
Pause 200
End
getKey(3)-getKey(2)üA
getKey(1)-getKey(4)üB
FnOff
X+AüX
Y+BüY
ClrDraw
Pt-On((X/2),(Y/2),8+Pic1)
FnOn
EndIf getKey(15)
LnReg õ
Return

Lbl DG
T+KüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DH
T+1.000üT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DI
T+LüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DJ
T+IüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Let's run through that code block by block:

Code: [Select]
51.000üE
0.000üF
108.000üJ
0.000üT
0üX
0üY
0üA
0üB

J/*EüF
0.211üK
0.474üI
0.740üL

Variable declarations. Notice how almost everything is an 8.8 fixed point number. Why? Because of the way the interrupts will work. (basically, the 108Hz interrupt is the main one, (1 is added to the counter, T, every time it is called), and K, I, and L are the values added to the counter every time a different interrupt is called). K, I, and L are J/value, where value is the Hz for the other interrupts. J is the Interrupt 6 value. Change these to be what is needed for the 83+ models (round to 3 decimal places) using the calculation I just said. F is the target for the counter, and E is the target framerate.

Code: [Select]
[010101010101010101010101]üGDB1
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]
[010101010101010101010101]

[0000000000000000]üPic1
[FFFFFFFFFFFFFFFF]

Same old stuff for an RPG (tilemap and sprites)

Code: [Select]
For(Z,0,11)
For(Á,0,7)
Pt-On((Z*8),(Á*8),(8*{(Á*12)+Z+GDB1})+Pic1)õ
End
End

Drawing the back buffer once (just as an example, put this in a subroutine if you wish)

Code: [Select]
fnInt(DG,0)
fnInt(DH,6)
fnInt(DI,4)
fnInt(DJ,2)

Setting up the interrupts

Code: [Select]
Pause 200
While 1
If (getKey(54))
E-0.100üE
If (E÷49.000)
65.000üE
End
J/*EüF
0.000üT
Pause 200
End
If (getKey(55))
E+0.100üE
If (Eù66.000)
50.000üE
End
J/*EüF
0.000üT
Pause 200
End
getKey(3)-getKey(2)üA
getKey(1)-getKey(4)üB
FnOff
X+AüX
Y+BüY
ClrDraw
Pt-On((X/2),(Y/2),8+Pic1)
FnOn
EndIf getKey(15)
LnReg õ
Return

The main body of the code. There are adjustments using 2nd and mode (1/10 hz adjustments), and the ability to move a block around the screen.



Now for the interrupts:

Code: [Select]
Lbl DG
T+KüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DH
T+1.000üT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DI
T+LüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Lbl DJ
T+IüT
If (TùF)
DispGraphõ
0.000üT
End
Return

Here's what they do: They add their respective values to the counter, and then they see if the counter is greater than or equal to the target counter. If so, the the screen is drawn, and the counter is reset



Long story short: The faster interrupts are fractions of the longer interrupt, and they add to the counter smaller amounts for accuracy. Because there are more times the counter is incremented, the frame rate is more accurate.



I hope this helps! And may the grayscale be with you! ;D

87
Axe / [semi-tuto] "beautiful" grayscale without interrupts
« on: March 22, 2013, 10:07:36 am »
Hayleia recently posted this: http://ourl.ca/17145

It got me thinking: how do I make a "more precise" method for greyscale and I came up with a semi-solution (no interrupts necessary!)



This is a calibration screen. At the end it prints the number to put in A, which is a semi-timer variable.

When I say semi, that means that the ability to do this has completely to do with the time the program takes to run (A is about 12 on my calc, but about 150 or 75 is needed for wabbit in my case.)

This works with 3 and 4 level grayscale, as shown with my screenie.

Without further ado: my code!

Code: [Select]
.AA

12->A
0->C
0->B

[FFFFFFFFFFFFFFFF]->Pic1

ClrDraw(rr)
For(X,0,11)
For(Y,0,7)
Pt-On(X*8,Y*8,Pic1)(r)
End
End

Repeat (getKey(54))
If (getKey)
Pause 250
End
getKey(4)-getKey(1)->B
A+B->A
If (A=0)
255->A
End
If (A=256)
1->A
End
C++
If (C->A)
DispGraph(r)
0->C
End
End
DispGraphClrDraw(rr)
ClrHome
Output(0,0,A>Dec)
Repeat (getKey(15))
End

The "sweet spot" A depends on the calculator and how quickly the program loops in its normal state, as well as how often you need to refresh the screen.

Possible use: pic viewers

Maybe possible use: non-action games (like chess)

Not possible use: action games

I hope this is helpful!

88
Math and Science / Calculus AB in Short
« on: March 06, 2013, 03:25:15 pm »
Soooo... my calc class ended all new stuffs with IBP ;D

Here is my (totally NOT objective version of calc AB)

So you start out learning about limits and stuff (Easy, right? Been doing that since algebra II)

And then you get to the limit definition of a derivative: lim(dx->0) | (f(x+dx)-f(x))/(dx)
It was in hindsight, easy, but seemed hard at the time

Then we learned power rule (dropping the power, reducing the power, etc.) (made life easy for about a day)

Then product rule (easy), then quotient rule (OMG HARD TO REMEMBER), then chain rule (thank you calc teacher for making stuff easier!)

Then trig derivative stuffs (medium difficulty), Then inverse trig (OMG HARD again), then safety until...

Spoiler For until:
RELATED RATES!!!
(the calculus devil in disguise)

Then optimization (hard, but sooooo much easier than the previous)

Then powers/logs in derivatives (okay, just another formula)

Then we go away for winter break...

(to be continued in 2 days (reduced form of 2 weeks anticipation))

89
Computer Programming / Game Engines in Java
« on: March 06, 2013, 03:07:40 pm »
Hey, are there any good/easy to use Java game engines out there other than JMonkey out there?

I don't want to use JMonkey because it requires jdk 6, and I have jdk 7, and I don't want to downgrade...

90
Humour and Jokes / Epic Rap Battles of Omnimaga [ERBO]
« on: March 04, 2013, 12:39:49 pm »
I have an idea for an epic rap battles tournament here on Omni! Anyone in???

Similar to ERB on Youtube, but between Omni members, bracketed up, to decide who is the rap king of Omni!

How? An IRC room, of course! (spectators can not talk during rap battles)

All raps will be freestyle based on what the other person said before.

One person does a verse of 8 lines, then the other person, and it goes back and forth four times. Winners decided by votes afterwords!



Are you in?


People who are in so far:

epic7
ruler501
Freyaday
Sorunome
blue_bear_94
turiqwalrus
pimathbrainiac (me (why not? winning is decided by community votes!))
Homer-16

IDK if they are in or not:

Juju

Pages: 1 ... 4 5 [6] 7 8