NIM Game

Introducere

Proiectul are ca scop implementarea unui joc asemanator cu cel clasic NIM. Exista doua moduri de joc:

  • single player, in care se joaca impotriva unei inteligente artificiale
  • multiplayer, caz in care, se vor conecta doua placute.

Descriere generală

Jocul are urmatoarele reguli:

  • Exista 3 linii ce contin 3, 5, respectiv 7 leduri.
  • La fiecare pas, un jucator poate stinge un numar de la unul pana la toate ledurile aprinse de pe o singura linie.
  • Jucatorul care stinge ultimul led pierde jocul.

Hardware Design

Componente folosite:

  • Leduri
  • Butoane
  • Rezistente
  • Cablu serial (home made)
  • Fire de legatura

Schema placii de baza:

Software Design

Pentru implementarea inteligentei artificale, in cazul alegerii modului de joc “single player”, am folosit algoritmul negamax. Functia de evaluare se bazeaza pe urmatoarea proprietate a jocului: Fiind date N linii cu leduri, prima linie avand n1 leduri, cea de-a doua n2 samd, o pozitie este pierzatoare in jocul de NIM daca si numai daca suma-xor a numerelor de leduri din linii este diferita de 0, adica daca x1 xor x2 … xor xN ≠ 0.

Pentru implementarea comunicatiei seriale, ne-am documentat din laborator.

Rezultate Obţinute

Proiectul functioneaza conform asteptarilor.

nim_game_final.jpg

Concluzii

“Unde-s doi puterea creste.” Ne-a ajutat foarte mult faptul ca am lucrat in echipa, iar satisfactia de la final a fost cu atat mai mare deoarece ne-am jucat impreuna.

Download

Jurnal

  • Day 1. Alegerea temei de proiect.
  • Day 2. Lista de comparaturi pentru componente
  • Day 5. Drum pe Maica Domnului
  • Day 9. Incepem sa lipim si sa codam.
  • Day 15. Debugging, arsuri si scurt circuite.
  • Day 19. Se aprind ledurile si functioneaza butoanele.
  • Day 21. Ne jucam cu o placuta.
  • Day 22. Cablu serial home made.
  • Day 23. It is working!

Bibliografie/Resurse

pm/prj2011/dloghin/nim.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0