[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tyndur-devel] (kein Betreff)



On Sun, Feb 27, 2011 at 01:43:43PM +0100, DoBi-tyndur@xxxxxxx wrote:
> 
> -- 
> Schon gehört? GMX hat einen genialen Phishing-Filter in die
> Toolbar eingebaut! http://www.gmx.net/de/go/toolbar

> From 9f41dfc617f6e5acf69fa62cce0e556b12584e18 Mon Sep 17 00:00:00 2001
> From: DoBi <DoBi-tyndur@xxxxxxx>
> Date: Thu, 24 Feb 2011 19:07:38 +0100
> Subject: [PATCH] Neues Programm: Hangman
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> +Ein neues Programm für Tyndur: Hangman! Es erklärt sich von selbst. Am besten zu 2. Spielen.
> Signed-off-by: DoBi <DoBi-tyndur@xxxxxxx>

Bitte im Signed-off-by deinen echten Namen verwenden.

Es wäre auch besser, neue Versionen vom Patch zu schicken anstatt immer
neue Patches, die oben drauf angewendet werden müssen. Wenn du Hilfe
brauchst, wie du git-Commits zusammenfasst, meld dich mal im IRC.

> ---
>  src/modules/c/hangman/Makefile.all |    8 ++
>  src/modules/c/hangman/main.c       |  244 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 252 insertions(+), 0 deletions(-)
>  create mode 100644 src/modules/c/hangman/Makefile.all
>  create mode 100644 src/modules/c/hangman/main.c
> 
> diff --git a/src/modules/c/hangman/Makefile.all b/src/modules/c/hangman/Makefile.all
> new file mode 100644
> index 0000000..0ae2b38
> --- /dev/null
> +++ b/src/modules/c/hangman/Makefile.all
> @@ -0,0 +1,8 @@
> +shopt -s extglob
> +source $LOST_BUILDMK_ROOT/config.sh
> +
> +echo "LD   $1/apps/hangman"
> +
> +$LOST_TOOLS_LD -ohangman $LDSCRIPT --start-group *.o $2 --end-group
> +
> +$LOST_TOOLS_STRIP -s hangman -o $1/apps/hangman
> diff --git a/src/modules/c/hangman/main.c b/src/modules/c/hangman/main.c
> new file mode 100644
> index 0000000..5e4a115
> --- /dev/null
> +++ b/src/modules/c/hangman/main.c
> @@ -0,0 +1,244 @@
> +// Created by DoBi

Hier fehlt der Lizenzheader.

> +
> +#include <stdio.h>
> +#include <unistd.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <readline/readline.h>
> +#include <wchar.h>
> +#include <ctype.h>
> +
> +#define bool	int
> +#define TRUE	(1)
> +#define FALSE	(0)

Du willst stdbool.h benutzen.

> +
> +void ausgabe (int,bool);
> +
> +char* loesung;
> +
> +int main(int argc, char** argv)
> +{
> +	char striche[21];

Einrückungstiefe sind vier Leerzeichen (die Details zu den Anmerkungen
zum Codestil kannst du in doc/codestil.txt nachlesen)

> +	char* eing;
> +	int versuch = 11;
> +	int i = 0;
> +	int z;
> +	int k;
> +	int c = 0;
> +	int l;
> +	bool treffer;
> +	
> +	printf("Hangman!\n");
> +	printf("Regeln:\n- keine Zeichen z.B. Ausrufezeichen\n- nicht mehr als 20 Buchstaben\n- Beim raten immer nur einen Buchstaben eingeben\n");

Maximal 80 Zeichen pro Zeile

> +	
> +	loesung = readline("Bitte ein Wort eingeben: ");
> +	
> +	while(c < 20)
> +	{

Geschweifte Klammer gehört auf die while-Zeile und hinter das while ein
Leerzeichen.

> +		loesung[c]=tolower(loesung[c]);
> +		c++;
> +	}
> +	
> +	l = strlen(loesung);
> +	
> +	if(l > 20)
> +	{
> +		printf("Das Wort ist zu lang!\n\n");
> +		return 1;
> +	}
> +	
> +	puts("\33[2J\33[H");

Willst du nach diesem String wirklich einen Zeilenumbruch?

> +	
> +	while (i<=strlen(loesung))                     
> +	{ 
> +		striche[i]=45; 
> +		i++; 
> +	} 
> +	

Die letzten paar Zeilen haben einen Haufen Leerzeichen am Zeilenende,
die da nicht hingehören.

> +	striche[strlen(loesung)]='\0';
> +	
> +	printf("Du hast 11 Versuche!\n");
> +	printf("Auf das Raten fertig los!\n\n");
> +	printf(striche);
> +	printf("\n");
> +	
> +	for(z=1; z < 12;)
> +	{
> +		ausgabe(versuch,0);
> +		
> +		eing = readline("Dein Versuch: ");
> +		
> +		treffer = FALSE;
> +		
> +		k = strlen(eing);
> +		
> +		if ((k>1 && strcmp(loesung,eing)!=0) || k>20)

Leerzeichen um die Operatoren

> +		{
> +			printf("Ungueltige Eingabe\n\n");
> +			return 1;
> +		}
> +		else
> +		{
> +			printf("\n");
> +			
> +			for(i=0; i<=l; i++)                      
> +            { 
> +                for(k=0; k<strlen(eing); k++) 
> +                { 
> +                    if (loesung[i]==eing[k]) 
> +                    {                           
> +                        striche[i]=loesung[i];
> +                        treffer=TRUE;                                     
> +                    } 
> +                }        
> +            } 
> +		}
> +		
> +		if (treffer==FALSE)
> +		{
> +			z++;
> +			versuch--;
> +		}
> +		
> +		printf("\n");
> +		printf(striche);
> +		printf("\n\n");
> +		
> +		if (strcmp (loesung,striche)==0 || strcmp(loesung,eing)==0 )              
> +		{
> +			printf("Glueckwunsch\n\n");
> +			printf(striche);
> +			printf("  war die Loesung\n\n");
> +			break;
> +		}
> +		
> +		
> +	}
> +	
> +	ausgabe(versuch,1);
> +	
> +	return 0;
> +}
> +
> +void ausgabe(int versuch1, bool a)
> +{
> +	// Anzahl der Versuche ?berpr?fen + Hangman ausgeben
> +	if (versuch1 == 11)
> +	{
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +	}
> +	if(versuch1 == 10)
> +	{
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("               \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 9)
> +	{
> +		printf("               \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 8)
> +	{
> +		printf("      _______  \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 7)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/       \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	else if(versuch1 == 6)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 5)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O  \n");
> +		printf("      |        \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 4)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O  \n");
> +		printf("      |     |  \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 3)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O/ \n");
> +		printf("      |     |  \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 2)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O/ \n");
> +		printf("      |    /|  \n");
> +		printf("      |        \n");
> +		printf("     _|_       \n");
> +	}
> +	if(versuch1 == 1)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O/ \n");
> +		printf("      |    /|  \n");
> +		printf("      |    J   \n");
> +		printf("     _|_       \n");
> +	}
> +	
> +	if(versuch1 == 0)
> +	{
> +		printf("      _______  \n");
> +		printf("      |/    |  \n");
> +		printf("      |     O/ \n");
> +		printf("      |    /|  \n");
> +		printf("      |    J L \n");
> +		printf("     _|_       \n");
> +	}

Ich glaube, ein switch wäre toller. Oder gleich ein Array, das alle
"Bilder" enthält.