Hra šibenice – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hra šibenice – C / C++ – Fórum – Programujte.comHra šibenice – C / C++ – Fórum – Programujte.com

 

hajnis0
Newbie
8. 11. 2009   #1
-
0
-

Dobrý den, potřeboval bych poradit s hrou šibenice, kde při výpisu slova se mi má vypsat první a poslední písmeno slova, písmena mezi jsou značeny pomlčkou, avšak nemohu přijít na to, jak to udělat aby se mi vypsalo poslední písmeno. Prosím poraďte zde je kód:
using namespace std;

char slovo[11];
char pomlcka[]="-";
int velikost;
int pp;

int main(int argc, char *argv[])
{


cout<<"\n zadej slovo o max 10ti znacich \n";
cin.getline(slovo,sizeof(slovo));

velikost=strlen(slovo);
cout<<velikost<<" znaku\n";
cout<<slovo[0];
for(velikost=1; velikost<strlen(slovo)-1; velikost++)
cout<<"-";
pp=sizeof(slovo)-2;
cout<<pp;





system("PAUSE");
system("CLS"); //vymaze obrazovku



return EXIT_SUCCESS;
}

Nahlásit jako SPAM
IP: 78.136.191.–
Grungy0
Super člen
8. 11. 2009   #2
-
0
-

myslím že na vypísanie posledného znaku stačí cout<<slovo[strlen(slovo)-1] alebo cout<<slovo[velkost-1]

Nahlásit jako SPAM
IP: 188.123.100.–
Prvý náznak hlúposti, je pocit geniality.
hajnis0
Newbie
8. 11. 2009   #3
-
0
-

Aha jo díky funguje to

Nahlásit jako SPAM
IP: 78.136.191.–
dotaz
~ Anonymní uživatel
4 příspěvky
18. 11. 2009   #4
-
0
-

dobry den chtel bych se zeptat jak by se provedlo rozsireni hry o to, ze by 2 hrac hadal to slovo co tam napisu pomoci jakeho cyklu to udelat?

Nahlásit jako SPAM
IP: 213.194.221.–
liborb
~ Redaktor
+18
Guru
18. 11. 2009   #5
-
0
-

Pokud si dobře pamatuji, tak šibenice se vždy (při neúspěšném hádání) nakreslila za určitý počet kroků. To by vedlo na cyklus typu for.
Druhý pohled na věc je, že hra končí pokud hráč slovo uhodne. Ve stylu - zadej písmeno a zkontroluj, jestli tam je a na konci cyklu otestuj, jestli už slovo není komplet. To zase vede na cyklus do-while.
Pokud budeš chtít jenom zadávat písmenka a spočítat na kolik pokusů se to hráči povedlo, tak B je správně. Pokud budeš chtít víc pracovat s tím "kreslením" šibenice, tj. s maximálním počtem opakování, tak bych volil možnost A.

Nahlásit jako SPAM
IP: 91.203.96.–
MaS0
Návštěvník
18. 11. 2009   #6
-
0
-

Podle mě by se docela dobře dal použít nekonečný cyklus while (while(1){...), v těle cyklu se zeptat na hráčův tip, pokud hráč neuhodne, tak zavolat fci na dokreslení šibenice popřípadě přičíst počet,... pokud uhodne, tak dopsat písmenko a nakonci každého cyklu testovat, jestli hráč slovo uhodl nebo je nakreslená celá šibenice - pokud ano, tak vypsat nějakou hlášku a cyklus ukončit (break;)...

Nahlásit jako SPAM
IP: 81.19.46.–
crAzY^
~ Moderátor
+10
Grafoman
19. 11. 2009   #7
-
0
-

To MaS : nebo

while(!jeSibenicePostavena())

{
... atd. co jsi psal ...
}

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
dotaz
~ Anonymní uživatel
4 příspěvky
19. 11. 2009   #8
-
0
-

mam tu tenhle program na vypis slova ,ktere po stisknuti enter napise jen 1 a posledni pismeno a chtel bych to rozsirit o to ze se bude hadat slovo a kdyz to pismeno tam bude doplni se to do slova a kdyz ne tak se odecte pokus..
pomuze mi s tim nekdo prosim ?


{

char vstup[50];
int i;
cout << "Prosim hrace c.1 aby zadal slovo o max. delce 20 znaku: ";
cin >> vstup;
system("CLS");
for ( i = 1; i < strlen(vstup)-1; i++ )
{
vstup[i] = '-';
}

cout << vstup;
cout << "\n";
cout << "Prosim hrace c2. aby zadal pismeno : ";
system("PAUSE");
return EXIT_SUCCESS;
}

Nahlásit jako SPAM
IP: 213.194.221.–
liborb
~ Redaktor
+18
Guru
19. 11. 2009   #9
-
0
-

Program budeš muset trochu rozšířit. Předně si zadaný řetězec (slovo) v té proměnné vstup "znehodnotíš" těmi znaky -.
Takže si založ 2. řetězcovou proměnnou (třeba vystup :-)). Po zadání slova si do této proměnné udělej kopii (pokud nemáš po ruce žádnou funkci na kopírování řetězců, tak si vystačíš s for cyklem).
Pak bude následovat náhrada za - a zadávací cyklus pro 2. hráče (řekněme do-while :-)).
V tom cyklu načteš zadaný znak od hráče, zjistíš jeho výskyt v původním (překopírovaném) řetězci. Když tam bude, tak ho do upraveného vrátíš, a když ne tak odpočítáš pokus. Následovat bude test na vyčerpání pokusů a cyklus uzavře test na to, jestli hráč slovo už neuhodnul. Například porovnáním, jestli uložený a upravený řetězec už jsou zase shodné.

Nahlásit jako SPAM
IP: 91.203.96.–
dotaz
~ Anonymní uživatel
4 příspěvky
19. 11. 2009   #10
-
0
-

ja prave nevim cim zjistim jestli je treba A v tom slove nebo jestli neni nemuzu na to prijit

Nahlásit jako SPAM
IP: 213.194.221.–
liborb
~ Redaktor
+18
Guru
19. 11. 2009   #11
-
0
-

Tak jako měníš znaky na "-", tak stejně projdeš celý řetězec a v podmínce (if) porovnáš znak z řetězce se zadaným znakem od hráče, něco jako:
vystup[i] == znak

Nahlásit jako SPAM
IP: 91.203.96.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 108 hostů

Podobná vlákna

Hra — založil mephi

Hra? — založil johny5

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý