Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 56 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
# Scope ve Closure Projesi

The module challenge is the afternoon project or assignment that students work through independently. This expands on the guided project completed earlier with the instructor.

## JavaScript Temelleri

## Scope ve Closure

## Amaçlar

- function scope'u anlamak
- Closure'un ne olduğunu tarif edebilmek, bir programda closure nasıl oluşturuluyor ve JavaScript'te closure'un neden önemli olduğunu anlamak

## Talimatlar

Bu proje hem scope hem de closure'a odaklanmaktadır.

Bir yazılımcı olarak spor ve hobilerimize de zaman ayırmak zihin sağlığımız ve verimliliğimiz için önemlidir. Spor olarak basketbola ilgili duyduğumuzu ve maçları takip ettiğimizi hayal edelim.

Bu projede bir basketbol maçının basit bir simulasyonunu yapacağız. Her periyot takımların attığı basketleri rastgele üreterek maç sonucunu ortaya koyan bir oyun yazacağız.

Basketbol kurallarını bilmiyorsanız bile hiç sorun değil. Çok basit olarak 4 periyot oynanan bir oyun. Eğer maçın bitiş düdüğü ile beraberlik olursa maç uzatmaya gider. Bir takım kazanana kadar da uzatmalar oynanır.


## Talimatlar

### Görev 1: Proje Kurulumu

VSCode ve Komut Satırını Kullanma:

1. Bu repo'yu fork'layın
2. Frok'ladığınız repo'yu bilgisayarınızda clone'layın
3. LÜTFEN BRANCH OLUŞTURMAYINIZ! Bu projede main branch'ine push'layacaksın
4. Repo'nuzun olduğu klasöre gidin (`cd REPO_ADI`)
5. Vs code'da terminali açın ve `npm install` yazın ve çalıştırın
6. Sonra `npm run test` yazın ve çalıştırın
7. Projenizi tamamladıktan sonra `push` yaparak githuba aktarın

### Görev 2: Yapılması gerekenler

`index.js` dosyasını bulun ve fonskiyondan geri gelen değerin(`return`) beklenen gibi görünene kadar görevleri tamamlamaya çalışın.

### Test Etme & Debug Yapma

Projenizin içinde "split terminal"i tıklayarak ikinci bir terminal ekranı açın.

Açılan ikinci terminalde `npm start` yazıp çalıştırın.

Bir terminal ekranında testleri çalıştırırken bir diğerinde ise debug yapabileceksin. Kodlarınızda güncelleme yaptıkça ilerlemeyi kontrol için `console.log`u kullanın.

### Görev 3: Zorlayıcı Görevler

Sana verilen gün sonu projesindeki görevleri tamamladıktan sonra zorlayıcı çalışmaları yapabilirsin.

## Proje Teslim Etme Adımları

