|
Post by tsh73 on Mar 6, 2023 20:38:20 GMT
Please insert some kind of version info/last date modified in your code So we can see which is last one
|
|
|
Post by plus on Mar 6, 2023 23:54:29 GMT
Re: Solitaire Game Looks and plays pretty well, but 2 gripes: 1. The 6 of Diamonds refused to go onto Black 7 so I might play card(s) underneath. 2. The final run in Solitaire, aren't you allowed to go through every card instead of every 3 cards? 3. Oh yeah, also if you could show a little more of the top of the card underneath so more color and value is shown...
|
|
|
Post by Rod on Mar 7, 2023 8:18:49 GMT
The code in the first post will always be the latest version. I need to add dates and version number. I think the gapping issue and the refusal to move issue are both fixed. I will need to read up on the rules. About the select any card at the end. Surely that means you can always win?
In the latest version it does not show the place holders and circle, I need to make them sprite based and resize them in line with the card size. A job still to do. I will probably also add sprite based numbers so that scoring can be shown more easily.
edit: one card draw is a beginners option, makes it easy, three card draw is the real game.
|
|
|
Post by tsh73 on Mar 7, 2023 18:35:49 GMT
I did downloaded version with comment 'Version 5 posted 6th March 2023
I compared it with previous version I have and it has no difference (TortoiseMerge says me) Trying to play, I got same "refusal to move"
Random clicking on a stack from bottom up (upper right corner of card, even closed ones) ended with stacks merged completely wrong. It happens pretty often May be it does not checks if card is open (face up, not jacket up)?
|
|
|
Post by Rod on Mar 7, 2023 18:58:52 GMT
Will need to test again tomorrow. I have said that the resizing of sprites spoils the collision detection so you need to click top left quadrant of card. But even so in my testing wrong card picks are ignored. Be sure you use the code posted in the first post not the code in the .zip download which I have still to amend when I can get access to my pc.
|
|
|
Post by cundo on Mar 7, 2023 20:43:36 GMT
Yes scaling the sprite doesn't scale the collision box properly IIRC:
|
|
|
Post by cundo on Mar 7, 2023 20:44:42 GMT
Maybe we could ask Carl to take a look at it...
|
|
|
Post by Rod on Mar 8, 2023 9:04:24 GMT
Ok, I see what Anatoly is seeing. If I click on right side of face down cards they get played in error. Not sure why because I trap face down cards and zero the play. Need to reinsert my debugging code!
|
|
|
Post by Rod on Mar 8, 2023 11:44:41 GMT
Ok I changed the logic to be sure column to column changes did not move face down cards. I fixed the vertical gapping and the reserve pile flipping which was why we got the refusal to move issue. I wont say its bug free but it should play nicely now. I am not even sure I will do a drag and drop version. The click to play works well. Also there is animate.bas that is in the download that demos drag and drop. I have added some sprite based numerals and will do a short demo of how to place and manage them. The new code and images are linked in the first post and here
|
|
|
Post by tsh73 on Mar 8, 2023 18:26:40 GMT
I run it a few times "did not move face down cards" looks working OK but things like possibly moving card from column to column sometimes "stuck" after first (or second) move (that is, I move it, and it supposed to be possible to move it back, but it refuses)
Two times I run it to "draw" Third time then it looked promising I got
(of course it died then )
did play a few more times (what is the probability of winning?) Now with Debug On
It died with
then I tried to flip a pile with very little cards left I think (probably from empty position - "O" symbol, not sure)
It ended in sub flipcard cc,f with cc = 0
|
|
|
Post by Rod on Mar 8, 2023 18:51:27 GMT
Sigh, more debugging. I need a big audit trail to see what is going on. It will be something simple.
|
|
|
Post by tsh73 on Mar 8, 2023 19:21:19 GMT
I played until it died with debug print on Last position was - on a pile only 3 card left, so flipping it returned same card Then I used that card to column Then I tried flipping pile, and it died ( It ended in sub flipcard cc,f cc = 0 f=1 )
Here's log of messages it printed
face down zero deckpointer 29 to reserve from deckpointer 29 reserve 1 2 7 to reserve from deckpointer 30 reserve 2 4 1 to reserve from deckpointer 31 reserve 3 1 5 face down zero deckpointer 32 to reserve from deckpointer 32 reserve 2 1 7 to reserve from deckpointer 33 reserve 3 2 8 to reserve from deckpointer 34 reserve 4 4 9 face down zero deckpointer 35 to reserve from deckpointer 35 reserve 5 4 3 to reserve from deckpointer 36 reserve 6 3 1 to reserve from deckpointer 37 reserve 7 1 12 face down zero deckpointer 38 to reserve from deckpointer 38 reserve 8 3 7 to reserve from deckpointer 39 reserve 9 1 2 to reserve from deckpointer 40 reserve 10 2 3 face down zero deckpointer 41 to reserve from deckpointer 41 reserve 11 2 4 to reserve from deckpointer 42 reserve 12 4 4 to reserve from deckpointer 43 reserve 13 1 9 face down zero deckpointer 44 to reserve from deckpointer 44 reserve 8 2 6 to reserve from deckpointer 45 reserve 9 3 3 to reserve from deckpointer 46 reserve 10 2 9 face down zero deckpointer 47 to reserve from deckpointer 47 reserve 11 4 13 to reserve from deckpointer 48 reserve 12 1 6 to reserve from deckpointer 49 reserve 13 1 4 face down zero deckpointer 50 to reserve from deckpointer 50 reserve 14 2 11 to reserve from deckpointer 51 reserve 15 4 8 to reserve from deckpointer 52 reserve 16 4 2 face down zero deckpointer 0 returned 1 20 2 7 to deck deckpointer is at 39 returned 2 7 1 7 to deck deckpointer is at 40 returned 3 21 2 8 to deck deckpointer is at 41 returned 4 48 4 9 to deck deckpointer is at 42 returned 5 42 4 3 to deck deckpointer is at 43 returned 6 27 3 1 to deck deckpointer is at 44 returned 7 12 1 12 to deck deckpointer is at 45 returned 8 19 2 6 to deck deckpointer is at 46 returned 9 29 3 3 to deck deckpointer is at 47 returned 10 22 2 9 to deck deckpointer is at 48 returned 11 52 4 13 to deck deckpointer is at 49 returned 12 6 1 6 to deck deckpointer is at 50 returned 13 4 1 4 to deck deckpointer is at 51 returned 14 24 2 11 to deck deckpointer is at 52 to reserve from deckpointer 39 reserve 1 2 7 to reserve from deckpointer 40 reserve 2 1 7 to reserve from deckpointer 41 reserve 3 2 8 face down zero deckpointer 42 to reserve from deckpointer 42 reserve 4 4 9 to reserve from deckpointer 43 reserve 5 4 3 to reserve from deckpointer 44 reserve 6 3 1 face down zero deckpointer 45 to reserve from deckpointer 45 reserve 5 1 12 to reserve from deckpointer 46 reserve 6 2 6 to reserve from deckpointer 47 reserve 7 3 3 face down zero deckpointer 48 to reserve from deckpointer 48 reserve 6 2 9 to reserve from deckpointer 49 reserve 7 4 13 to reserve from deckpointer 50 reserve 8 1 6 face down zero deckpointer 51 returned 1 20 2 7 to deck deckpointer is at 45 returned 2 7 1 7 to deck deckpointer is at 46 returned 3 21 2 8 to deck deckpointer is at 47 returned 4 48 4 9 to deck deckpointer is at 48 returned 5 12 1 12 to deck deckpointer is at 49 returned 6 22 2 9 to deck deckpointer is at 50 returned 7 52 4 13 to deck deckpointer is at 51 returned 8 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 43 reserve 1 1 4 to reserve from deckpointer 44 reserve 2 2 11 to reserve from deckpointer 45 reserve 3 2 7 face down zero deckpointer 46 to reserve from deckpointer 46 reserve 3 1 7 to reserve from deckpointer 47 reserve 4 2 8 to reserve from deckpointer 48 reserve 5 4 9 face down zero deckpointer 49 to reserve from deckpointer 49 reserve 4 1 12 to reserve from deckpointer 50 reserve 5 2 9 to reserve from deckpointer 51 reserve 6 4 13 face down zero deckpointer 52 returned 1 4 1 4 to deck deckpointer is at 50 returned 2 24 2 11 to deck deckpointer is at 51 returned 3 7 1 7 to deck deckpointer is at 52 to reserve from deckpointer 49 reserve 1 1 6 to reserve from deckpointer 50 reserve 2 1 4 to reserve from deckpointer 51 reserve 3 2 11 face down zero deckpointer 52 returned 1 6 1 6 to deck deckpointer is at 50 returned 2 4 1 4 to deck deckpointer is at 51 returned 3 24 2 11 to deck deckpointer is at 52 to reserve from deckpointer 49 reserve 1 1 7 to reserve from deckpointer 50 reserve 2 1 6 to reserve from deckpointer 51 reserve 3 1 4 face down zero deckpointer 52 returned 1 7 1 7 to deck deckpointer is at 51 returned 2 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 50 reserve 1 2 11 to reserve from deckpointer 51 reserve 2 1 7 to reserve from deckpointer 52 reserve 3 1 6 face down zero deckpointer 0 returned 1 24 2 11 to deck deckpointer is at 50 returned 2 7 1 7 to deck deckpointer is at 51 returned 3 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 50 reserve 1 2 11 to reserve from deckpointer 51 reserve 2 1 7 to reserve from deckpointer 52 reserve 3 1 6 face down zero deckpointer 0 returned 1 24 2 11 to deck deckpointer is at 50 returned 2 7 1 7 to deck deckpointer is at 51 returned 3 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 50 reserve 1 2 11 to reserve from deckpointer 51 reserve 2 1 7 to reserve from deckpointer 52 reserve 3 1 6 face down zero deckpointer 0 returned 1 24 2 11 to deck deckpointer is at 50 returned 2 7 1 7 to deck deckpointer is at 51 returned 3 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 50 reserve 1 2 11 to reserve from deckpointer 51 reserve 2 1 7 to reserve from deckpointer 52 reserve 3 1 6 face down zero deckpointer 0 returned 1 24 2 11 to deck deckpointer is at 50 returned 2 7 1 7 to deck deckpointer is at 51 returned 3 6 1 6 to deck deckpointer is at 52 to reserve from deckpointer 50 reserve 1 2 11 to reserve from deckpointer 51 reserve 2 1 7 to reserve from deckpointer 52 reserve 3 1 6 face down zero deckpointer 0 returned 1 24 2 11 to deck deckpointer is at 51 returned 2 7 1 7 to deck deckpointer is at 52 to reserve from deckpointer 51 reserve 1 2 11 to reserve from deckpointer 52 reserve 2 1 7
|
|
|
Post by Rod on Mar 9, 2023 10:06:51 GMT
Thanks for the help. A simple exit for, while I was dealing the reserve, stopped the error. Code is in the initial post.
|
|
|
Post by tsh73 on Mar 9, 2023 18:35:38 GMT
I found an error preventing columns to move back and forth Here is it:
if c>0 then 'if it is not a reserve card or a base card find which column,which slot we clicked slot=0 for cn=1 to 7 'for sl=1 to 52 'wrong! 'should be: for sl=1 to column(cn,0)
(it manifested in returning for moved card old column, slot because it run till 52, not to column length)
I still cannot win but only because I could not play ;)
|
|
|
Post by Rod on Mar 9, 2023 19:10:53 GMT
Nice, I will update the code. I have won a few times. The trick is to bring base cards back if it allows you to free trapped columns.
I have Blackjack for debugging next!
|
|