eigenes game >> geht natürlich nich :P



  • ich hatte ma lust, nen eigenes spiel zu entwerfen, aber es läuft natürlcih nich 😉

    fehlerbeschreibung und sourcecode hier
    ---> http://nopaste.easy-coding.de/?id=490

    sind auch teilweise befehle aus der sprache "c" dabei xD, aber das liegt daran, das mir nen kumpel nen teil gecodet hat, aber ich glaub es is nich schwer da durchzublicken 😉



  • Hm, der code vom link (vernünftig formatiert):

    /*
    	dies soll eigentlcih ein spiel werden, oben mit der "do" schleife
    	isses so gedacht das sich das schiff bewegt, unten mit der "for"
    	schleife sind die "kometen" programmiert die einem entgegenkommen
    	- mein prob is nur, das die kometen nich entgegenkommen UND ich
    	das schiff bewegen kann (also nit gleichzeitig), das hat ich
    	schonmal so gemacht, da ging das nur jetz mit 3kometen gehts
    	nimmer -.-
    */
    
    /*
     *	Changed to fit Borland C/C++ 3.0 for DOS:
     *	#include <cstdlib>
     */
    #include <stdlib.h>
    
    /*
     *	Changed to fit Borland C/C++ 3.0 for DOS:
     *	#include <iostream>
     */
    #include <iostream.h>
    
    /*
     *	I don't know this file:
     *	#include "stdafx.h"
     */
    
    /*
     *	Do not include ".c"-files!
     *	#include "conioex.c"
     */
    
    /*
     *	Changed to fit Borland C/C++ 3.0 for DOS:
     *	#include "conioex.h"
     */
    #include <conio.h>
    
    #include <time.h>
    #include <stdio.h>
    #include <malloc.h>
    
    /*
     *	Needed for sleep( );
     */
    #include <dos.h>
    
    /*
     *	Typedef's:
     */
    typedef enum { false = 0, true } bool;
    
    /*
     *	Function Prototypes:
     */
    int komet();
    
    /*
     *	Application Entry:
     */
    int main()
    {
    	char	a	=  0;
    	char	l	=  0;
    	int	q	= 40;
    
    	/*
    	 *	Never used:
    	 *	int e = 5;
    	 *	char w, s, d;
    	 */
    
    	int		x	= 15;
    	int		y	=  5;
    
    	/*
    	 *	Never used:
    	 *	int	zufall;
    	 */
    
    	srand( (unsigned) time(NULL) );
    
    	komet( );
    
    	do {
    		l = getch( );
    		if ( l == 'w' ) {
    			/*
    			 *	system( "cls" );
    			 *	Not portable, stay consistent:
    			 */
    			clrscr( );
    
    			/*
    			 *	y--;
    			 *	No temporary copy needed:
    			 */
    			--y;
    
    			gotoxy( x, y );
    			printf( "X->" );
    		} else if( l=='d' ) {
    			clrscr();
    
    			/*
    			 *	x++;
    			 *	see above!
    			 */
    			++x;
    
    			gotoxy( x, y );
    			printf( "X->" );
    		} else if( l == 'a' ) {
    			clrscr( );
    
    			/*
    			 *	--x;
    			 *	see above!
    			 */
    			--x;
    
    			gotoxy( x, y );
    			printf( "X->" );
    		} else if( l == 's' ) {
    			clrscr();
    
    			/*
    			 *	y++;
    			 *	see above!
    			 */
    			++y;
    
    			gotoxy( x,y );
    			printf( "X->" );
    		}
    		/*
    		 *	q--;
    		 *	see above, but why?
    		 */
    
    		--q;
    
    		/*
    		 *	why, assigned and never used!?
    		 */
    		a = 0;
    
    	/*
    	 *	} while( 1 );
    	 */
    	} while( true );
    
    	/*
    	 *	Never reached:
    	 */
    
    	/*
    	 *	system( "PAUSE" );
    	 *	Not portable, stay consistent:
    	 */
    	getch( );
    
    	return EXIT_SUCCESS;
    }
    
    int komet()
    {
    	int	zeit	=  0;
    	int	ende	=  1;
    
    	int	kom1x	= 50;
    	int	kom1y	=  0;
    
    	int	kom2x	= 50;
    	int	kom2y	=  0;
    
    	int	kom3x	= 50;
    	int	kom3y	=  0;
    
    	/*
    	 *	Never used:
    	 *	int kom4x = 50, kom4y;
         */
    
    	/*
    	 *	srand( ( unsigned ) time( NULL ) );
    	 *	srand( ) should only be used once at
    	 *	program start to initialize rand( ).
    	 *	There's no need to do so every time
    	 *	you call rand( )!
    	 */
    
    	/*
    	 *	There is no need for integer zufall,
    	 *	int	zufall = rand( ) % 3;
    	 */
    
    	kom1y = ( rand( ) % 3 ) + 10;
    
    	/*
    	 *	Changed
    	 *	int zufall2 = rand() % 3;
    	 *	if( zufall2 == 0 )
    	 *		zufall2 = 4;
    	 *	to:
    	 */
    	int zufall2 = rand() % 3;
    	zufall2 = !zufall2 ? 4 : zufall2;
    
    	kom2y = kom1y + zufall2;
    
    	/*
    	 *	Changed
    	 *	int zufall3 = rand() % 3;
    	 *	if( zufall3 == 0 )
    	 *		zufall3 = 4;
    	 *	to:
    	 */
    	int zufall3 = rand() % 3;
    	zufall3 = !zufall3 ? 4 : zufall3;
    
    	kom3y = kom2y + zufall3;
    
    	for( zeit = 75; zeit != ende; --zeit ) {
    		if( kom1x != 0 ) {
    			gotoxy (kom1x, kom1y);
    			printf("000");
    		}
    
    		/*
    		 *	if( zeit < 75-10 )
    		 *  {
    		 *		if(kom2x!=0)
    		 *		{
    		 *			gotoxy (kom2x, kom2y);
    		 *			printf("000");
    		 *		}
    		 *	}
    		 *	*WTF!?!?*
    		 */
    
    		if( ( zeit < 65 ) && ( kom3x != 0 ) ) {
    			gotoxy(kom3x, kom3y);
    			printf("000");
    		}
    
    		sleep(100);
    		clrscr();
    
    		if(kom1x!=0)
    			kom1x--;
    
    		/*
    		 *	if(zeit<75-10)
    		 *	{
    		 *		if(kom2x!=0)
    		 *			kom2x--;
    		 *	}
    		 *
    		 *	if(zeit<75-20)
    		 *	{
    		 *		if(kom3x!=0)
    		 *			kom3x--;
    		 *	}
    		 * Again: *WTF!?!?*
    		 */
    		 if( ( zeit < 65 ) && ( kom2x != 0 ) )
    			kom2x--;
    
    		 if( ( zeit < 55 ) && ( kom3x != 0 ) )
    			kom3x--;
    	}
    
    	/*
    	 *	defined as
    	 *		int komet()
    	 *	but no return value!
    	 */
    }
    

    Aber warum zum teufel lernst du nicht C (du bist übrigens im falschen Forum, hier ist C++) an einfachen Beispielen und wendest dann das erlernte in *einfachen*
    Progrämmchen an, anstatt dich auf ein "Spiel" zu stürzen, das weder irgendwann
    geil aussehen noch in absehbarer Zeit funktionieren wird? nimm dir bitte meine
    Kommentare zu Herze und denk scharf nach.

    Greetz, Swordfish


Anmelden zum Antworten