Anda di halaman 1dari 31

LAPORAN HASIL ORGANISASI KOMPUTER

TIC TAC TOE

DI SUSUN OLEH :
1. Farhan Hidayat Al Rachman DBC 115 096
2. Nur Charisma Akbar DBC 115 055
3. Andrian Fakhurrohman Sidiq DBC 115 086
4. Rizky Aditya DBC 115 092
5. Muhammad Rifan DBC 115 065
6. Aditacahya Arisetasya DBC 115 044
7. Hilery Stefhani DBC 115 064
8. Eunike Febriyanti Simarmata DBC 115 051
9. Martin Kornelius Autang DBC 113 093
10. Faisal Ansari DBC 113 109

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2017
BAB I
TUJUAN DAN LANDASAN TEORI

A. Tujuan
Diharapkan semua mahasiswa dapat menerapkan ilmu yang didapat pada
semester ini untuk kehidupan sehari-hari.
B. Landasan Teori
Apa Itu Tic Tac Toe
Game Tic Tac Toe lebih dikenal sebagai permainan catur jawa jika di
Indonesia. Bahkan dalam pengembangan permainan ini, Tic Tac Toe ada yang
dalam bentuk tiga dimensi. Sebagian dari kita pasti mengenal permainan Tic Tac
Toe. Permainan ini sangat unik karena menggunakan papan dengan grid 33 atau
lebih yang dimainkan oleh dua orang pemain dan para pemain bermain dengan
menggunakan bidak berbentuk X atau O membentuk satu barisan untuk
memenangkan permainan. Permainan ini sangat diminati banyak orang di seluruh
penjuruh dunia, bahkan dengan kepopulerannya di banyak negara memberikan
nama unik seperti nama tit-tat-toe,Naughts and crosses,Exy-Ozys,Xsie-Osies,serta
Xs and Os.

Sejarah Tic Tac Toe


Menurut sejarah Tic Tac Toe berasal dari Kekaisaran Romawi sekitar abad
pertama sebelum masehi. Masyarakat setempat menyebutnya Terni Lapili.
Permainan ini sama seperti yang kita temukan di zaman sekarang yang dimainkan
oleh dua orang pemain dengan menggunakan tiga bidak, pemain harus
membentuk satu barisan dengan bidak-bidak yang dimiiki di lembar kertas
papirus. Namun ada informasi lain, menurut Claudia Zaslavsky dalam buku Tic
Tac Toe: And Other Three-In-A Row Games from Ancient Egypt to the Modern
Computer, Tic-Tac-Toe berasal dari Mesir kuno. Namun bagaimana permainan
ini mulai disebut dengan nama Tic Tac Toe? Pada tahun 1884, anak-anak bermain
di sebuah batu tulis dimana mereka menutup mata sambil mencoretkan batu
dengan dua simbol "X" dan "O" membentuk satu barisan namun disertai suara tic
dan tac dari anak-anak. Pada tahun 1952, Tic Tac Toe mulai marak diminati
karena untuk pertama masuk ke dunia video game OXO (or Noughts and Crosses)
untuk komputer EDSAC. Pemain bisa memainkan Tic-Tac-Toe dengan melawan
komputer bahkan dapat multyplay melawan manusia. Pada tahun 1975, Tic Tac
Toe juga digunakan oleh siswa MIT untuk menunjukkan kekuatan komputasi dari
elemen Tinkertoy yang saat ini dipamerkan di Museum of Science, Boston.

1. Arduino Uno
(Perkiraan harga -+ Rp. 300.000,-).
Arduino adalah pengendali mikro single-board yang bersifat open-source,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR
dan softwarenya memiliki bahasa pemrograman sendiri. Saat ini Arduino sangat
populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan
elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para
hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik
menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler
yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-
pustaka (libraries) Arduino.
Sejarah Singkat
Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando Barragan,
di institute Ivrea, Italia pada tahun 2005, dikembangkan oleh Massimo Banzi dan
David Cuartielles dan diberi nama Arduin of Ivrea. Lalu diganti nama menjadi
Arduino yang dalam bahasa Italia berarti teman yang berani.
Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan
murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk
para siswa yang akan membuat perangkat desain dan interaksi. Visi awalnya aja
udah mulia kan.
Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom
Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka
mengupayakan 4 hal dalam Arduino ini, yaitu:

