Folgen Sie uns auf Twitter Twitter  »  TRV bei Facebook FB  »  Besuche unseren YouTube-Channel YouTube  »  
Redakteure
gesucht!
 »  Werbung  »  Impressum  »  
Start Reviews Forum News Partner
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion Zu den Profileinstellungen

Bei 3597 Beiträgen & 670 Themen in 53 Foren
  Login speichern
Einloggen Einloggen

Forenübersicht » Aktuelles » Hard- sowie Software-Guides » Climbings little C tut

vorheriges Thema   nächstes Thema
13 Posts in diesem Thema (offen)
Seiten (1): (1)
Autor
Beitrag
climbing93 ist offline climbing93  
Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Hi ersmal, bin Progger in Ausbildung und möchte hier Aufgaben ausser Schule wenigstens etwas Sinn geben und poste sie hiermit mal, damit der eine oder andere auch Lust bekommt, mal was zu proggen

So, hier mal mein 20min Tic TacToe für C. Hatt zwar keine KI und ist auch nur Textbasiert, halt eben 20min bäh

War inner Schule, Lehrer hatt gedacht, jetzt hatt er mich beschäftigt lachend

Wer an C interessiert ist: C von A bis Z Openbook

Hier mal der Screenshot des fertigen Programms, als ide inner Schule hammer immo CodeBlocks mit GNU Compiler



Also erstmal die Überprüfungsfunktion, ist leider nicht variabel programmiert, aber kanns noch umschreiben, falls wer Bedarf hatt.

Code:
//int ist der Typ, der zurückgegeben werden soll, sonst void, wenn nichts zurückgegeben wird
int checkPlayFieldForWin(int spieler){
//i und b unglückliche Namen für X und Y und isWinner is ne Boolsche, 1 = True, 0 = False
    int ibisWinner 1;
    //Horizontal
    for(i=0;i<3;i++){
        if(playField[i][0] == spieler && playField[i][1] == spieler -&& playField[i][2] == spieler 1){
            isWinner 0;
            3;
        }
    }
    if(isWinner == 1){
        //Vertikal
        for(i=0;i<3;i++){
            if(playField[0][i] == spieler && playField[1][i] == spieler -&& playField[2][i] == spieler 1){
                isWinner 0;
                3;
            }
        }
        //oben links to unten rechts
    }else if(isWinner == 1){
        if(playField[0][0] == spieler -&& playField[1][1] == spieler && playField[2][2] == spieler 1){
              isWinner 0;
                3;
        }
        //unten links to oben rechts
    }else if(isWinner == 1){
        if(playField[0][2] == spieler -&& playField[1][1] == spieler && playField[2][0] == spieler 1){
              isWinner 0;
                3;
        }
    }
//Ob jemand gewonnen hatt
    return isWinner;
}
 


Die ist relativ einfach aufgebaut, erweiterbar wärs noch mit n Spalten, Zeilen und anzahl nötige Steine Like This:

Code:
//vertikal
      int anzahlStonesForWin 3anzahlSpalten 3anzahlZeilen 3;
        for(i=0;i<anzahlZeilen;i++){
            for(b=0;b<anzahlStonesForWin;b++){
                if(playField[b][i] == spieler 1){
                    isWinner 0;
                }
            }
        }
 


So, dann die grafische Ausgabe.

Sagen wir mal, _ sei leer. X O Standard für die beiden Spieler

Tipp: Spielerwechsel ganz einfach, indem man Modulo nimmt: spieler = spieler%2 + 1;

Das heisst, wir bekommen dann irgendwann diese Funtkion:


Code:
int printPlayField(void){
    int ib;
    for(i=0;i<3;i++){
    for(b=0;b<3;b++){
        if(b<2){
            switch(playField[b][i]){
                case -1printf("_t");
                break;
                case 0printf("Xt");
                break;
                case 1printf("Ot");
                break;
            }
        }else{
            switch(playField[b][i]){
                case -1printf("_n");
                break;
                case 0printf("Xn");
                break;
                case 1printf("On");
                break;
            }
        }
    }
    }
}
 

Diese Wandelt den spieler in das korrekt Zeichen um. Leider auch nicht variabel programmiert, da quick and dirty, but runnig without most of bugs.

Dann noch die main und wir haben ein TicTacToe in C:


Code:
int playField[2][2];
int main()
{
    int i,bspieler 2winxy;
    for(i=0;i<3;i++){
        for(b=0;b<3;b++){
            playField[i][b] = -1;
        }
    }
    printf("TicTacToen");
    do{
        spieler spieler%1;
        printf("Spieler%i ist am Zug!n"spieler);
        printf("yn");
        scanf("%i",&y);
        fflush(stdin);
        printf("xn");
        scanf("%i", &x);
        fflush(stdin);
        while(|| || || || playField[x][y] != -1){
            printf("Falsche Koordinaten, 0, 1 ,2 sind erlaubt!!n");
            printf("Spieler%i ist am Zug!n"spieler);
            printf("yn");
            scanf("%i",&y);
            fflush(stdin);
            printf("xn");
            scanf("%i", &x);
            fflush(stdin);
        }
        playField[x][y] = spieler 1;
        printPlayField();
        win checkPlayFieldForWin(spieler);
        if(win == 0){
            printf("Spieler%i hatt gewonnen!"spieler);
        }
    }while(win != 0);
    system("PAUSE");
}
 

Werd es nochmal etwas umbauen, keine Globale variabel mehr(Böse, da bad for paralell programming) und die anderen Funktion variabel gestalten und die Standard wiederholungsroutine.

Auch kann ich das ganze Dingens erklären, falls wer fragen hatt;)

BTW: C ist nicht das, was wirklich spass macht, wer mal lust hat, kann mit small Basic anfangen zu proggen, iss ganz easy. Einfach nie auf vba einlassen, sondern dann gleich auf VB.net.


Der Post wurde 1 mal editiert, zuletzt von climbing93 am 01.05.2010 - 00:57.
Beitrag vom 01.05.2010 - 00:57
Beitrags-Nr: 25916
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




Hi climbing.

Du hast das eigentlich schön selbstkritisch kommentiert glücklich "Switch" ist wirklich quik 'n dirtyzwinkern
Find das gut, dass ihr direkt Wert auf paralell programming legt.

Findest small Basic wirklich so toll?
Ich habe die Erfahrung gemacht, dass man mit C eigentlich super anfangen kann programmieren zu lernen um dann im Anschluss Objekt-Orientiert zu lernen. Gerade Zeigerarythmetik finde ich bei C ein wenig eklig, aber ist dennoch wichtig, das zu kennen.

Ich würde zum Anfangen C empfehlen (da echtes subset von C++, also C mit Objektenzwinkern ).
Dann würde ich aber programmierer direkt in Java jagen...

Übrigens... Du wirst lachen wie viele Unternehmen in der Praxis der Einfachheit halber Microsoft Frameworks einsetzen und auf VBA-Makros angewiesen sind glücklich

---
Gut gemacht glücklich
Beitrag vom 01.05.2010 - 03:17
Beitrags-Nr: 25917
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Jo, wir proggen inner Firma auch VB.net und haben auch schon 2 VBA dinger geschrieben, aber lieber nicht nochmal
Beitrag vom 01.05.2010 - 11:20
Beitrags-Nr: 25919
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Einmal Switch und String Operationen in nem Getraenkeautomat eingebaut:


Code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int auswahl;
    float kosteneinwurfretourGeld;
    //String in C
    char getraenkName[11];
    printf("Getraenkeautomatnn");
    printf("Waehlen sie Ihr Getraenk aus:n1) Wassert(0.50 Fr.)n2) Limonadet(1.00 Fr.)n3) Biertt(2.00 Fr.)nn");
    auswahl rightInput(1,3);
    switch(auswahl){
        case 1:
            kosten 0.50;
            //String bauen
            strcpy(getraenkName"ihr Wasser");
        break;
        case 2:
            kosten 1;
            strcpy(getraenkName"ihre Limonade");
        break;
        case 3:
            kosten 2;
            strcpy(getraenkName"ihr Bier");
        break;
        default:
            printf("Interner Fehler, Programm wird beendet");
            return -1;
        break;
    }
    do{
        printf("Bitte werfen Sie %1.2f Euro ein: "kosten);
        scanf("%f",&einwurf);
        fflush(stdin);
    }while(einwurf kosten);
    printf("Bitte entnehmen Sie %s.n"getraenkName);
    retourGeld einwurf kosten;
    if(retourGeld 0){
    printf("Ihr Retourgeld betraegt %.2f Fr.n"retourGeld);
    }
    //Damit das programm nicht verschwindet
    system("PAUSE");
    return 0;
}
//Überprüfungsfunktion für die richtige EIngabe von Werten
int rightInput(int minint max){
    int returnRightInputcounter;
    char komma ' ';
    do{
        printf("Geben Sie");
        for(counter=min;counter <= max;counter++){
            if(counter == max){
                printf(" oder %i ein:",counter);
            }else{
                printf("%c %i",komma,counter);
            }
            komma ',';
        }
        scanf("%i",&returnRightInput);
        fflush(stdin);
    }while(returnRightInput min || returnRightInput max);
}
 


Ergibt am Ende einen Getränkeautomaten und dieses Ding Stuf ich mal als nicht quick and dirty ein.

Standardmethode, welche ich verwende um das Programm n-mal laufen zulassen ist:

Code:
int nochmals 1;
char janein;
do{
printf("Nochmal?J or Nn");
scanf("%c", &janein);
fflush(stdin);
while(janein != 'J' && janein != 'N'){
printf("Nochmal?J or Nn");
scanf("%c", &janein);
fflush(stdin);
}
}while(nochmals == 1);
 


String mach ich immo mit Char Array, welche ich dann mit der Methode strcpy(Ziel, Wert) auffülle.

Switch ist auch relativ einfach


Code:
switch(variable){
case wert:
anweisungen;
break;
default:
anweisungen;
break;
case wert1:
case wert2:
Anweisungen;
break;



Der Post wurde 1 mal editiert, zuletzt von climbing93 am 01.05.2010 - 16:48.
Beitrag vom 01.05.2010 - 16:46
Beitrags-Nr: 25936
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




was lernst du denn climbing?!
Beitrag vom 05.05.2010 - 13:55
Beitrags-Nr: 26069
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Applikationsentwickler;)
Beitrag vom 06.05.2010 - 19:43
Beitrags-Nr: 26148
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




Ist das ne Ausbildung?
Erzähl mal ein wenig mehr, das sagt ja bislang nur aus, dass du programmieren lernstzwinkern
Beitrag vom 07.05.2010 - 03:29
Beitrags-Nr: 26153
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

@gomf

Deine Sig ist genial

Ich mach ne Ausbildung bei ner Bank als Informatiker-Applikationsentwickler mit BMS.

Gemacht haben wir mit Acces ein Memory und irgendein Adressenverteiler mit Abgleichung mit einer internen DB.

Dann haben wir ein 4Gewinnt programmiert mit Multiplayer(SQL-Server) und Access db, wenn kein lan. dazu musste man etwas programmieren, dass die sqlparameters in die Abfrage der Access-DB umwandelte. KI wurde keine programmiert, da zu aufwendig.

Immo sind wir an einem Mesenger dran, der auch übern SQL-Server läuft, mit StoredProcedures und allem drum und dran. Architektonisch so designt, dass wir relativ leicht ein Xaml-Gui dafür bauen können, wenn wir den Windows FOrms client fertig ham.

Und was machst du?

MFG

Climbing
Beitrag vom 08.05.2010 - 12:08
Beitrags-Nr: 26202
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




Ich habe Computer Science and Media studiert und mache momentan meinen Master of IT.

Gelernt habe ich von diversen Programmiersprachen, über Design und Analyse Patterns, Projectmanagement methoden, nen guten Schwund BWL/VWL, Datenbanken, Netzwerken, betriebsystemen und Informationssystemen bis (:D) hin zu 3D Modellierung ERP, CRM Systemen, IT Service Science und noch vieles mehr. Und momentan geht das noch weiter.

Das hab ich so ca. gelernt.
Beitrag vom 08.05.2010 - 13:20
Beitrags-Nr: 26210
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Und praxis?
Beitrag vom 08.05.2010 - 13:54
Beitrags-Nr: 26217
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




Du fragst nach meiner Berufserfahrung? Du bist mir ja einer...

Netzwerkadministration, Anwendungsentwicklung, Parallelcomputing (High performance cluster bereich),
Webentwicklung, Information System Helpdesk und Support (SAP, SAP/BW) und Penetrationtests (Security)... ich glaube das ist alles IT relevante... die ganzen Projectmanagement und BWL Geschichten, sowie fachfremde sachen, schreib ich nun einfach mal nicht rein glücklich

Du kannst aber davon ausgehen, dass man an einer Uni, das praktische was man studiert, auch beherrscht..
Beitrag vom 08.05.2010 - 15:22
Beitrags-Nr: 26219
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
climbing93 ist offline climbing93  
Re: Climbings little C tut
71 Beiträge - Forenkenner




Betriebsystem:
Win7 X64 Ultimate RC
Browser:
Firefox

Jo, war ja nicht rauszulesen, dass du bis jetzt 'nur' studierst hast.
Beitrag vom 08.05.2010 - 15:35
Beitrags-Nr: 26221
Diesen Beitrag melden   nach weiteren Posts von climbing93 suchen climbing93`s Profil ansehen climbing93 eine Kurznachricht senden climbing93 zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Gomf ist offline Gomf  
Re: Climbings little C tut
Freier Mitarbeiter
299 Beiträge - Forentipper


Gomf




Nun.. ich habe nicht "nur" studiert....
Beitrag vom 09.05.2010 - 08:13
Beitrags-Nr: 26240
Diesen Beitrag melden   nach weiteren Posts von Gomf suchen Gomf`s Profil ansehen Gomf eine E-Mail senden Gomf eine Kurznachricht senden Gomf zu deinen Freunden hinzufügen Diesen Beitrag ausdrucken zum Anfang der Seite
Baumstruktur - Signaturen anzeigen
Seiten (1): (1)
vorheriges Thema   nächstes Thema

Forenübersicht » Aktuelles » Hard- sowie Software-Guides » Climbings little C tut
Gehe zu:  

Es ist / sind gerade keine registrierte(r) Benutzer und 46 Gäste online. Neuester Benutzer: Caseking-Marian
Mit 2559 Besuchern waren am 26.02.2012 - 16:42 die meisten Besucher gleichzeitig online.
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
Diese Webseite wird klimaneutral gehostet. Copyright © 2009 - by Tech-Review.de
Seite in 0.19586 Sek. geparst dazu benötigte PHP  MySQL Anfragen.

Diese Webseite wurde mit PHPKIT Version 1.6.1 erstellt
PHPKIT ist eine eingetragene Marke der Gersöne & Schott GbR - Copyright © 2002-2004