Guest User

Untitled

a guest
Dec 13th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.66 KB | None | 0 0
  1. -- Créateur de tables -- par Coloco21 --
  2.  
  3. function maketable(TYPE, tabl) --[[
  4.  
  5. TYPE :
  6.  
  7. n -> nombres entiers naturels
  8. N -> nombres entiers négatifs
  9. l -> lettres minuscules
  10. L -> lettres majuscules
  11. s ou S -> symboles
  12.  
  13. tabl :
  14.  
  15. Votre table qui contiendra les caractères. A créer avant d'appeler la fonction.
  16.  
  17. ]]
  18.  
  19.     local numbool = 0
  20.     local negabool = 0
  21.     local lowerbool = 0
  22.     local upperbool = 0
  23.     local symbool = 0
  24.    
  25.     if TYPE:find("n") then -- si TYPE contient "n"
  26.    
  27.         numbool = 1
  28.     end
  29.    
  30.     if TYPE:find("N") then
  31.        
  32.         negabool = 1
  33.     end
  34.    
  35.     if TYPE:find("l") then
  36.        
  37.         lowerbool = 1
  38.     end
  39.    
  40.     if TYPE:find("L") then
  41.        
  42.         upperbool = 1
  43.     end
  44.    
  45.     if TYPE:find("s") or TYPE:find("S") then
  46.        
  47.         symbool = 1
  48.     end
  49.    
  50.     if numbool==1 then -- si TYPE contient n
  51.    
  52.         numtab = {} -- on déclare une table pour les entiers naturels
  53.        
  54.         for i=0,9 do -- pour i variant de 0 à 9
  55.        
  56.             table.insert(numtab,i+1,i) -- numtab[i+1]=i
  57.         end
  58.     end
  59.    
  60.     if negabool == 1 then -- si TYPE contient N
  61.    
  62.         negatab = {}
  63.        
  64.         if not numtab then -- si numtab n'est pas déclarée = si typetab[1]==0 = s'il n'y a pas de 0 dans la table
  65.        
  66.             for i=0,9 do -- pour i variant de 0 à 9
  67.            
  68.                 if i==0 then
  69.                
  70.                     table.insert(negatab,1,0) -- si i vaut 1 alors negatab[1] vaut 0 (pour éviter -0)
  71.                 else
  72.                
  73.                     table.insert(negatab,i+1,(-1)*i) -- sinon negatab[i+1] = i(-1)
  74.                 end
  75.             end
  76.         else -- sinon (s'il y a déjà 0 dans la table finale)
  77.        
  78.             for i=1,9 do -- pour i variant de 1 à 9
  79.            
  80.                 table.insert(negatab,i,(-1)*i) -- negatab[i] = i(-1)
  81.             end
  82.         end
  83.     end
  84.    
  85.     if lowerbool == 1 then -- si TYPE contient l
  86.    
  87.         lowercase = {}
  88.        
  89.         for i=1,26 do -- pour i variant de 1 à 26
  90.        
  91.             table.insert(lowercase,i,string.char(96+i)) -- lowercase[i] = string.char(96+1) --> string.char(97) vaut "a", string.char(98) vaut "b", etc
  92.         end
  93.     end
  94.    
  95.     if upperbool == 1 then -- si TYPE contient L
  96.    
  97.         uppercase = {}
  98.        
  99.         for i=1,26 do
  100.        
  101.             table.insert(uppercase,i,string.char(64+i)) -- uppercase[i] = string.char(64+i) --> string.char(65) vaut "A", etc
  102.         end
  103.     end
  104.    
  105.     if symbool == 1 then -- si TYPE contient s ou S
  106.    
  107.         symbols = {}
  108.        
  109.         for i=1,14 do -- pour i variant de 1 à 14
  110.        
  111.             table.insert(symbols,i,string.char(32+i)) -- on insère les 15 premiers symboles (symbols[i] = string.char(32+i))
  112.         end
  113.        
  114.         for i=1,7 do
  115.        
  116.             table.insert(symbols,14+i,string.char(57+i)) -- puis les 8 suivants (symbols[14+i] = string.char(57+i))
  117.         end
  118.        
  119.         for i=1,6 do -- puis les 7 suivants
  120.        
  121.             table.insert(symbols,21+i,string.char(90+i)) -- symbols[21+i] = string.char(90+i)
  122.         end
  123.        
  124.         for i=1,8 do -- puis les 9 derniers
  125.        
  126.             table.insert(symbols,27+i,string.char(122+i)) -- symbols[27+i] = string.char(122+i)
  127.         end
  128.     end
  129.    
  130.     if numtab then -- si numtab existe = si TYPE contient "n" = si typetab[1] == 1
  131.    
  132.         for u,v in ipairs(numtab) do -- pour u et v dans ipairs(numtab) -> u = 1,2,3,...,#numtab ; v = numtab[1],numtab[2],...,numtab[#numtab]
  133.        
  134.             table.insert(tabl,#tabl + 1,v) -- tabl[#tabl + 1] = v --> on ajoute à la fin de tabl les valeurs de numtab
  135.         end
  136.     end
  137.    
  138.     if negatab then
  139.    
  140.         for u,v in ipairs(negatab) do
  141.        
  142.             table.insert(tabl,#tabl +1,v)
  143.         end
  144.     end
  145.    
  146.     if lowercase then
  147.    
  148.         for u,v in ipairs(lowercase) do
  149.            
  150.             table.insert(tabl,#tabl +1,v)
  151.         end
  152.     end
  153.    
  154.     if uppercase then
  155.    
  156.         for u,v in ipairs(uppercase) do
  157.            
  158.             table.insert(tabl,#tabl + 1,v)
  159.         end
  160.     end
  161.    
  162.     if symbols then
  163.    
  164.         for u,v in ipairs(symbols) do
  165.        
  166.             table.insert(tabl,#tabl + 1,v)
  167.         end
  168.     end
  169.    
  170. return tabl
  171. end
  172.  
  173. function tprint(table) -- fonction pour afficher les tables
  174.  
  175.     for u,v in ipairs(table) do
  176.    
  177.         print(u..". "..v)
  178.     end
  179. end
Add Comment
Please, Sign In to add comment