Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  2. && ADDING THE TAFEL CONTROLS TO THE FORM
  3. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  4.  
  5. LOCAL lnNumbers AS Integer, lnY, llOmgedraaid, lnRand, lnRand2
  6. DIMENSION laTafels[THISFORM.lnvragen,3], laRand[ALEN(laTafels),3], laUsedTafels[thisform.lntafel,3]
  7.  
  8. lnNumbers    = 0               
  9. lnY          = 1               
  10. llOmgedraaid = .F.             
  11. lnRand       = 0               
  12. lnRand2      = 0               
  13.                                
  14. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  15. && IF THE USER CHECKED THE OPTION
  16. && TO PRACTICE EVERY TAFEL     
  17. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  18.    
  19. FOR lnX = 2 TO THISFORM.lntafel
  20.     laUsedTafels[lnX-1,1] = lnX
  21.     laUsedTafels[lnX-1,2] = 0
  22.     laUsedTafels[lnX-1,3] = 0
  23. ENDFOR
  24.  
  25.  
  26. && Initialize values
  27. && lnAvg
  28. &&
  29. lnAvg = THISFORM.lnvragen / THISFORM.lntafel
  30. lnCurrentTafel = 2
  31. lnTeveelVragen = (lnAvg - FLOOR(lnAvg)) * THISFORM.lnTafel
  32. lnAvg = FLOOR(lnAvg)
  33. lnCheatVraag = 1
  34. lnAvgOmgedraaid = lnAvg / 2
  35. llOmgedraaid = .F.
  36.  
  37. IF !THISFORM.llelketafel THEN
  38.     lnCurrentTafel = THISFORM.lntafel
  39. ENDIF
  40.  
  41. FOR lnX = 1 TO THISFORM.lnvragen
  42.  
  43.     && Generate random number
  44.     lnRand = INT(VAL(RIGHT(TRANSFORM(RAND()*SEC(DATETIME())),1)))
  45.     IF lnRand == 0 THEN
  46.         lnRand = 10
  47.     ENDIF
  48.    
  49.     && Add exceptions to the random number
  50.     Do Case
  51.     CASE lnRand == 0
  52.         lnRand = 10
  53.     CASE lnRand == 1
  54.         lnRand = 2
  55.     EndCase
  56.    
  57.     IF !THISFORM.llnormaal THEN
  58.         IF lnAvgOmgedraaid == lnCheatVraag THEN
  59.             llOmgedraaid = .T.
  60.         ENDIF
  61.     ENDIF
  62.    
  63.     && If the current question exceeds the average amount of questions per tafel, go to the next tafel
  64.     IF lnCheatVraag >= lnAvg AND THISFORM.llelketafel AND lnCurrentTafel < THISFORM.lntafel THEN
  65.         lnCheatVraag = 1
  66.         lnCurrentTafel = lnCurrentTafel + 1
  67.         llOmgedraaid = .F.
  68.     ENDIF
  69.  
  70.     && If llOmgedraaid, add a turned question, otherwise add a regular question
  71.     IF llOmgedraaid THEN
  72.         laTafels[lnX,1] = .F.
  73.         laTafels[lnX,2] = lnCurrentTafel
  74.         laTafels[lnX,3] = lnCurrentTafel * lnRand
  75.        
  76.     ELSE
  77.         laTafels[lnX,1] = lnRand
  78.         laTafels[lnX,2] = lnCurrentTafel
  79.         laTafels[lnX,3] = .F.
  80.     ENDIF
  81.        
  82.     && If the average amount of questions per tafel is not rounded, gradually add the leftover questions
  83.     IF lnTeveelVragen > 0 THEN
  84.         laTafels[lnX,1] = lnRand
  85.         laTafels[lnX,2] = lnCurrentTafel
  86.         laTafels[lnX,3] = .F.
  87.         lnTeveelVragen = lnTeveelVragen - 1
  88.     ENDIF
  89.    
  90.     && Increase the amount of questions to check for averages
  91.     lnCheatVraag = lnCheatVraag + 1
  92.    
  93.    
  94.        
  95. ENDFOR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement