Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can this be done in C programming language. Thanks Write a function win with the

ID: 3599832 • Letter: C

Question

Can this be done in C programming language. Thanks

Write a function win with the following prototype int win(char board[6][6], char player) The function win should return a 1 if the character player is found in three consecutive positions in the board. Consecutive for this lab means in the same row, or in the same column, NOT on a diagonal For the board shown below, A B G G E B A G G G 7 The following values should be returned by win0 if called as win(board A) would return O win(board,B) would return 0 win(board,D) would return 0 win(board'G) would return 1 win(board,O) would return 0 win(board,X) would return 0 win(board,Z) would return 1 5 points will be for the autograded tests, the remaining 5 points will be for a header with your name (1 point), appropriate style (2 points) and appropriate comments (2 points)

Explanation / Answer

package com;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.MouseEvent;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Random;

import javax.swing.JPanel;

import javax.swing.JToggleButton;

import javax.swing.JToolBar;

import javax.swing.JFrame;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.border.EtchedBorder;

class GlobalVariables {

public ArrayList<Fish> mFish;

public FishTank mFishTank;

private GlobalVariables() {

mFish = new ArrayList<Fish>();

mFishTank = new FishTank();

}

private static GlobalVariables instance;

public static GlobalVariables getInstance() {

if (instance == null){

instance = new GlobalVariables();

}

return instance;

}

}

class Fish implements Comparable<Fish>{

  

int mX;

int mY;

int mId;

Color mColor;

  

public Fish(int id, int x, int y, Color color){

  

mId = id;

mX = x;

mY = y;

mColor = color;

}

  

public void paint(Graphics g){

  

// Implement this function

}

  

public void move(){

// Implement this function

  

}

@Override

public int compareTo(Fish o) {

return mId;

  

// Implement this function

}

}

class FishTick extends TimerTask{

@Override

public void run() {

if (FishTank.mSimulateStatus){

  

for (int x=0;x<GlobalVariables.getInstance().mFish.size();x++){

  

Fish f = GlobalVariables.getInstance().mFish.get(x);

f.move();

GlobalVariables.getInstance().mFish.set(x, f);

}

  

GlobalVariables.getInstance().mFishTank.mDrawPanel.paint();

}

}

}

public class FishTank extends javax.swing.JFrame implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener{

  

private final int mNumRows = 20;

private final int mNumCols = 20;

private final int mGridSz = 30;

  

private int mSelectedFishIndex = -1;

private boolean mDragged = false;

  

private int mTopHeight;

JToolBar mToolbar;

JToggleButton mSimulationButton;

DrawPanel mDrawPanel;

  

private int mFishIndex = 0;

  

static public boolean mSimulateStatus = false;

  

public static void main(String[] args) {

GlobalVariables global = GlobalVariables.getInstance();

  

if (global == null){

System.out.println("Cannot initialize, exiting ....");

return;

}

  

}

private JToggleButton addButton(String title){

  

JToggleButton button = new JToggleButton(title);

button.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent ev) {

mSimulateStatus = !mSimulateStatus;

}

});

  

this.mToolbar.add(button);

  

return (button);

}

  

public FishTank()

{

JFrame guiFrame = new JFrame();

guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

guiFrame.setTitle("MY FISH TANK");

  

// Create a toolbar and give it an etched border.

this.mToolbar = new JToolBar();

this.mToolbar.setBorder(new EtchedBorder());

  

mSimulationButton = addButton("Simulate");

this.mToolbar.add(mSimulationButton);

//This will center the JFrame in the middle of the screen

guiFrame.setLocationRelativeTo(null);

  

this.mDrawPanel = new DrawPanel(mNumRows, mNumCols, mGridSz);

  

this.mDrawPanel.setBackground(Color.cyan);

this.mDrawPanel.paint();

  

guiFrame.add(mDrawPanel);

guiFrame.add(this.mToolbar, BorderLayout.NORTH);

  

// Add the Exit Action

JButton button = new JButton("Quit");

button.setToolTipText("Quit the program");

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

mToolbar.add(button);

  

guiFrame.addMouseListener(this);

guiFrame.addMouseMotionListener(this);

  

//make sure the JFrame is visible

guiFrame.setVisible(true);

  

mTopHeight = guiFrame.getInsets().top + mToolbar.getHeight();

guiFrame.setSize(mNumRows * mGridSz, mNumCols * mGridSz + mTopHeight);

  

Timer timer = new Timer("tick", true);

timer.scheduleAtFixedRate(new FishTick(), Calendar.getInstance().get(Calendar.MILLISECOND), 500);

}

@Override

public void mouseClicked(MouseEvent e) {

  

// Implement this function

}

@Override

public void mousePressed(MouseEvent e) {

}

@Override

public void mouseReleased(MouseEvent e) {

  

// Implement this function

}

@Override

public void mouseEntered(MouseEvent e) {

}

@Override

public void mouseExited(MouseEvent e) {

}

@Override

public void mouseDragged(MouseEvent e) {

  

// Implement this function

}

@Override

public void mouseMoved(MouseEvent e) {

}

}

class DrawPanel extends JPanel{

int mRows;

int mCols;

int mGridSz;

int maxGridSz;

  

ArrayList<Fish> mFish;

  

public DrawPanel(int numberOfRows, int numberOfCols, int gridSz){

  

mGridSz = gridSz;

mRows = numberOfRows;

mCols = numberOfCols;

maxGridSz = mGridSz * mRows;

}

  

private void paintBackground(Graphics g){

  

for (int i = 1; i < mRows; i++) {

g.drawLine(i * mGridSz, 0, i * mGridSz, maxGridSz);

}

  

for (int mAnimateStatus = 1; mAnimateStatus < mCols; mAnimateStatus++) {

g.drawLine(0, mAnimateStatus * mGridSz, maxGridSz, mAnimateStatus * mGridSz);

}

}

  

@Override

public void paintComponent(Graphics g){

  

super.paintComponent(g);

  

paintBackground(g);

  

for (Fish f:GlobalVariables.getInstance().mFish){

f.paint(g);

}

  

}

public void paint(){

repaint();

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote