Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Universidade de Brasilia
- Instituto de Ciencias Exatas
- Departamento de Ciencia da Computacao
- Algoritmos e Programação de Computadores – 1/2016
- Aluno(a): João Antonio da Rosa Marques
- Matricula: 16/0031699
- Turma: A
- Versão do compilador: Apple LLVM Version 7.0.2 (clang-700.1.81)
- Descricao: Menu e Opções do jogo Eliminaletras
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #ifdef _WIN32
- #define CLEAR "cls"
- #else
- #define CLEAR "clear"
- #endif
- int gamelines,gamecolunms;
- char gameletters[11];
- float basescore;
- void play(){}
- void ranking(){}
- void Welcome(){
- printf("==================================\n=== Bem-vindo a Eleminaletras! ===\n==================================\n\n");
- return;
- }
- void Statement(){
- printf("Pressione <ENTER> para prosseguir...\n");
- return;
- }
- void Menu(){
- printf("====================================\n=== Eliminaletras MENU PRINCIPAL ===\n====================================\n\n");
- return;
- }
- void Options(){
- printf("1 - Jogar\n2 - Ranking\n3 - Configuracoes\n4 - Sair\n\nEscolha uma opcao: ");
- return;
- }
- void SettingsHeader(){
- printf("===========================================\n=== Eliminaletras MENU DE CONFIGURACOES ===\n===========================================\n\n");
- return;
- }
- void Settings(){
- 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);
- return;
- }
- void Goodbye(){
- printf("=========================================\n=== Obrigado por jogar Eliminaletras! ===\n=========================================\n\n");
- return;
- }
- void ERRORSTATE(){
- printf("\nERROR\n\nPressione <ENTER> para retornar");
- return;
- }
- void writeSettings(){
- FILE *fp;
- char nomeEliminaLetras_settings[] = "EliminaLetras_settings.txt";
- fp=fopen(nomeEliminaLetras_settings, "w");
- fprintf(fp,"%s\n%d\n%d\n%f",gameletters,gamelines,gamecolunms,basescore);
- fclose(fp);
- return;
- }
- void readSettings(){
- int i=0,templetteramount=0;
- FILE *fp;
- char nomeEliminaLetras_settings[] = "EliminaLetras_settings.txt";
- fp=fopen(nomeEliminaLetras_settings, "r");
- fscanf(fp,"%s\n%d\n%d\n%f",gameletters,&gamelines,&gamecolunms,&basescore);
- while(gameletters[i]!='\0'){
- templetteramount++;
- i++;
- }
- if(templetteramount < 3 || templetteramount > 10){
- strcpy(gameletters,"OZXM");
- }
- if(gamelines < 3 || gamelines > 9 ){
- gamelines=6;
- }
- if(gamecolunms < 3 || gamecolunms > 9){
- gamecolunms=9;
- }
- if(basescore < 1 || basescore > 2){
- basescore=1.5;
- }
- if (fp==NULL){
- fclose(fp);
- fp=fopen(nomeEliminaLetras_settings,"w");
- fprintf(fp,"OZXM\n6\n9\n1.5");
- }
- fclose(fp);
- writeSettings();
- return;
- }
- void changechars(){
- int i=0,letteramount=0;
- char setconf;
- printf("\nInsira os novos caracteres (min. 3, max. 10):");
- scanf("%s",gameletters);
- printf("\nConfirmar acao? (S/N) ");
- scanf("%c",&setconf);
- switch (setconf){
- case 'S':
- while(gameletters[i]!='\0'){
- letteramount++;
- i++;
- }
- letteramount=0;
- if(letteramount < 3 || letteramount > 10){
- system(CLEAR);
- SettingsHeader();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- SettingsHeader();
- Settings();
- i=0;
- system(CLEAR);
- changechars();
- }
- else{
- writeSettings();
- }
- break;
- default:
- readSettings();
- }
- system(CLEAR);
- SettingsHeader();
- Settings();
- return;
- }
- void changelines(){
- char setconf;
- printf("\nInsira o número para a quantidade de linhas(min. 3, max. 9):");
- scanf("%d",&gamelines);
- printf("\nConfirmar acao? (S/N) ");
- scanf("%c",&setconf);
- switch (setconf){
- case 'S':
- if(gamelines < 3 || gamelines > 9){
- system(CLEAR);
- SettingsHeader();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- SettingsHeader();
- Settings();
- changelines();
- }
- else{
- writeSettings();
- }
- break;
- default:
- readSettings();
- }
- system(CLEAR);
- SettingsHeader();
- Settings();
- return;
- }
- void changecolunms(){
- char setconf;
- printf("\nInsira o número para a quantidade de colunas(min. 3, max. 9):");
- scanf("%d",&gamecolunms);
- printf("\nConfirmar acao? (S/N) ");
- scanf("%c",&setconf);
- switch (setconf){
- case 'S':
- if(gamecolunms < 3 || gamecolunms > 9){
- system(CLEAR);
- SettingsHeader();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- SettingsHeader();
- Settings();
- changecolunms();
- }
- else{
- writeSettings();
- }
- break;
- default:
- readSettings();
- }
- system(CLEAR);
- SettingsHeader();
- Settings();
- return;
- }
- void changebasescore(){
- char setconf;
- printf("\nInsira o número real para a pontuação base(min. 1, max. 2):");
- scanf("%f",&basescore);
- printf("\nConfirmar acao? (S/N) ");
- scanf("%c",&setconf);
- switch (setconf){
- case 'S':
- if(basescore > 1 || basescore < 2){
- writeSettings();
- }
- else{
- system(CLEAR);
- SettingsHeader();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- SettingsHeader();
- Settings();
- changebasescore();
- }
- break;
- default:
- readSettings();
- }
- system(CLEAR);
- SettingsHeader();
- Settings();
- return;
- }
- int main () {
- int letteramount,menuchoice,settingschoice;
- readSettings();
- writeSettings();
- while(menuchoice!=5){
- Welcome();
- Statement();
- getchar();
- system(CLEAR);
- Menu();
- Options();
- scanf("%d",&menuchoice);
- getchar();
- switch (menuchoice){
- case 1 :
- system(CLEAR);
- Menu();
- printf("Em construcao!\n");
- getchar();
- system(CLEAR);
- Menu();
- Options();
- scanf("%d",&menuchoice);
- break;
- case 2 :
- system(CLEAR);
- Menu();
- printf("Em construcao!\n");
- getchar();
- system(CLEAR);
- Menu();
- Options();
- scanf("%d",&menuchoice);
- break;
- case 3 :
- system(CLEAR);
- SettingsHeader();
- Settings();
- scanf("%d",&settingschoice);
- switch (settingschoice) {
- case 1 :
- changechars();
- scanf("%d",&settingschoice);
- break;
- case 2 :
- changelines();
- scanf("%d",&settingschoice);
- break;
- case 3 :
- changecolunms();
- scanf("%d",&settingschoice);
- break;
- case 4 :
- changebasescore();
- scanf("%d",&settingschoice);
- break;
- case 5 :
- system(CLEAR);
- Menu();
- Options();
- scanf("%d",&menuchoice);
- break;
- default:
- system(CLEAR);
- SettingsHeader();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- SettingsHeader();
- Settings();
- scanf("%d",&settingschoice);
- }
- case 4 :
- system(CLEAR);
- Goodbye();
- printf("Pressione <ENTER> para continuar...\n");
- getchar();
- system(CLEAR);
- return 0;
- break;
- default:
- system(CLEAR);
- Menu();
- ERRORSTATE();
- getchar();
- system(CLEAR);
- Menu();
- Options();
- scanf("%d",&menuchoice);
- }
- }
- system(CLEAR);
- Goodbye();
- printf("Pressione <ENTER> para continuar...\n");
- getchar();
- system(CLEAR);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement