Coder Social home page Coder Social logo

tetribit's Introduction

	PETRUSCA BOGDAN-MIHAI
	SERIA: 313CB	
	Functiia is_set verifica daca bitul i al unui numar este 1 sau 0.
	Functiia print_bits afiseasa numarul "number" sub forma ceruta in problema.
	Functiile "miscStanga" si "miscDreapta" returneaza cat poate sa se miste piesa pe orizontala pentru a nu "iesi" din harta sau pentru a nu avea colizuni cu harta. Am creat un while infinit, iar in acesta, un for cu un if care verifica daca bitii 0,8.16...,56(pentru dreapta) sau 7,15,...63(pentru stanga) nu sunt 1 sau daca intre piesa si n nu exista coliziune. Daca unul dintre aceste cazuri este adevarat se iese din acest for iar "val" ia valoarea -1. Variabila nr reprezinta numarul de mutari care s-ar putea realiza. Functiile returneaza "mutare" daca aceasta este mai mica decat "nr+val", si returneaza "nr+val" in caz contrar. Am adunat val la nr pentru ca piesa sa nu se suprapuna hartii daca exista coliziune.
	Functia rmvLine elimina linia umpluta cu 1. Mai intai am facut un for care gaseste linia respectiva, iar daca o gaseste valorea lui "val" ramane 1. Dupa aceea salvez in variabila "liniePlina", linia plina adunata cu 1 pentru a intra in if-ul de mai jos daca linia plina de 1 este prima linie a hartii. In if-ul respectiv scad valoarea lui "liniePlina" cu 1. Creez variabila "v" pe care o umplu de 1 pana la linia i, iar in variabila "v2" umplu cu 1 tot ce este deasupra liniei ce trebuie eliminate. In variabila t salvez harta de sub linia ce trebuie eliminata, iar deasupra ei sa fie 0. Creez variabila t2 astfel incat sa se salveze harta de deasupra liniei ce trebie eliminate, iar sub linie sa fie 0. De asemenea shiftez t2 cu un rand pentru a se elimina linia pe care o vrem eliminata. Dupa aceea combin ambele variabile si returnez rezultatul.
	Functia "score" calculeaza scorul.
	Prima oara se citeste harta si numarul de piese. Daca numarul de piese este 0 atunci "verif" ia valoarea 1. Am creat un for in care am citit piesele. Daca o piesa este de 2 linii atunci se face prima  mutare pe orizontala, separat de celelalte mutari. Am creat un for care reprezinta mutarile pe verticala si tin minte numarul de mutari cu ajutorul variabilei "cnt". Dupa acea se face mutarea propiu-zisa la stanga sau la dreapta. Am creat un if care verifica daca piesa este de 2 linii si daca j=6, adica daca piesa de 2 linii a ajuns la marginea inferioara a hartii. In acest caz se iese din for si se citeste alta piesa. Dupa aceea verific in avans daca piesa nu are coliziune cu harta, iar in acest caz mut piesa mai jos cu o linie. Daca are coliziune cu harta citesc in gol mutarile pe orizontala pana cand se citesc 8 mutari. Dupa terminarea acestor comenzi se insereaza piesa in harta.
La sfarsit un if verifica daca "verif" este 0 adica nu s-au citit piese si afiseaza harta in acest caz. Dupa aceea afisam scorul.

tetribit's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.