Bu koda 10 üzerinden kaç verirsiniz?

SECBEGENAL

Picopat
Katılım
24 Mart 2021
Mesajlar
108
Çözümler
1
Merhaba, bu kod sizce 10 üzerinden puanlanırsa kaç almalı?

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;

public class MainForm extends JFrame {
private JPanel mainPanel;
private JButton btnA;
private JButton btnC;
private JButton btnB;
private JButton btnStart;
private JLabel txtGamerCard;
private JLabel txtComputerCard;
private JLabel txtGame;
private JLabel txtStatu;
private JLabel txtScore;
private JCheckBox checkResize;
private JCheckBox checkDarkMode;
private JLabel txtCopyright;

public static void main(String[] args) throws IOException {
MainForm mf = new MainForm();
mf.setVisible(true);
}

public MainForm() throws IOException {
String[] gameCard = {"taş", "kağıt", "makas"}, computerCard = {""}, computerAnswer = new String[6];
byte[] gamerScore = {0}, computerScore = {0};

computerAnswer[0] = "Oynamayı bilmiyorsun galiba :d";
computerAnswer[1] = "Eee, bana artık bi' pizza ısmarlarsın :)";
computerAnswer[2] = "Ambulansı aramamı ister misin? Beynin eriyor da...";
computerAnswer[3] = "Bilgisayarlar daha zekidir!";
computerAnswer[4] = "40 senedir oynuyorum böyle kötü oynayan görmedim :}";
computerAnswer[4] = "Uykum geldi ya, yenmek ne kadar da yorucu işmiş...";

add(mainPanel);
setTitle("Taş Kağıt Makas | TKM (Version: 0.4.6)");
setSize(750, 450);
setMinimumSize(new Dimension(650, 450));
setResizable(false);
setLocationRelativeTo(null);

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int confirmed = JOptionPane.showConfirmDialog(null,
"Oyundan çıkmak istediğinize emin misiniz?", "Çıkış",
JOptionPane.YES_NO_OPTION);

if (confirmed == JOptionPane.YES_OPTION) {
dispose();
} else {
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
}
});

checkResize.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (checkResize.isSelected()) {
setResizable(true);
} else {
setResizable(false);
}
}
});

checkDarkMode.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (checkDarkMode.isSelected()) {
mainPanel.setBackground(Color.darkGray);
txtCopyright.setForeground(Color.white);
txtScore.setForeground(Color.white);
txtStatu.setForeground(Color.white);
txtGame.setForeground(Color.white);
txtGamerCard.setForeground(Color.white);
txtComputerCard.setForeground(Color.white);
setTitle("Taş Kağıt Makas | TKM (Version: 0.4.6) [Karannlık Mod]");
} else {
mainPanel.setBackground(Color.white);
txtCopyright.setForeground(Color.black);
txtScore.setForeground(Color.black);
txtStatu.setForeground(Color.black);
txtGame.setForeground(Color.black);
txtGamerCard.setForeground(Color.black);
txtComputerCard.setForeground(Color.black);
setTitle("Taş Kağıt Makas | TKM (Version: 0.4.6)");
}
}
});

//Oyun Alanı.

//Başlat butonu.
btnStart.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnStart.setEnabled(false);
btnA.setEnabled(true);
btnB.setEnabled(true);
btnC.setEnabled(true);
txtGame.setText("Taş mı kağıt mı makas mı?");
txtStatu.setText("");
txtScore.setText("Skor: 0 - 0");
}
});

//Taş butonu.
btnA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
computerCard[0] = gameCard[(byte) (Math.random()*3)];

if (computerCard[0].equals("taş")) {
txtStatu.setText("Berabere!");
} else if (computerCard[0].equals("makas")) {
gamerScore[0]++;
txtStatu.setText("Bu eli sen kazandın!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
} else {
computerScore[0]++;
txtStatu.setText("Bu eli ben kazandım!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
}
txtGamerCard.setText("Senin Seçimin: Taş");
txtComputerCard.setText("Benim Seçimim: " + computerCard[0].substring(0, 1).toUpperCase() + computerCard[0].substring(1).toLowerCase());

if (gamerScore[0] >= 3 || computerScore[0] >= 3) {
if (gamerScore[0] >= 3 && !(computerScore[0] >= 3)) {
txtStatu.setText("Oyunu sen kazandın :D");
} else if (!(gamerScore[0] >= 3) && computerScore[0] >= 3) {
txtStatu.setText(computerAnswer[(byte) (Math.random()*computerAnswer.length)]);
}

gamerScore[0] = 0;
computerScore[0] = 0;
btnStart.setEnabled(true);
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
txtGame.setText("Lütfen başlamak için \"Başla\" butonuna bas");
}
}
});

//Kağıt butonu.
btnB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
computerCard[0] = gameCard[(byte) (Math.random()*3)];

if (computerCard[0].equals("kağıt")) {
txtStatu.setText("Berabere!");
} else if (computerCard[0].equals("taş")) {
gamerScore[0]++;
txtStatu.setText("Bu eli sen kazandın!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
} else {
computerScore[0]++;
txtStatu.setText("Bu eli ben kazandım!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
}
txtGamerCard.setText("Senin Seçimin: Kağıt");
txtComputerCard.setText("Benim Seçimim: " + computerCard[0].substring(0, 1).toUpperCase() + computerCard[0].substring(1).toLowerCase());

if (gamerScore[0] >= 3 || computerScore[0] >= 3) {
if (gamerScore[0] >= 3 && !(computerScore[0] >= 3)) {
txtStatu.setText("Oyunu sen kazandın :D");
} else if (!(gamerScore[0] >= 3) && computerScore[0] >= 3) {
txtStatu.setText(computerAnswer[(byte) (Math.random()*computerAnswer.length)]);
}

gamerScore[0] = 0;
computerScore[0] = 0;
btnStart.setEnabled(true);
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
txtGame.setText("Lütfen başlamak için \"Başla\" butonuna bas");
}
}
});

//Makas butonu.
btnC.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
computerCard[0] = gameCard[(byte) (Math.random()*3)];

if (computerCard[0].equals("makas")) {
txtStatu.setText("Berabere!");
} else if (computerCard[0].equals("kağıt")) {
gamerScore[0]++;
txtStatu.setText("Bu eli sen kazandın!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
} else {
computerScore[0]++;
txtStatu.setText("Bu eli ben kazandım!");
txtScore.setText("Skor: " + gamerScore[0] + " - " + computerScore[0]);
}
txtGamerCard.setText("Senin Seçimin: Makas");
txtComputerCard.setText("Benim Seçimim: " + computerCard[0].substring(0, 1).toUpperCase() + computerCard[0].substring(1).toLowerCase());

if (gamerScore[0] >= 3 || computerScore[0] >= 3) {
if (gamerScore[0] >= 3 && !(computerScore[0] >= 3)) {
txtStatu.setText("Oyunu sen kazandın :D");
} else if (!(gamerScore[0] >= 3) && computerScore[0] >= 3) {
txtStatu.setText(computerAnswer[(byte) (Math.random()*computerAnswer.length)]);
}

gamerScore[0] = 0;
computerScore[0] = 0;
btnStart.setEnabled(true);
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
txtGame.setText("Lütfen başlamak için \"Başla\" butonuna bas");
}
}
});
}
}


20210329_224834.png
 
Son düzenleme:
Nesneye yönelimli programlama kullanılmış. Girintilere ve süslü parantezlere dikkat edilmiş. İçinde yorum satırları biraz daha fazla olsa daha anlaşılır olabilirdi. Değişken isimlerinde deve metodu kullanılmış güzel. 8/10.
 
Arkadaşlar bilmediğimden soruyorum, bu puanlamayı neye göre yapıyorsunuz? Zaten olması gereken bu değil mi? Yani bahsettiğiniz parantez falan en ufak bir yanlışta sorun oluşturmaz mı? Cahilim biraz bu konuda, mazur görün :).
Python harici dillerde parantez ve girinti kullanımı zorunlu değildir. Sadece komut sonuna noktalı virgül konulması gerekir. Ancak anlaşılabilirlik açısından konulması güzel bir eklenti olmuş. Teknik terimle "good practice" yani.
 

Yeni konular

Geri
Yukarı