Computer Science Canada help? |
Author: | bradyman3 [ Mon Jan 03, 2011 11:05 pm ] |
Post subject: | help? |
I was wondering if you could help me out, I have a code i am working on. Its going to be a 21 game but i would like to create the possibility of all the cards being used and then it will stop the game with multiple players ( not sure how to have multi play, maybe with arrays?). i have the numbers generator working fine, it doesnt use the same number more than 4 times like in a deck of cards, but it seems to get caught up in a executing loop when the total cards used reaches around 32+. There should be a better way to regenerate a used number, maybe increase the number randomization range instead of 1 - 13 to say 1 - 52 (one number for each card)? Thank you for your time, it is appreciated greatly! THE code: var rand_n, ace, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, total, used : int :=0 var card : string := "" loop if not total = 52 then randint(rand_n,1,13) loop used:=0 if ace=4 and rand_n = 1 then loop randint(rand_n,1,3) exit when not rand_n = 1 end loop used:=used+1 end if if two=4 and rand_n = 2 then loop randint(rand_n,1,3) exit when not rand_n = 2 end loop used:=used+1 end if if three=4 and rand_n = 3 then loop randint(rand_n,1,3) exit when not rand_n = 3 end loop used:=used+1 end if if four=4 and rand_n = 4 then loop randint(rand_n,1,3) exit when not rand_n = 4 end loop used:=used+1 end if if five=4 and rand_n = 5 then loop randint(rand_n,1,3) exit when not rand_n = 5 end loop used:=used+1 end if if six=4 and rand_n = 6 then loop randint(rand_n,1,3) exit when not rand_n = 6 end loop used:=used+1 end if if seven=4 and rand_n = 7 then loop randint(rand_n,1,3) exit when not rand_n = 7 end loop used:=used+1 end if if eight=4 and rand_n = 8 then loop randint(rand_n,1,3) exit when not rand_n = 8 end loop used:=used+1 end if if nine=4 and rand_n = 9 then loop randint(rand_n,1,3) exit when not rand_n = 9 end loop used:=used+1 end if if ten=4 and rand_n = 10 then loop randint(rand_n,1,3) exit when not rand_n = 10 end loop used:=used+1 end if if jack=4 and rand_n = 11 then loop randint(rand_n,1,3) exit when not rand_n = 11 end loop used:=used+1 end if if queen=4 and rand_n = 12 then loop randint(rand_n,1,3) exit when not rand_n = 12 end loop used:=used+1 end if if king=4 and rand_n = 13 then loop randint(rand_n,1,3) exit when not rand_n = 13 end loop used:=used+1 end if exit when used=0 end loop elsif total = 52 then put card put skip put ace put two put three put four put five put six put seven put eight put nine put ten put jack put queen put king put skip put total put used put "win!!" Input.Pause cls end if case rand_n of label 1 : card := "Ace" label 2 : card := "Two" label 3 : card := "Three" label 4 : card := "Four" label 5 : card := "Five" label 6 : card := "Six" label 7 : card := "Seven" label 8 : card := "Eight" label 9 : card := "Nine" label 10 : card := "Ten" label 11 : card := "Jack" label 12 : card := "Queen" label 13 : card := "King" label : card := "unknown" end case if card = "Ace" and ace < 4 then ace := ace+1 end if if card = "Two" and two < 4 then two := two+1 end if if card = "Three" and three < 4 then three := three+1 end if if card = "Four" and four < 4 then four := four+1 end if if card = "Five" and five < 4 then five := five+1 end if if card = "Six" and six < 4 then six := six+1 end if if card = "Seven" and seven < 4 then seven := seven+1 end if if card = "Eight" and eight < 4 then eight := eight+1 end if if card = "Nine" and nine < 4 then nine := nine+1 end if if card = "Ten" and ten < 4 then ten := ten+1 end if if card = "Jack" and jack < 4 then jack := jack+1 end if if card = "Queen" and queen < 4 then queen := queen+1 end if if card = "King" and king < 4 then king := king+1 end if total:=ace+two+three+four+five+six+seven+eight+nine+ten+jack+queen+king put card put skip put ace put two put three put four put five put six put seven put eight put nine put ten put jack put queen put king put skip put total put used Input.Pause cls end loop |
Author: | Tony [ Mon Jan 03, 2011 11:28 pm ] | ||||
Post subject: | RE:help? | ||||
There are better ways of picking between two random numbers.
I'm not sure what's going on here, 1..3 is always not 13, isn't it? |
Author: | TokenHerbz [ Tue Jan 04, 2011 1:10 am ] |
Post subject: | RE:help? |
why not try using a record to hold card info, and an array to use that info. It would be alot easier. Look up info on 2Darrays, even just arrays, and also "type" and "record". I think it would be worth your while. |