Programavimo pamokėlės

pamokelesm

Mokymų ciklas „Programavimo pamokėlės" skirtos visiems, kurie nori išmokti programuoti.

IT galvosūkiai

itgalvosukiai

Konkurso tikslas – skatinti moksleivius domėtis IT sprendžiant įvairiausius galvosūkius.

Informikas

informikasm

Konkurso tikslas – supažindinti moksleivius su menu informacinėse technologijose ir mūsų talismanu.

Dr. J. P. Kazicko konkursai

kkonkursai

Žemaitijos, Aukštaitijos, Suvalkijos ir Dzūkijos regionuose vykdomas IT konkursas.

       

Užduotis

Sudarykite programą, kuri klasikinio žaidimo „Laivų mūšis“ (http://en.wikipedia.org/wiki/Battleship_(game)) žaidimo lauko matricoje atsitiktine tvarka išdėstytų vienviečius, dviviečius, triviečius ir keturviečius laivus. Žaidimo lango matricos ilgis ir plotis yra x langelių. Žaidimo lauke laivai gali būti talpinami tik iš kairės į dešinę. Jei langeliai užimti vienviečio laivo, jie žymimi 1, dviviečio – 22, triviečio - 333, keturviečio – 4444. Jei talpinant laivą į žaidimų lauką nustatoma, kad kuris nors langelis užimtas kito laivo – laivas nebekuriamas.

Duomenų failo Duomenys.txt pirmoje eilutėje įrašytas skaičius, nusakantis žaidimų lango ilgį ir plotį, antroje – reikiamų sukurti vienviečių, dviviečių, triviečių ir keturviečių laivų kiekiai.

Rezultatų faile Rezultatai.txt turi būti išvedama sukurto laivų mūšio lauko matrica, o taip pat kiek vienviečių, dviviečių, triviečių ir keturviečių laivų nepavyko sukurti.

Pradinių duomenų pavyzdys

Galimi rezultatai (dėl funkcijos random panaudojimo, rezultatai kiekvieną kartą gali skirtis)

12

2 2 3 5

000000000000

000000333000

044440000000

000044440000

000000000000

000022000100

000000002200

000000444400

000000000000

000000000000

013330000000

000000000000

Nepavyko suformuoti:

Vienviečiu: 0

Dviviečių: 0

Triviečių: 1

Keturviečių: 2

Reikalavimai

  • Sukurti funkcijas, pildančias laivus žaidimų lauke.
  • Sukurti duomenų failą nuskaitančias ir rezultatus išvedančias funkcijas.
  • Atsitiktinio skaičiaus generavimui galima naudoti funkciją rand();
  • Žaidimo laukui saugoti reikia naudoti dvimatį masyvą.

Papildoma informacija

  • Lygis: 2
  • Taškai: 20
Į viršų