Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. /*
  2. Universidade de Brasilia
  3. Instituto de Ciencias Exatas
  4. Departamento de Ciencia da Computacao
  5. Algoritmos e Programação de Computadores – 1/2016
  6. Aluno(a): João Antonio da Rosa Marques
  7. Matricula: 16/0031699
  8. Turma: A
  9. Versão do compilador: Apple LLVM Version 7.0.2 (clang-700.1.81)
  10. Descricao: Menu e Opções do jogo Eliminaletras
  11. */
  12.  
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <string.h>
  16. #ifdef _WIN32
  17. #define CLEAR "cls"
  18. #else
  19. #define CLEAR "clear"
  20. #endif
  21.  
  22. int gamelines,gamecolunms;
  23. char gameletters[11];
  24. float basescore;
  25.  
  26. void play(){}
  27.  
  28. void ranking(){}
  29.  
  30. void Welcome(){
  31. printf("==================================\n=== Bem-vindo a Eleminaletras! ===\n==================================\n\n");
  32. return;
  33. }
  34.  
  35. void Statement(){
  36. printf("Pressione <ENTER> para prosseguir...\n");
  37. return;
  38. }
  39.  
  40. void Menu(){
  41. printf("====================================\n=== Eliminaletras MENU PRINCIPAL ===\n====================================\n\n");
  42. return;
  43. }
  44.  
  45. void Options(){
  46. printf("1 - Jogar\n2 - Ranking\n3 - Configuracoes\n4 - Sair\n\nEscolha uma opcao: ");
  47. return;
  48. }
  49.  
  50. void SettingsHeader(){
  51. printf("===========================================\n=== Eliminaletras MENU DE CONFIGURACOES ===\n===========================================\n\n");
  52. return;
  53. }
  54.  
  55. void Settings(){
  56. printf("1 - Mudar caracteres: %s\n2 - Mudar linhas: %d\n3 - Mudar colunas: %d\n4 - Mudar pontuação base: %f\n5 - Menu Principal\n\nEscolha uma opcao: ",gameletters,gamelines,gamecolunms,basescore);
  57. return;
  58. }
  59.  
  60. void Goodbye(){
  61. printf("=========================================\n=== Obrigado por jogar Eliminaletras! ===\n=========================================\n\n");
  62. return;
  63. }
  64.  
  65. void ERRORSTATE(){
  66. printf("\nERROR\n\nPressione <ENTER> para retornar");
  67. return;
  68. }
  69.  
  70. void writeSettings(){
  71.  
  72. FILE *fp;
  73. char nomeEliminaLetras_settings[] = "EliminaLetras_settings.txt";
  74.  
  75. fp=fopen(nomeEliminaLetras_settings, "w");
  76.  
  77. fprintf(fp,"%s\n%d\n%d\n%f",gameletters,gamelines,gamecolunms,basescore);
  78. fclose(fp);
  79.  
  80. return;
  81. }
  82.  
  83. void readSettings(){
  84.  
  85. int i=0,templetteramount=0;
  86.  
  87. FILE *fp;
  88. char nomeEliminaLetras_settings[] = "EliminaLetras_settings.txt";
  89.  
  90. fp=fopen(nomeEliminaLetras_settings, "r");
  91.  
  92. fscanf(fp,"%s\n%d\n%d\n%f",gameletters,&gamelines,&gamecolunms,&basescore);
  93.  
  94. while(gameletters[i]!='\0'){
  95. templetteramount++;
  96. i++;
  97. }
  98.  
  99. if(templetteramount < 3 || templetteramount > 10){
  100. strcpy(gameletters,"OZXM");
  101. }
  102.  
  103. if(gamelines < 3 || gamelines > 9 ){
  104. gamelines=6;
  105. }
  106.  
  107. if(gamecolunms < 3 || gamecolunms > 9){
  108. gamecolunms=9;
  109. }
  110.  
  111. if(basescore < 1 || basescore > 2){
  112. basescore=1.5;
  113. }
  114.  
  115. if (fp==NULL){
  116. fclose(fp);
  117. fp=fopen(nomeEliminaLetras_settings,"w");
  118. fprintf(fp,"OZXM\n6\n9\n1.5");
  119. }
  120.  
  121. fclose(fp);
  122. writeSettings();
  123.  
  124. return;
  125. }
  126.  
  127.  
  128. void changechars(){
  129. int i=0,letteramount=0;
  130. char setconf;
  131.  
  132. printf("\nInsira os novos caracteres (min. 3, max. 10):");
  133. scanf("%s",gameletters);
  134. printf("\nConfirmar acao? (S/N) ");
  135. scanf("%c",&setconf);
  136.  
  137.  
  138. switch (setconf){
  139.  
  140. case 'S':
  141.  
  142. while(gameletters[i]!='\0'){
  143. letteramount++;
  144. i++;
  145. }
  146.  
  147. letteramount=0;
  148.  
  149. if(letteramount < 3 || letteramount > 10){
  150. system(CLEAR);
  151. SettingsHeader();
  152. ERRORSTATE();
  153. getchar();
  154. system(CLEAR);
  155. SettingsHeader();
  156. Settings();
  157. i=0;
  158. system(CLEAR);
  159. changechars();
  160. }
  161.  
  162. else{
  163. writeSettings();
  164. }
  165. break;
  166.  
  167. default:
  168. readSettings();
  169. }
  170. system(CLEAR);
  171. SettingsHeader();
  172. Settings();
  173. return;
  174. }
  175.  
  176. void changelines(){
  177. char setconf;
  178.  
  179. printf("\nInsira o número para a quantidade de linhas(min. 3, max. 9):");
  180. scanf("%d",&gamelines);
  181. printf("\nConfirmar acao? (S/N) ");
  182.  
  183. scanf("%c",&setconf);
  184.  
  185. switch (setconf){
  186.  
  187. case 'S':
  188.  
  189. if(gamelines < 3 || gamelines > 9){
  190. system(CLEAR);
  191. SettingsHeader();
  192. ERRORSTATE();
  193. getchar();
  194. system(CLEAR);
  195. SettingsHeader();
  196. Settings();
  197. changelines();
  198. }
  199.  
  200. else{
  201. writeSettings();
  202. }
  203. break;
  204.  
  205. default:
  206. readSettings();
  207. }
  208. system(CLEAR);
  209. SettingsHeader();
  210. Settings();
  211. return;
  212. }
  213.  
  214. void changecolunms(){
  215. char setconf;
  216.  
  217. printf("\nInsira o número para a quantidade de colunas(min. 3, max. 9):");
  218. scanf("%d",&gamecolunms);
  219. printf("\nConfirmar acao? (S/N) ");
  220.  
  221. scanf("%c",&setconf);
  222.  
  223.  
  224. switch (setconf){
  225.  
  226. case 'S':
  227.  
  228. if(gamecolunms < 3 || gamecolunms > 9){
  229. system(CLEAR);
  230. SettingsHeader();
  231. ERRORSTATE();
  232. getchar();
  233. system(CLEAR);
  234. SettingsHeader();
  235. Settings();
  236. changecolunms();
  237. }
  238.  
  239. else{
  240. writeSettings();
  241. }
  242. break;
  243.  
  244. default:
  245. readSettings();
  246. }
  247. system(CLEAR);
  248. SettingsHeader();
  249. Settings();
  250. return;
  251. }
  252.  
  253. void changebasescore(){
  254. char setconf;
  255.  
  256. printf("\nInsira o número real para a pontuação base(min. 1, max. 2):");
  257. scanf("%f",&basescore);
  258. printf("\nConfirmar acao? (S/N) ");
  259.  
  260. scanf("%c",&setconf);
  261.  
  262. switch (setconf){
  263.  
  264. case 'S':
  265.  
  266. if(basescore > 1 || basescore < 2){
  267. writeSettings();
  268. }
  269. else{
  270. system(CLEAR);
  271. SettingsHeader();
  272. ERRORSTATE();
  273. getchar();
  274. system(CLEAR);
  275. SettingsHeader();
  276. Settings();
  277. changebasescore();
  278. }
  279. break;
  280.  
  281. default:
  282. readSettings();
  283. }
  284. system(CLEAR);
  285. SettingsHeader();
  286. Settings();
  287. return;
  288. }
  289.  
  290. int main () {
  291. int letteramount,menuchoice,settingschoice;
  292.  
  293.  
  294. readSettings();
  295. writeSettings();
  296.  
  297. while(menuchoice!=5){
  298.  
  299. Welcome();
  300. Statement();
  301. getchar();
  302. system(CLEAR);
  303. Menu();
  304. Options();
  305.  
  306. scanf("%d",&menuchoice);
  307. getchar();
  308.  
  309. switch (menuchoice){
  310.  
  311.  
  312.  
  313. case 1 :
  314. system(CLEAR);
  315. Menu();
  316. printf("Em construcao!\n");
  317. getchar();
  318. system(CLEAR);
  319. Menu();
  320. Options();
  321. scanf("%d",&menuchoice);
  322.  
  323. break;
  324.  
  325. case 2 :
  326. system(CLEAR);
  327. Menu();
  328. printf("Em construcao!\n");
  329. getchar();
  330. system(CLEAR);
  331. Menu();
  332. Options();
  333. scanf("%d",&menuchoice);
  334. break;
  335.  
  336. case 3 :
  337. system(CLEAR);
  338. SettingsHeader();
  339. Settings();
  340. scanf("%d",&settingschoice);
  341.  
  342. switch (settingschoice) {
  343.  
  344.  
  345. case 1 :
  346. changechars();
  347. scanf("%d",&settingschoice);
  348. break;
  349.  
  350. case 2 :
  351. changelines();
  352. scanf("%d",&settingschoice);
  353. break;
  354.  
  355. case 3 :
  356. changecolunms();
  357. scanf("%d",&settingschoice);
  358. break;
  359.  
  360. case 4 :
  361. changebasescore();
  362. scanf("%d",&settingschoice);
  363. break;
  364.  
  365. case 5 :
  366. system(CLEAR);
  367. Menu();
  368. Options();
  369. scanf("%d",&menuchoice);
  370. break;
  371.  
  372. default:
  373. system(CLEAR);
  374. SettingsHeader();
  375. ERRORSTATE();
  376. getchar();
  377. system(CLEAR);
  378. SettingsHeader();
  379. Settings();
  380. scanf("%d",&settingschoice);
  381. }
  382.  
  383. case 4 :
  384. system(CLEAR);
  385. Goodbye();
  386. printf("Pressione <ENTER> para continuar...\n");
  387. getchar();
  388. system(CLEAR);
  389. return 0;
  390. break;
  391.  
  392. default:
  393. system(CLEAR);
  394. Menu();
  395. ERRORSTATE();
  396. getchar();
  397. system(CLEAR);
  398. Menu();
  399. Options();
  400. scanf("%d",&menuchoice);
  401. }
  402. }
  403.  
  404.  
  405. system(CLEAR);
  406. Goodbye();
  407. printf("Pressione <ENTER> para continuar...\n");
  408. getchar();
  409. system(CLEAR);
  410. return 0;
  411.  
  412. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement