Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann.

Russisches Roulette

Diskussion: Russisches Roulette im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Anzeige Zitat: Zitat von _Sakul_ naja, und irgendiwe funktionierts nicht also wenn ich gefragt werde ob ich spielen will tötet ...

Antwort
Alt 10.07.11, 13:22   #46 (permalink)
 
Benutzerbild von IGotMuscles
 
Registriert seit: 09.07.11
IGotMuscles Leistung: Facit NTK
Likes: 2
Standard

Anzeige

Zitat:
Zitat von _Sakul_ Beitrag anzeigen
naja, und irgendiwe funktionierts nicht also wenn ich gefragt werde ob ich spielen will tötet mich mein computer immer weil ich mich nicht an die regeln halte,... also ohne dass ich gefragt werde ob ich drehen oder schiessen will....

ich werds dann ausbessern wenn ich drauf gekommen bin warum,....

und falls jemand von euch drauf kommen sollte,... ich bin für hilfe und tipps dankbar.

lg lukas
versuch mal die switch-anweisung ob man abrücken oder das magazin drehen möchte in eine schleife zu stecken und bei default einfach die abfrage solange zu wiederholen bis man sich für eine der zwei optionen entschieden hat,
bin mir jetzt nicht 100ig sicher, habe mit scanf eigtl noch nicht gearbeitet,
aber vllt liegt das steuerzeichen '\n' noch im puffer und du wirst deshalb immer gleich umgenietet...
IGotMuscles ist offline   Mit Zitat antworten
Alt 10.07.11, 14:00   #47 (permalink)
 
Registriert seit: 08.07.11
_Sakul_ Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von IGotMuscles Beitrag anzeigen
versuch mal die switch-anweisung ob man abrücken oder das magazin drehen möchte in eine schleife zu stecken und bei default einfach die abfrage solange zu wiederholen bis man sich für eine der zwei optionen entschieden hat,
bin mir jetzt nicht 100ig sicher, habe mit scanf eigtl noch nicht gearbeitet,
aber vllt liegt das steuerzeichen '\n' noch im puffer und du wirst deshalb immer gleich umgenietet...
danke dir, daran hat es gelegen!!

jetzt funktioniert es einwandfrei

die switch-case-anweisung sieht jetzt so aus:

Code:
x = 0;
                        while( x == 0)
                        {
                                scanf("%c", &input);
                                switch( input )
                                {
                                        case 'a': {
                                                hum = abdruecken();
                                                x = 1;
                                                break;
                                        }
                                        case 'd': {
                                                drehen();
                                                hum = abdruecken();
                                                x = 1;
                                                break;
                                        }
                                        default: {
                                                x = 0;
                                                break;
                                        }
                                }
                        }
danke und lg
_Sakul_ ist offline   Mit Zitat antworten
Alt 04.11.11, 11:18   #48 (permalink)
 
Registriert seit: 25.09.05
elite-noob Leistung: Facit NTK
elite-noob eine Nachricht über ICQ schicken
Likes: 2
Standard

Auchw enn ich eine Leiche Ausgrabe ;-) aber habe mich dem Thema jetzt auch mal angenommen und das ganze für die Powershell umgesetzt.
Grafik gibt es nicht, Ausgabe ist auch extrem Simpel, aber es funktioniert ^^

Hier Der Code in Powershell:
Code:

cls
#Erzeuge Ein Random Objekt und eine Random Zahl
$rand=New-ObjectSystem.Random
$Bullet=$rand.next(0,5)
#Erstelle ein Waffe und "Lade" diese mit einer Patrone
$Gun= @(0,0,0,0,0,0)
$Gun[$Bullet] = 1
#Startet ein neues Spiel
functionNewGame
{
Write-Host"Möchten Sie eine Runde spielen?"
$Game=Read-Host"Bitte drücken Sie J für Ja und N für Nein!"
IF ($Game-like"J")
{
$Bullet=$rand.next(0,5)
#Erstelle ein Waffe und "Lade" diese mit einer Patrone
$Gun= @(0,0,0,0,0,0)
$Gun[$Bullet] = 1
Question
}
ElseIF ($Game-like"N")
{
Exit
}
Else
{
NewGame
}
}
#Setzt die Patronenkammer auf einen StartWert
$chamber=$rand.next(0,5)
 
#Funktion die Frägt ob man Schießen oder Drehen möchte.
functionQuestion
{
Write-Host"Möchten Sie Drehen oder gleich Schießen?"
$Answer=Read-Host"Bitte drücken Sie S für Schießen, oder D für Drehen!"
IF ($Answer-like"S")
{
Shoot
}
ElseIf ($Answer-like"S")
{
Turn
}
Else
{
Question
} 
}
#Diese Funktion Schießt
functionShoot
{
IF ($Gun[$chamber] -eq 1)
{
Write-Host"Sie sind Tod!"
NewGame
}
Else
{
Write-Host"Der nächste Spieler ist drann, sie haben überlebt!"
IF ($chamber-eq 5)
{
$chamber= 0
}
Else
{
$chamber=$chamber+ 1
}
}
Question
}
#Diese Funktion Dreht das Magazin.
functionTurn
{
$chamber=$rand.next(0,5)
Question
}
NewGame
Kommentare/Kritik (außer das ich Englisch /Deutsch mische) sind gerne gesehen

Geändert von elite-noob (04.11.11 um 15:32 Uhr)
elite-noob ist offline   Mit Zitat antworten
Alt 04.11.11, 15:25   #49 (permalink)
 
Registriert seit: 12.04.09
CiscoKid Leistung: Z3
Likes: 2
Standard

Ich hab grad nen Kernel kompiliert und hatte nichts zu tun, dass hier ist in der Zeit entstanden:

Code:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>

void turn(int *p)
{
        *p = 6;
}

int shoot(int *p) {
        printf("%d chambers left\n", *p);
        return !(rand() % (*p)--);
}

# define COMPUTER 0
# define     USER 1

int main() {
        int players[2] = { 6, 6 }, who_shoots = 0, c;
        char *player_name[2] = { "Computer", "User" };

        srand(time(0));

        while (1) {
                c = 'y';
                switch (who_shoots) {
                case USER:
                        printf("Turn? (enter y or n) ");

                        /* skip newline */
                        c = (c = getchar()) == '\n' ? getchar() : c;
                case COMPUTER:
                        if (c == 'y') 
                                turn(&players[who_shoots]);
                }


                printf("%s shoots.... ", player_name[who_shoots]);
                if (shoot(&players[who_shoots])) {
                        printf("%s VERLIERT :(\n", player_name[who_shoots]);
                        break;
                }
                who_shoots = !who_shoots;
        }


        return 0;
}
CiscoKid ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Programmieraufgaben » Russisches Roulette
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
"Sicher" gewinnen bei Roulette? Pastor Off topic-Zone 19 10.09.10 17:27


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61