# Scope ve Closure Projesi
The module challenge is the afternoon project or assignment that students work through independently. This expands on the guided project completed earlier with the instructor.
## JavaScript Temelleri
## Scope ve Closure
## Amaçlar
- function scope'u anlamak
- Closure'un ne olduğunu tarif edebilmek, bir programda closure nasıl oluşturuluyor ve JavaScript'te closure'un neden önemli olduğunu anlamak
## Talimatlar
Bu proje hem scope hem de closure'a odaklanmaktadır.
Bir yazılımcı olarak spor ve hobilerimize de zaman ayırmak zihin sağlığımız ve verimliliğimiz için önemlidir. Spor olarak basketbola ilgili duyduğumuzu ve maçları takip ettiğimizi hayal edelim.
Bu projede bir basketbol maçının basit bir simulasyonunu yapacağız. Her periyot takımların attığı basketleri rastgele üreterek maç sonucunu ortaya koyan bir oyun yazacağız.
Basketbol kurallarını bilmiyorsanız bile hiç sorun değil. Çok basit olarak 4 periyot oynanan bir oyun. Eğer maçın bitiş düdüğü ile beraberlik olursa maç uzatmaya gider. Bir takım kazanana kadar da uzatmalar oynanır.
## Talimatlar
### Görev 1: Proje Kurulumu
VSCode ve Komut Satırını Kullanma:
1. Bu repo'yu fork'layın
2. Frok'ladığınız repo'yu bilgisayarınızda clone'layın
3. LÜTFEN BRANCH OLUŞTURMAYINIZ! Bu projede main branch'ine push'layacaksın
4. Repo'nuzun olduğu klasöre gidin (`cd REPO_ADI`)
5. Vs code'da terminali açın ve `npm install` yazın ve çalıştırın
6. Sonra `npm run test` yazın ve çalıştırın
7. Projenizi tamamladıktan sonra `push` yaparak githuba aktarın
### Görev 2: Yapılması gerekenler
`index.js` dosyasını bulun ve fonskiyondan geri gelen değerin(`return`) beklenen gibi görünene kadar görevleri tamamlamaya çalışın.
### Test Etme & Debug Yapma
Projenizin içinde "split terminal"i tıklayarak ikinci bir terminal ekranı açın.
Açılan ikinci terminalde `npm start` yazıp çalıştırın.
Bir terminal ekranında testleri çalıştırırken bir diğerinde ise debug yapabileceksin. Kodlarınızda güncelleme yaptıkça ilerlemeyi kontrol için `console.log`u kullanın.
### Görev 3: Zorlayıcı Görevler
Sana verilen gün sonu projesindeki görevleri tamamladıktan sonra zorlayıcı çalışmaları yapabilirsin.
## Proje Teslim Etme Adımları
Verilen görevi tamamladıktan sonra [Workintech Platformu](https://app.workintech.com.tr)'nda (app.workintech.com.tr) `Sprint 2>Gün 1`'in sonuna eklenmiş olan "` Görev: Sprint 2'nin 1. Gün projesini buraya yükle`" içeriğini açıp. GitHub hesabınızda oluşturduğunuz repo'nun adresini buraya ekleyiniz.
36 changes: 18 additions & 18 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
module.exports = {
env: {
test: {
plugins: [
'@babel/plugin-transform-runtime',
],
presets: [
[
'@babel/preset-env',
{
modules: 'commonjs',
debug: false
}
]
]
}
}
};
module.exports = {
env: {
test: {
plugins: [
'@babel/plugin-transform-runtime',
],
presets: [
[
'@babel/preset-env',
{
modules: 'commonjs',
debug: false
}
]
]
}
}
};
76 changes: 38 additions & 38 deletions codegrade_mvp1.test.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
import functions from './index';

const takimSkoru = function() {
return Math.floor(Math.random() * 16+10);
}


describe('asFunction', ()=>{
it('as returns sa', ()=>{
expect(functions.sa()).toBe('as');
})
});

describe('takimSkoru', ()=>{
it('takimSkoru returns a random number', ()=>{
expect(functions.takimSkoru()).toBeLessThanOrEqual(25);
})
});

describe('macSonucu', ()=>{
it('macSonucu returns an object', ()=>{
expect(functions.macSonucu(takimSkoru, 4)).toEqual(expect.objectContaining({
EvSahibi: expect.any(Number),
KonukTakim: expect.any(Number),
}))
})
});

describe('periyotSkoru', ()=>{
it('periyotSkoru returns an object', ()=>{
expect(functions.periyotSkoru(takimSkoru)).toEqual(expect.objectContaining({
EvSahibi: expect.any(Number),
KonukTakim: expect.any(Number),
}));
});
});


import functions from './index';
const takimSkoru = function() {
return Math.floor(Math.random() * 16+10);
}
describe('asFunction', ()=>{
it('as returns sa', ()=>{
expect(functions.sa()).toBe('as');
})
});
describe('takimSkoru', ()=>{
it('takimSkoru returns a random number', ()=>{
expect(functions.takimSkoru()).toBeLessThanOrEqual(25);
})
});
describe('macSonucu', ()=>{
it('macSonucu returns an object', ()=>{
expect(functions.macSonucu(takimSkoru, 4)).toEqual(expect.objectContaining({
EvSahibi: expect.any(Number),
KonukTakim: expect.any(Number),
}))
})
});
describe('periyotSkoru', ()=>{
it('periyotSkoru returns an object', ()=>{
expect(functions.periyotSkoru(takimSkoru)).toEqual(expect.objectContaining({
EvSahibi: expect.any(Number),
KonukTakim: expect.any(Number),
}));
});
});
Loading