06-26-2006 11:12 AM - edited 06-26-2006 11:12 AM
jasonhill wrote:
<mode grouch="tech geek">
Darn kids. In my day everyone used .rar because .zip did not support disk spanning. Do you remember disk spanning? Gaining popularity. PAH! Regaining, more like.
Fetch me my cane! (and some coffee)
</mode grouch="tech geek">
Message Edited by agill on 06-26-2006 11:13 AM
06-26-2006 01:07 PM - edited 06-26-2006 01:07 PM
Message Edited by Daklu on 06-26-2006 11:08 AM
06-26-2006 02:25 PM
@Daklu wrote:
tst, I've gone through the tutorials (mostly skimmed with periodic in depth reading) and the Connexions tutorial is easily the best. It has a good table of contents making it simple to quickly go to the section of interest. The NI tutorial is pretty good too.
In that case, I'll just leave it in its current order. I'll leave the others in just in case real newbies want more tutorials. BTW, if you'll look at the title page of the cnx tutorial, you'll see it was written by NI.
Anyway, your code was almost fully saved (player.ctl wasn't). To save for a previous version, it's probably best to just open the top level VI and perform a save for previous. It should save all dependencies. No need to save it again.
I really don't think anyone would mock your code. I only gave it a quick look, but I can tell you that it looks very good, appears to be relatively well documented, has coooool icons (don't underestimate that, a lot of us would probably prefer spending most of our development time designing cool icons) and appears to be well structured. I can't comment on functionality, but that's already up to you.
3 points I will make is that those 2 "unstraight" wires in the top level VI really stand out like a clown's nose, that you'd be better off setting the diagram terminals not to appear as icons and that for controls used in more than one VI it would usually be wise to create a typedef.
P.S. Have you seen the BreakPoint? I think you'll like it.
06-26-2006 02:59 PM
06-26-2006 03:41 PM
@Daklu wrote:
Yeah, I almost always try to keep my wires as straight as I can (to the point of spending way more time on the layout than the functionality) -- I'm not sure why I didn't that time. I also thought about the left to right coding standard, but figured bringing a couple wires from the top of the diagram would be easier to read than creating long wires from the left side.
There's no problem with wires coming from the top. I agree that it's better than wires coming all the way from the left. My problem was actually that one of them was also going backwards and the other one was very close to it, so they created clutter. I know what you mean about the layout - I very often spend time on aligning code in different frames of a case structure just so that it would look right. In my defense, I believe it also links the pieces of code better in my mind.
The advantage of a typedef is that changes to it propogate to all your VIs (think what would happen if you wanted to change that radio button to have another option or to rename one of the options). The main (only?) disadvantages are that you end up with another file to manage and that certain things are locked by the typedef and can't be individually modified for each instance. This is more problematic with your UI and with strict typedefs.
06-26-2006 07:29 PM - edited 06-26-2006 07:29 PM
@tst wrote:
The advantage of a typedef is that changes to it propogate to all your VIs (think what would happen if you wanted to change that radio button to have another option or to rename one of the options).
Message Edited by Daklu on 06-26-2006 05:30 PM
06-27-2006 02:11 AM
A typedef is a control, not an entire VI. An example of this would be player.ctl, which is a picture ring typedef (I hope). If you wanted to add another kind of player, you would only need to do it once. If it was a regular control (which it might be, I haven't checked) then you would have to go and change it at each place it's used.
Typedefs make it very easy to work with data through different VIs, because you can keep changing the structure of your data. Enums and clusters work very good with this. Note, however, that if you delete or move stuff in a typedef, LV will try to fix it for you, not always with desirable results and you may not be alerted to it, so you should try sticking to only adding stuff to typedefs, unless you're ready to go through your entire code and make sure it's still OK.
06-28-2006 01:47 PM
First preliminary scoring is coming!!!
I downloaded all the different entries I could find on this thread. I also have a few entries that have been emailed directly to me. I will be running them all against each other in the next few days and posting the preliminary results.
If you have a new version you want included in this scoring, it is probably best to email it to me at tictactoe@ammonsengineering.com to make sure I get it.
My current plan is to run each player matchup 100 times as X and 100 times as O. Right now, I don't plan on breaking any ties until the final scoring.
Bruce
06-29-2006 10:26 PM
06-30-2006 02:36 AM
HI Bruce,
Thanks for the results.
Just a little unsure of what the score is. You say each players plays 500 times against all others as X and then 500 times as O.
So, with 9 players each player should play against 8 opponents(I.e. 8000 matches)
Is the score then the amount of times the player wins or loses?
Sorry for the confusion.