1. Harga terjangkau.
2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Max, dan
sebagainya.
3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari
orang awam, bukan untuk orang teknik saja.
4. Open Source, hardware maupun software.

Sifat Arduino yang Open Source, membuat Arduino berkembang sangat


cepat. Dan banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino
atau Freeduino, dan kalau yang lokal ada namanya CipaDuino yang dibuat oleh
SKIR70, terus ada MurmerDuino yang dibuat oleh Robot Unyil, ada lagi
AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Robot.
Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino.
Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino
Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, beebentuk Mini
PC. Dan sudah ada ratusan ribu Arduino yang digunakan di gunakan di dunia pada
tahun 2011. Dan untuk hari ini, yang bisa kamu hitung sendiri ya. Dan Arduino
juga sudah banyak dipaka oleh perusahaan besar. Contohnya Google
menggunakan Arduino untuk Accessory Development Kit, NASA memakai
Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino
dalam beberapa hal untuk pengumpulan data. Dan banyak yang bertanya juga
Arduino ini menggunakan bahasa pemograman apa? Arduino sebenarnya
menggunakan bahas C, yang sudah disederhanakan. Sehingga orang awam pun
bisa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya.

KELEBIHAN ARDUINO
Tidak perlu perangkat chip programmer karena didalamnya sudah ada
bootloadder yang akan menangani upload program dari komputer. Sudah memiliki
sarana komunikasi USB, Sehingga pengguna laptop yang tidak memiliki port
serial/RS323 bisa menggunakannya. Memiliki modul siap pakai ( Shield ) yang
bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet,dll.

- SOKET USB
Soket USB adalah soket kabel USB yang disambungkan kekomputer atau
laptop. Yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai
port komunikasi serial.

- INPUT/OUTPUT DIGITAL DAN INPUT ANALOG


Input/output digital atau digital pin adalah pin pin untuk menghubungkan
arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat
LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output
digital dan ground. komponen lain yang menghasilkan output digital atau
menerima input digital bisa disambungkan ke pin pin ini.
Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima
sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor
suhu, sensor cahaya, dll.

- CATU DAYA
Pin pin catu daya adalah pin yang memberikan tegangan untuk komponen
atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin
Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada
arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah
pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.

- Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan
tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan
kekomputer. Jika arduino sedang disambungkan kekomputer dengan USB,
Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang
baterai/adaptor pada saat memprogram arduino.

2. TFT Touchscreen
(Perkiraan harga Rp. 100.000 Rp. 300.000 tergantung ukuran layar dan
kualitasnya).
TFT merupakan kepanjangan dari Thin Film Transistor yang merupakan
jenis layar yang menggunakan teknologi LCD. Layar dengan menggunakan jenis
layar FTF ini mampu memberikan resolusi yang cukup baik dan layar TFT juga
mampu menampilkan gambar yang mengusung berjuta warna. Layar dengan jenis
TFT ini tergolong mahal dan juga mampu menyedot daya yang sangat besar.
Kelebihan dan kelemahan dari Layar yang menggunakan teknologi TFT
adalah memiliki tampilan layar yang tergolong tajam dan juga jenih serta mempu
menerima respon sentuhan yang sangat cepat. Sedang kekurangannya adalah
boros baterai.

BAB II
LANGKAH KERJA

A. Langkah Kerja
1. Membuat Tic Tac Toe menggunakan Arduini Uno
2. Alat dan bahan
a. Arduino Uno
b. TFT Touchscreen
c. Batrai
3. Flowchart

BAB III
PEMBAHASAN
Setelah arduino dan TFT dihubungkan maka langkah selanjutnya adalah
memasukan codingnya. Berikut ini adalah coding dari Tic Tac Toe :

