Igra besed
Dijaki so se začeli dolgočasiti pri urah računalništva in so si za popestritev
ur napisali igro z imenom Igra besed. Sestavljena je iz dveh stopenj.
Na prvi stopnji nam program izbere poljubno črko. V vnosno polje moramo vnesti
besedo (dolgo vsaj tri črke), ki se začne na izbrano črko. Imamo šest poskusov.
Po končani prvi stopnji nam program izpiše rezultat (kolikokrat smo res napisali
besedo s pravo začetno črko).
Pri drugi stopnji računalnik izbere poljubni prvi dve črki, naša naloga je,
da v vnosno polje vpišemo besedo, ki se začne z izbranima črkama (črki ne smeta
biti enaki, vrstnega reda črk ne smemo zamenjati). Ostalo je enako kot pri prvi
stopnji.
Napiši programsko kodo za zgoraj opisano igrico še ti.
Komentar:
Nalogi lahko dodamo višje nivoje (npr.: vpiši besedo, katere tretja
črka je izbrana črka, vpiši besedo, ki vsebuje izbrane tri črke,...).
Žal program ne zna preveriti, če je beseda smiselna. Slabost druge stopnje
je tudi, da včasih (pravzaprav večkrat) dobimo nemogočo kombinacijo začetnih
črk. Igra temelji na predpostavki poštenosti igralca. Prednost je univerzalnost
izbire jezika (igramo lahko v kateremkoli jeziku).
Program naključno izbere črko iz niza, v katerem je shranjena abeceda. Naključno črko dobimo tako, da naključno določimo mesto znaka v nizu.
int indeks;
String abeceda = "abcdefghijklmnoprstuvz";
char crka;
indeks = (int)(Math.random()*22);
crka = abeceda.charAt(indeks);
Program naključno izbere črko iz niza, v katerem je shranjena abeceda. Naključno črko dobimo tako, da naključno določimo mesto znaka v nizu.
int indeks;
String abeceda = "abcdefghijklmnoprstuvz";
char crka;
Random random = new Random();
indeks = random.Next(0, 22);
crka = abeceda[indeks];
import javax.swing.JOptionPane;
public class IgraBesed {
public static void main(String[] args) {
int ponovitev = 0;
int indeks;
String abeceda = "abcdefghijklmnoprstuvz";
char crka;
char zacetnaCrka;
int pravilno = 0;
int narobe = 0;
// prva stopnja
JOptionPane.showMessageDialog(null,
"Prva stopnja \n \n Vpisi besedo, ki se zacne na izbrano crko. \n"
+ " Beseda mora biti sestavljena iz vsaj treh crk!",
"Igra besed", JOptionPane.PLAIN_MESSAGE);
while (ponovitev < 6) {
// poiscemo nakljucno crko
indeks = (int) (Math.random() * 22);
crka = abeceda.charAt(indeks);
String beseda = JOptionPane.showInputDialog(null,
" Vpisi besedo, ki se zacne s crko \n " + crka,
"Igra besed", JOptionPane.PLAIN_MESSAGE);
zacetnaCrka = beseda.charAt(0);
// pregledamo, ali se vpisana beseda zacne s pravilno crko
if ((crka == zacetnaCrka) && (beseda.length() > 2)) {
JOptionPane.showMessageDialog(null, "Bravo.", "Igra besed",
JOptionPane.PLAIN_MESSAGE);
pravilno = pravilno + 1;
} else {
JOptionPane.showMessageDialog(null, "Narobe.", "Igra besed",
JOptionPane.PLAIN_MESSAGE);
narobe = narobe + 1;
}
ponovitev = ponovitev + 1;
}
JOptionPane.showMessageDialog(null, "Pravilnih resitev: " + pravilno
+ "\n Napacnih resitev: " + narobe, "Rezultati",
JOptionPane.PLAIN_MESSAGE);
// druga stopnja
ponovitev = 0;
pravilno = 0;
narobe = 0;
int indeks1, indeks2;
char crka1, crka2;
char zacetnaCrka1, zacetnaCrka2;
JOptionPane.showMessageDialog(null,
"Druga stopnja \n \n Vpisi besedo, ki se zacne na izbrani crki. \n"
+ " Beseda mora biti sestavljena iz vsaj treh crk!",
"Igra besed", JOptionPane.PLAIN_MESSAGE);
while (ponovitev < 6) {
// poiscemo dve nakljucni crki
indeks1 = (int) (Math.random() * 22);
indeks2 = (int) (Math.random() * 22);
crka1 = abeceda.charAt(indeks1);
crka2 = abeceda.charAt(indeks2);
// ce sta crki razlicni, naredimo podobno kot zgoraj
if (crka1 != crka2) {
String beseda = JOptionPane.showInputDialog(null,
" Vpisi besedo, ki se zacne s crkama \n "
+ crka1 + crka2, "Igra besed",
JOptionPane.PLAIN_MESSAGE);
zacetnaCrka1 = beseda.charAt(0);
zacetnaCrka2 = beseda.charAt(1);
if ((crka1 == zacetnaCrka1) && (crka2 == zacetnaCrka2)
&& (beseda.length() > 2)) {
JOptionPane.showMessageDialog(null, "Bravo.", "Igra besed",
JOptionPane.PLAIN_MESSAGE);
pravilno = pravilno + 1;
} else {
JOptionPane.showMessageDialog(null, "Narobe.",
"Igra besed", JOptionPane.PLAIN_MESSAGE);
narobe = narobe + 1;
}
ponovitev = ponovitev + 1;
}
// sicer ponovimo izbor (stevilo ponovitev se ne poveca)
}
JOptionPane.showMessageDialog(null, "Pravilnih resitev: " + pravilno
+ "\n Napacnih resitev: " + narobe, "Rezultati",
JOptionPane.PLAIN_MESSAGE);
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace IgraBesed {
class Program {
static void Main(string[] args) {
int ponovitev = 0;
int indeks;
String abeceda = "abcdefghijklmnoprstuvz";
char crka;
char zacetnaCrka;
int pravilno = 0;
int narobe = 0;
// prva stopnja
Console.Write(
"Prva stopnja \n \n Vpiši besedo, ki se začne na izbrano črko. \n" +
" Beseda mora biti sestavljena iz vsaj treh črk! ");
while (ponovitev < 6) {
//poiscemo nakljucno crko
Random random = new Random();
indeks = random.Next(0, 22);
crka = abeceda[indeks];
Console.Write(" Vpiši besedo, ki se začne s črko " + crka + ": ");
String beseda = Console.ReadLine();
zacetnaCrka = beseda[0];
//pregledamo, ali se vpisana beseda zacne s pravilno crko
if ((crka == zacetnaCrka) && (beseda.Length > 2)) {
Console.WriteLine("Bravo.");
pravilno = pravilno + 1;
} else {
Console.WriteLine("Narobe.");
narobe = narobe + 1;
}
ponovitev = ponovitev + 1;
}
Console.WriteLine("Pravilnih rešitev: " + pravilno
+ "\n Napačnih rešitev: " + narobe);
// druga stopnja
ponovitev = 0;
pravilno = 0;
narobe = 0;
int indeks1, indeks2;
char crka1, crka2;
char zacetnaCrka1, zacetnaCrka2;
Console.Write(
"Druga stopnja \n \n Vpiši besedo, ki se začne na izbrani črki. \n" +
" Beseda mora biti sestavljena iz vsaj treh črk! ");
while (ponovitev < 6) {
//poiscemo dve nakljucni crki
Random random = new Random();
indeks1 = random.Next(0, 22);
random = new Random();
indeks2 = random.Next(0, 22);
crka1 = abeceda[indeks1];
crka2 = abeceda[indeks2];
//ce sta crki razlicni, naredimo podobno kot zgoraj
if (crka1 != crka2) {
Console.Write("Vpiši besedo, ki se začne s črkama \n" + crka1 + crka2 + ": ");
String beseda = Console.ReadLine();
zacetnaCrka1 = beseda[0];
zacetnaCrka2 = beseda[1];
if ((crka1 == zacetnaCrka1) && (crka2 == zacetnaCrka2) && (beseda.Length > 2)) {
Console.WriteLine("Bravo.");
pravilno = pravilno + 1;
} else {
Console.WriteLine("Narobe.");
narobe = narobe + 1;
}
ponovitev = ponovitev + 1;
}
//sicer ponovimo izbor (stevilo ponovitev se ne poveca)
}
Console.WriteLine("Pravilnih rešitev: " + pravilno + "\n Napačnih rešitev: " + narobe);
Console.ReadKey();
}
}
}
#!C:/Python30/python
#-*-encoding: utf-8 -*-
# -*- coding: latin-1 -*-
'''
Created on 29.6.2009
@author: fajdigap
'''
import random
ponovitev = 0
abeceda = "abcdefghijklmnoprstuvz"
pravilno = 0
narobe = 0
#prva stopnja
print("Prva stopnja \n Vpisi besedo, ki se zacne na izbrano crko. \n"
" Beseda mora biti sestavljena iz vsaj treh crk!"
"Igra besed")
while ponovitev < 5:
#poiscemo nakljucno crko
indeks = random.randint(0,21)
crka = abeceda[indeks]
print (" Vpisi besedo, ki se zacne s crko " ,crka)
beseda = input()
zacetnaCrka = beseda[0]
#pregledamo, ali se vpisana beseda zacne s pravilno crko
if (crka == zacetnaCrka) and (len(beseda) > 2):
print( "Bravo.", "Igra besed")
pravilno = pravilno + 1
else:
print("Narobe.", "Igra besed")
narobe = narobe + 1
ponovitev = ponovitev + 1
print("Pravilnih resitev: " ,pravilno,"\n Napacnih resitev: ",narobe, "Rezultati")
# druga stopnja
ponovitev = 0
pravilno = 0
narobe = 0
print("Druga stopnja \n \n Vpisi besedo, ki se zacne na izbrani crki. \n"
" Beseda mora biti sestavljena iz vsaj treh crk!",
"Igra besed")
while ponovitev < 5:
# poiscemo dve nakljucni crki
indeks1 = random.randint(0,21)
indeks2 = random.randint(0,21)
crka1 = abeceda[indeks1]
crka2 = abeceda[indeks2]
# ce sta crki razlicni, naredimo podobno kot zgoraj
if crka1 != crka2:
print(" Vpisi besedo, ki se zacne s crkama \n",crka1,crka2, "Igra besed")
beseda = input()
zacetnaCrka1 = beseda[0]
zacetnaCrka2 = beseda[1]
if (crka1 == zacetnaCrka1)and (crka2 == zacetnaCrka2)and (len(beseda) > 2):
print( "Bravo.", "Igra besed")
pravilno = pravilno + 1;
else:
print("Narobe.","Igra besed")
narobe = narobe + 1
ponovitev = ponovitev + 1
#sicer ponovimo izbor (stevilo ponovitev se ne poveca)
print("Pravilnih resitev:",pravilno,"\n Napacnih resitev: ",narobe, "Rezultati" )