#include <SPFD5408_Adafruit_GFX.h>
#include <SPFD5408_Adafruit_TFTLCD.h>
#include <SPFD5408_TouchScreen.h>
Fungsi dari koding di atas adalah seperti driver pada komputer.
#define YP A3
#define XM A2
#define YM 9
#define XP 8
Adalah deretan pin dari layar TFT, yang masing masing fungsinya adalah :
YP berfungsi untuk mengontrol Touch Screen LCD dengan pin
analog A3
XM berfungsi untuk mengontrol Touch Screen LCD dengan pin
analog A2
YM berfungsi untuk mengontrol Touch Screen LCD dengan pin
digital 9
XP berfungsi untuk mengontrol Touch Screen LCD dengan pin
digital 8
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
Adalah tekanan minimal dan maximal pada koordinat X dan Y.
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
Inisialisasi dari Touchscreen yang berisikan XP, YP, XM, YM, 300.

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
Pada 4 baris di atas berfungsi untuk mengontrol LCD pada pin analog,
sedangkan LCD_RESET untuk mereset LCD.
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Definisi warna yang akan tampil di layar.
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD,
LCD_RESET);

int i = 0;
int backlight = 3;
int upperleft = 0;
int uppermid = 0;
int upperright = 0;
int midleft = 0;
int center = 0;
int midright = 0;
int lowerleft = 0;
int lowermid = 0;
int lowerright = 0;
int ul = 1;
int um = 1;
int ur = 1;
int ml = 1;
int cent = 1;
int mr = 1;
int ll = 1;
int lm = 1;
int lr = 1;
int turn = 1;
int gameover = 0;
int ponewins = 0;
int ptwowins = 0;
int mosfets = 0;
char playerone [10];
char playertwo [10];
char eyes [10];
Variabel pada Program
void setup(void) {
Serial.begin(9600);
tft.reset();
tft.begin(0x9341);
tft.setRotation(0);
drawBorder();
Adalah koding pembukaan pada tampilan awal, Serial.begin adalah untuk
memulai arduino secara serial, tft.reset untuk mereset tampilan, tft.begin memulai
ulang tampilan LCD, tft.setRotation untuk mengatur rotasi layar, drawBorder
untuk memanggil prosedur.
tft.setCursor (45, 50);
tft.setTextSize (2);
tft.setTextColor(RED);
tft.println("Tic Tac Touch");
Koding di atas berfungsi untuk menampilkan tulisa Tic Tac Touch pada
koordinat X (45) dan Y (50) dengan size (2), dan berwarna merah.
tft.setCursor (77, 85);
tft.println("Project");
tft.setCursor (75, 150);
tft.setTextSize (2);
tft.setTextColor(BLACK);
tft.println("TI 2015");
tft.setCursor (75, 250);
tft.setTextSize (1);
tft.setTextColor(BLACK);
tft.println("Touch to proceed");
Koding di atas fungsinya sama seperti yang di bahas sebelumnya.
waitOneTouch();
tft.fillScreen(BLACK);
tft.setCursor (20, 5);
tft.setTextSize (2);
tft.setTextColor(WHITE);
tft.println("Anggota Kelompok:");
tft.setCursor (30, 30);
tft.setTextSize (1);
tft.println("1. Farhan Hidayat Al Rachman");
tft.setCursor (30, 50);
tft.println("2. Nur Charisma Akbar");
tft.setCursor (30, 70);
tft.println("3. Andrian Fatkhurrohman Sidiq");
tft.setCursor (30, 90);
tft.println("4. Rizky Aditya");
tft.setCursor (30, 110);
tft.println("5. Muhammad Rif'an");
tft.setCursor (30, 130);
tft.println("6. Aditacahya Arisetasya");
tft.setCursor (30, 150);
tft.println("7. Hilery Stefhani");
tft.setCursor (30, 170);
tft.println("8. Eunike Febriyanti Simarmata");
tft.setCursor (30, 190);
tft.println("9. Martin Kornelius Autang");
tft.setCursor (30, 210);
tft.println("10. Faisal Ansari");
WaitOneTouch() adalah sebuah procedure yang berfungsi menunggu satu
sentuhan sebagai perintah untuk melanjutkan ke layar selanjutnya.
waitOneTouch ();
drawboard();
pinMode(13, OUTPUT);
}
#define MINPRESSURE 10
#define MAXPRESSURE 1000
Drawboard adalah sebuah prosedur untuk menampilkan tampilan utama
program tic tac touch. PinMode adalah pin output. MINPRESSURE adalah
minimal sentuhan di layar dan MAXPRESSURE adalah maksimalnya.
void loop()
{
digitalWrite(13, HIGH);
TSPoint p = ts.getPoint();
digitalWrite(13, LOW);
Void loop adalah program pengulangan utama. DigitalWrite berfungsi untuk
memberikan nilai HIGH atau LOW pada pin digital.
pinMode(XM, OUTPUT);
pinMode(YP, OUTPUT);
pinMode sebagai output koordinat X dan Y.
if (p.z > MINPRESSURE && p.z < MAXPRESSURE) {
Serial.print("X = "); Serial.print(p.x);
Serial.print("\tY = "); Serial.print(p.y);
Serial.print("\tPressure = "); Serial.println(p.z);
Berfungsi untuk menampilkan hasil sentuhan pada serial monitor.
p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());
Serial.print("p.y:");
Serial.print(p.y);
Serial.print(" p.x:");
Serial.println(p.x);
Untuk menampilkan koordinat X dan Y ke serial monitor ketika LCD di
sentuh.
//atas kiri
if ((p.y > -4 && p.y < 74 && p.x > 3 && p.x < 82) && (ul == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (28, 20);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
upperleft = 1;
}
if (turn == 2) {
tft.setCursor (28, 20);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
upperleft = 2;
}
ul = 0;
turntoggle();
showturn();
}
//atas tengah
if ((p.y > -4 && p.y < 74 && p.x > 91 && p.x < 164) && (um == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (108, 20);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
uppermid = 1;
}
if (turn == 2) {
tft.setCursor (108, 20);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
uppermid = 2;
}
um = 0;
turntoggle();
showturn();
}

//atas kanan
if ((p.y > -4 && p.y < 74 && p.x > 166 && p.x < 243) && (ur == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (188, 20);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
upperright = 1;
}
if (turn == 2) {
tft.setCursor (188, 20);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
upperright = 2;
}
ur = 0;
turntoggle();
showturn();
}

//tengah kiri
if ((p.y > 80 && p.y < 153 && p.x > 3 && p.x < 82) && (ml == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (28, 100);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
midleft = 1;
}
if (turn == 2) {
tft.setCursor (28, 100);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
midleft = 2;
}
ml = 0;
turntoggle();
showturn();
}
//center
if ((p.y > 80 && p.y < 153 && p.x > 91 && p.x < 164) && (cent == 1)
&& (gameover == 0)) {
if (turn == 1) {
tft.setCursor (108, 100);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
center = 1;
}
if (turn == 2) {
tft.setCursor (108, 100);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
center = 2;
}
cent = 0;
turntoggle();
showturn();
}
//tengah kanan
if ((p.y > 80 && p.y < 153 && p.x > 166 && p.x < 243) && (mr == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (188, 100);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
midright = 1;
}
if (turn == 2) {
tft.setCursor (188, 100);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
midright = 2;
}
mr = 0;
turntoggle();
showturn();
}
//bawah kiri
if ((p.y > 162 && p.y < 240 && p.x > 3 && p.x < 82) && (ll == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (28, 180);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
lowerleft = 1;
}
if (turn == 2) {
tft.setCursor (28, 180);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
lowerleft = 2;
}
ll = 0;
turntoggle();
showturn();
}
//bawah tengah
if ((p.y > 162 && p.y < 240 && p.x > 91 && p.x < 164) && (lm == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (108, 180);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
lowermid = 1;
}
if (turn == 2) {
tft.setCursor (108, 180);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
lowermid = 2;
}
lm = 0;
turntoggle();
showturn();
}
//bawah kanan
if ((p.y > 162 && p.y < 240 && p.x > 166 && p.x < 243) && (lr == 1) &&
(gameover == 0)) {
if (turn == 1) {
tft.setCursor (188, 180);
tft.setTextSize (5);
tft.setTextColor(GREEN);
tft.println("O");
lowerright = 1;
}
if (turn == 2) {
tft.setCursor (188, 180);
tft.setTextSize (5);
tft.setTextColor(RED);
tft.println("X");
lowerright = 2;
}
lr = 0;
turntoggle();
showturn();
}
Pada intinya koding di atas berfungsi untuk menampilkan X dan O ketika
koordinat tertentu kita sentuh.
if (p.y > 270 && p.y < 318 && p.x > 189 && p.x < 246) {
turn = 1;
ul = 1;
um = 1;
ur = 1;
ml = 1;
cent = 1;
mr = 1;
ll = 1;
lm = 1;
lr = 1;
upperleft = 0;
uppermid = 0;
upperright = 0;
midleft = 0;
center = 0;
midright = 0;
lowerleft = 0;
lowermid = 0;
lowerright = 0;
gameover = 0;
drawboard();
}
Koding di atas berfungsi untuk mereset permainan.
if ((upperleft == 1) && (uppermid == 1) && (upperright == 1) && (gameover
== 0)) {
playeronewin();
}
if ((upperleft == 2) && (uppermid == 2) && (upperright == 2) &&
(gameover == 0)) {
playertwowin();
}
if ((midleft == 1) && (center == 1) && (midright == 1) && (gameover ==
0)) {
playeronewin();
}
if ((midleft == 2) && (center == 2) && (midright == 2) && (gameover ==
0)) {
playertwowin();
}
if ((lowerleft == 1) && (lowermid == 1) && (lowerright == 1) &&
(gameover == 0)) {
playeronewin();
}
if ((lowerleft == 2) && (lowermid == 2) && (lowerright == 2) &&
(gameover == 0)) {
playertwowin();
}
if ((upperleft == 1) && (midleft == 1) && (lowerleft == 1) && (gameover
== 0)) {
playeronewin();
}
if ((upperleft == 2) && (midleft == 2) && (lowerleft == 2) && (gameover
== 0)) {
playertwowin();
}
if ((uppermid == 1) && (center == 1) && (lowermid == 1) && (gameover
== 0)) {
playeronewin();
}
if ((uppermid == 2) && (center == 2) && (lowermid == 2) && (gameover
== 0)) {
playertwowin();
}
if ((upperright == 1) && (midright == 1) && (lowerright == 1) &&
(gameover == 0)) {
playeronewin();
}
if ((upperright == 2) && (midright == 2) && (lowerright == 2) &&
(gameover == 0)) {
playertwowin();
}

if ((upperleft == 1) && (center == 1) && (lowerright == 1) && (gameover


== 0)) {
playeronewin();
}
if ((upperleft == 2) && (center == 2) && (lowerright == 2) && (gameover
== 0)) {
playertwowin();
}

if ((upperright == 1) && (center == 1) && (lowerleft == 1) && (gameover


== 0)) {
playeronewin();
}
if ((upperright == 2) && (center == 2) && (lowerleft == 2) && (gameover
== 0)) {
playertwowin();
}
if ((upperleft != 0) && (uppermid != 0) && (upperright != 0) && (midleft !=
0) && (center != 0) && (midright != 0) && (lowerleft != 0) && (lowermid !=
0) && (lowerright != 0) && (gameover == 0)) {
catseye();
}
}
}
Koding di atas adalah logika dari permainan Tic Tac Touch.
TSPoint waitOneTouch() {
TSPoint p;
do {
p= ts.getPoint();
pinMode(XM, OUTPUT); //Pins configures again for TFT control
pinMode(YP, OUTPUT);
}
while((p.z < MINPRESSURE )|| (p.z > MAXPRESSURE));

return p;
}
Koding di atas merupakan isi dari prosedut waitOneTouch.
void drawBorder () {
uint16_t width = tft.width() - 1;
uint16_t height = tft.height() - 1;
uint8_t border = 10;
tft.fillScreen(RED);
tft.fillRect(border, border, (width - border * 2), (height - border * 2), WHITE);
}
Koding di atas ialah isi dari prosedur drawBorder yang berfungsi untuk
menampilkan background merah putih.
void turntoggle() {
if (turn == 1) {
turn = 2;
return;
}
if (turn == 2) {
turn = 1;
}
}
Fungsi koding di atas sebagai logika untuk pergantian Player 1 dan Player 2.
void catseye() {
tft.fillRect(10, 260, 96, 8, BLACK);
tft.setCursor (10, 275);
tft.setTextSize (2);
tft.setTextColor(GREEN);
tft.println("Mosfet eyes!");
mosfets++;
gameover = 1;
}
Fungsi koding diatas ialah sebagai logika jika permainan Draw.
void playeronewin() {
tft.fillRect(10, 260, 96, 8, BLACK);
tft.setCursor (10, 275);
tft.setTextSize (2);
tft.setTextColor(GREEN);
tft.println("Player 1 wins!");
ponewins++;
gameover = 1;
}
Koding diatas adalah logika jika Player 1 memenangkan permainan.
void playertwowin() {
tft.fillRect(10, 260, 96, 8, BLACK);
tft.setCursor (10, 275);
tft.setTextSize (2);
tft.setTextColor(GREEN);
tft.println("Player 2 wins!");
ptwowins++;
gameover = 1;
}
Koding diatas adalah logika jika Player 2 memenangkan permainan.
void updatewins() {
tft.fillRect(94, 290, 24, 8, BLACK);
itoa (ponewins, playerone, 10);
tft.setCursor (94, 290);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println(playerone);
tft.fillRect(94, 300, 24, 8, BLACK);
itoa (ptwowins, playertwo, 10);
tft.setCursor (94, 300);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println(playertwo);

tft.fillRect(82, 310, 24, 8, BLACK);


itoa (mosfets, eyes, 10);
tft.setCursor (82, 310);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println(eyes);
}
Fungsi koding diatas untuk memberikan Skor permainan.
void showturn() {
if (turn == 1) {
tft.fillRect(10, 260, 96, 8, BLACK);
tft.setCursor (10, 260);
tft.setTextSize (1);
tft.setTextColor(GREEN);
tft.println("Player 1's turn!");
}
if (turn == 2) {
tft.fillRect(10, 260, 96, 9, BLACK);
tft.setCursor (10, 260);
tft.setTextSize (1);
tft.setTextColor(RED);
tft.println("Player 2's turn!");
}
}
Koding diatas untuk menampilkan Player mana yang mendapatkan giliran
main.
void drawboard() {
tft.fillScreen(BLACK);
tft.fillRect(78, 0, 4, 240, WHITE);
tft.fillRect(158, 0, 4, 240, WHITE);
tft.fillRect(0, 78, 240, 4, WHITE);
tft.fillRect(0, 158, 240, 4, WHITE);
tft.fillRect(0, 250, 240, 4, BLUE);
tft.drawRect(180, 270, 60, 50, BLUE);
tft.setCursor (196, 290);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println("Reset");
showturn();
tft.setCursor (10, 290);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println("Player 1 wins:");
tft.setCursor (10, 300);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println("Player 2 wins:");
tft.setCursor (10, 310);
tft.setTextSize (1);
tft.setTextColor(YELLOW);
tft.println("Mosfet eyes:");
updatewins();
}
Koding diatas adalah prosedur tampilan utama permainan.
Hasil output pada project ini dapat dilihat pada BAB VI ( LAMPIRAN ).
BAB IV
KESIMPULAN

BAB V
DAFTAR PUSTAKA

https://andrologiciels.wordpress.com/arduino/lcd/tft-display/
http://thecustomgeek.com/2011/07/18/tic-tac-touch/
https://www.arduino.cc/en/Guide/TFT
http://www.belajarduino.com/2016/06/lcd-tft-module-24-320x240-pixel-
arduino.html
BAB VI
LAMPIRAN

Anda mungkin juga menyukai